The universal API for Receipts, Invoices, and Bank Statements. Use it via REST API or plug it natively into Claude and Cursor via MCP.
Powering the AI Stack
We benchmark AuraParse daily against the CORD Dataset, the industry standard for messy, real-world financial documents.
Success rate on crumpled inputs
End-to-end processing time
Auto-detects IDR, VND, EUR, USD
Legacy OCR reads text. We read context. If a thumb covers the "Total" label, our AI infers it from the math of the sub-items.
We handle complex locales automatically. 27.500 in Indonesia is 27k. 10,50 in Germany is 10.5.
Competitors store data to train models. We don't. Your document is processed in RAM and deleted instantly.
| Feature | Legacy OCR Providers | AuraParse |
|---|---|---|
| Price (5k requests) | $100 - $500 / month | $29 / month |
| Price (100k requests) | $1,500+ / month | $299 / month |
| Data Storage | Stored for Training | None (Transient) |
| AI Agent Native (MCP) New | ❌ No Support | ✅ pip install |
Resets on the 1st of the month
Your data stays yours. We process documents in memory to return JSON and do not store them.
Click to select file
PNG, JPG, PDF up to 10MB
// Select a file and click Extract...
429, you hit your plan's minute limit.
Implement retry logic or batch requests.
# For PDFs, use "mime_type": "application/pdf" curl -X POST https://auraparse.web.app/api/v1/extract \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "file_data": "BASE64...", "mime_type": "image/jpeg", "doc_type": "receipt" }'
import requests, base64, time # Handle Rate Limits with retries with open("doc.pdf", "rb") as f: data = base64.b64encode(f.read()).decode() res = requests.post( "https://auraparse.web.app/api/v1/extract", headers={"X-API-Key": "YOUR_KEY"}, json={ "file_data": data, "mime_type": "application/pdf", "doc_type": "invoice" } ) if res.status_code == 429: print("Rate limit exceeded") else: print(res.json())
const axios = require('axios'); const fs = require('fs'); const file = fs.readFileSync('doc.pdf', {encoding: 'base64'}); axios.post('https://auraparse.web.app/api/v1/extract', { file_data: file, mime_type: 'application/pdf', doc_type: 'invoice' }, { headers: { 'X-API-Key': 'YOUR_KEY' } }) .then(res => console.log(res.data)) .catch(err => { if (err.response?.status === 429) { console.log("Rate limit exceeded. Please wait 60s."); } else { console.error(err); } });
# 1. Install: pip install auraparse-mcp # 2. Add to Claude Desktop Config: { "mcpServers": { "auraparse": { "command": "uvx", "args": ["auraparse-mcp"], "env": { "AURAPARSE_API_KEY": "YOUR_KEY" } } } }
Are you sure? This breaks existing integrations immediately.