Submit any invoice or receipt image, get structured JSON back. No templates. No configuration. Works on any format, any language.
POST /extract
Content-Type: application/json
{
"url": "https://example.com/invoice.png"
}
{
"document_type": "invoice",
"vendor_name": "Stanford Plumbing",
"invoice_number": "#INV22081",
"invoice_date": "2024-11-11",
"currency": "USD",
"subtotal": 2590,
"tax_amount": 304.80,
"total_amount": 2844.80,
"line_items": [
{ "description": "Kitchen sink install",
"quantity": 3, "amount": 150 }
]
}
Click Extract — watch Claude AI pull every field from a real invoice in under 2 seconds.
| Description | Qty | Unit | Amount |
|---|---|---|---|
| Kitchen sink installation (hrs) | 3 | $50 | $150 |
| Toto sink | 1 | $500 | $500 |
| Magnetic system filter | 1 | $190 | $190 |
| Nest smart thermostat | 1 | $250 | $250 |
| Worcester Greenstar 30i | 1 | $1,500 | $1,500 |
From solo developers to enterprise teams — see how InvoiceAI fits into your stack.
Employees photo an invoice → API extracts all fields → auto-routed into your ERP or approval workflow. No manual data entry.
Let users upload receipts from their phone. InvoiceAI auto-fills merchant, date, amount, and category — ready for reimbursement.
Integrate invoice extraction into your accounting tool. Parse supplier invoices and auto-create transaction records with line items.
Extract purchase orders for three-way matching. Validate supplier invoices against POs before approving payment.
Batch process hundreds of receipts and invoices. Categorize by vendor, date, and amount — export ready for your accountant.
One endpoint handles invoices, receipts, and purchase orders — Claude AI figures out the rest.
Auto-detects document type. Works on invoices, receipts, and purchase orders without any configuration.
Extracts every line item with description, quantity, unit price, and amount — not just the total.
Works on English, German, French, Japanese, Chinese, and more. No template setup required.
Pass an image URL or base64-encoded image. Supports JPEG, PNG, GIF, and WebP up to 5MB.
Clean, consistent JSON every time. Dates in ISO 8601, monetary values as numbers, null for missing fields.
MEGA subscribers get our most powerful AI model for maximum accuracy on complex layouts, poor scans, and handwritten documents.
One API key — access to all 20+ APIs. Free plan available, no credit card required.
POST an image URL or base64-encoded image to /extract
Receive clean, structured data — vendor, customer, line items, totals, tax — ready to use.
Copy and paste to integrate in minutes.
import requests
url = "https://corestackapi.com/invoice/extract"
headers = {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {"url": "https://example.com/invoice.png"}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
# Access extracted fields
inv = data["extracted"]
print(f"Invoice #{inv['invoice_number']}")
print(f"Vendor: {inv['vendor_name']}")
print(f"Total: {inv['currency']} {inv['total_amount']}")
for item in inv["line_items"]:
print(f" - {item['description']}: {item['amount']}")
const response = await fetch("https://corestackapi.com/invoice/extract", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
url: "https://example.com/invoice.png"
})
});
const data = await response.json();
const inv = data.extracted;
console.log(`Invoice #${inv.invoice_number}`);
console.log(`Vendor: ${inv.vendor_name}`);
console.log(`Total: ${inv.currency} ${inv.total_amount}`);
inv.line_items.forEach(item => {
console.log(` - ${item.description}: ${item.amount}`);
});
curl -X POST https://corestackapi.com/invoice/extract \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/invoice.png"}'
All fields returned as structured JSON. Null for any field not found in the document.
Start free. Upgrade when you need more. No hidden fees.
Free plan available — 30 requests, no credit card required.
Get API Key →