ParseParse
Use CasesDocsAPI Reference
Log InGet Started Free
Menu
  • How it works
  • Use Cases
  • Docs
  • API Reference
  • Contact
Documentation menu

Getting Started

  • Introduction
  • Quickstart
  • Authentication

API Reference

  • Extraction Endpoints
  • Schemas
  • Usage & Limits

Examples

  • Invoice Extraction
  • Receipt Parsing
  • Form Processing

Not finding what you need?

Ask us directly

Getting Started

  • Introduction
  • Quickstart
  • Authentication

API Reference

  • Extraction Endpoints
  • Schemas
  • Usage & Limits

Examples

  • Invoice Extraction
  • Receipt Parsing
  • Form Processing

Not finding what you need?

Ask us directly

Receipt Parsing

Extract store information, line items, totals, and payment details from receipts. Parse works with printed receipts, digital receipts, and photographed thermal paper.

Receipt Schema

Define a schema that captures the key fields from a receipt:

Code Examples

cURL

Python

Node.js

Sample Output

Export to CSV or Excel

Prefer a spreadsheet? Export any completed extraction as CSV or Excel, ready to import into your expense or bookkeeping tools. Exports are free.

Tips for Receipt Parsing

  • Thermal paper receipts fade over time - scan or photograph them promptly for best results
  • For photographed receipts, ensure even lighting and avoid shadows for best accuracy
  • Handwritten receipts are supported but may produce more validation warnings
  • All common image formats are supported (JPEG, PNG, GIF, WebP, TIFF, BMP, HEIC, AVIF) - use PNG for the highest-quality scans
Parse

AI-powered document data extraction

Conversion ToolsPowered by Conversion Tools

Use cases

  • Data Extraction API
  • PDF Parsing API
  • Invoice extraction
  • Receipt parsing
  • Purchase order extraction
  • Bank statement to JSON
  • Tax form extraction
  • Contract data extraction
  • Bill of lading extraction

Developers

  • How it works
  • Quickstart
  • Documentation
  • API Reference
  • n8n integration
  • Blog

Account

  • Log in
  • Contact
  • Security
  • Privacy Policy
  • Terms of Service
  • Refund Policy
© 2026 Conversion Tools
{
  "name": "receipt",
  "description": "Extract data from receipts",
  "fields": [
    { "name": "store_name", "type": "string", "description": "Name of the store or business" },
    { "name": "store_address", "type": "string", "description": "Store location or address" },
    { "name": "date", "type": "date", "description": "Date of purchase" },
    { "name": "items", "type": "array", "description": "List of purchased items", "items": "object",
      "fields": [
        { "name": "name", "type": "string" },
        { "name": "quantity", "type": "number" },
        { "name": "price", "type": "number" }
      ]
    },
    { "name": "subtotal", "type": "number", "description": "Subtotal before tax" },
    { "name": "tax", "type": "number", "description": "Tax amount" },
    { "name": "total", "type": "number", "description": "Total amount paid" },
    { "name": "payment_method", "type": "string", "description": "Payment method used (e.g. Cash, Visa, Mastercard)" }
  ]
}
curl -X POST https://api-parse.conversiontools.io/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@receipt.jpg" \
  -F "schema_id=YOUR_RECEIPT_SCHEMA_ID"
import requests

API_KEY = "YOUR_API_KEY"
headers = {"Authorization": f"Bearer {API_KEY}"}

with open("receipt.jpg", "rb") as f:
    response = requests.post(
        "https://api-parse.conversiontools.io/v1/extract",
        headers=headers,
        files={"file": f},
        data={"schema_id": "YOUR_RECEIPT_SCHEMA_ID"},
    )

data = response.json()
print(f"Store: {data['data']['store_name']}")
print(f"Total: {data['data']['total']}")
print(f"Paid with: {data['data']['payment_method']}")
for item in data["data"]["items"]:
    print(f"  - {item['name']}: {item['price']}")
const fs = require("fs");

const API_KEY = "YOUR_API_KEY";
const headers = { Authorization: `Bearer ${API_KEY}` };

const form = new FormData();
form.append("file", fs.createReadStream("receipt.jpg"));
form.append("schema_id", "YOUR_RECEIPT_SCHEMA_ID");

const response = await fetch("https://api-parse.conversiontools.io/v1/extract", {
  method: "POST",
  headers,
  body: form,
});

const data = await response.json();
console.log(`Store: ${data.data.store_name}`);
console.log(`Total: ${data.data.total}`);
console.log(`Paid with: ${data.data.payment_method}`);
data.data.items.forEach((item) => {
  console.log(`  - ${item.name}: ${item.price}`);
});
{
  "success": true,
  "id": "ext_rcp_001",
  "data": {
    "store_name": "Fresh Market Grocery",
    "store_address": "456 Oak Street, Portland, OR 97201",
    "date": "2024-01-20",
    "items": [
      {
        "name": "Organic Bananas",
        "quantity": 1,
        "price": 2.49
      },
      {
        "name": "Whole Wheat Bread",
        "quantity": 1,
        "price": 4.99
      },
      {
        "name": "Almond Milk 64oz",
        "quantity": 2,
        "price": 7.98
      },
      {
        "name": "Free Range Eggs (12ct)",
        "quantity": 1,
        "price": 5.49
      }
    ],
    "subtotal": 20.95,
    "tax": 1.68,
    "total": 22.63,
    "payment_method": "Visa ending in 4242"
  },
  "pages_used": 1
}
# Start the export, then download when ready
curl -X POST https://api-parse.conversiontools.io/v1/extractions/ext_rcp_001/export \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format": "csv"}'

curl -L -o receipt.csv \
  "https://api-parse.conversiontools.io/v1/extractions/ext_rcp_001/export?format=csv" \
  -H "Authorization: Bearer YOUR_API_KEY"