Install
openclaw skills install receiptextractExtract structured transaction data from image or PDF receipts using the ReceiptExtract API (https://www.receiptextract.com). Use when the user wants merchant/date/items/tax/total parsed from a receipt photo, scan, or PDF; wants to test ReceiptExtract on sample files; wants JSON/CSV output; or wants help wiring ReceiptExtract into automations, scripts, or agent workflows.
openclaw skills install receiptextractExtract transaction data from receipt images or PDFs with ReceiptExtract.
Keep the workflow simple: locate the API token, upload one receipt file (or a directory for bulk mode), inspect the JSON, then present either raw JSON or a cleaned summary. Prefer the bundled helper script for repeatable usage.
Identify the input file
.jpg, .jpeg, .png, .webp) and PDFs.Locate the API token
RECEIPTEXTRACT_API_TOKEN in your environment before running commands.Call the upload endpoint
POST https://www.receiptextract.com/api/receipt/uploadAuthorization: Bearer <token>fileParse the response
successdata.merchantdata.datedata.items[]data.taxdata.totaldata.correctnessCheckdata.taxBreakdown[]creditInfosavedReceiptIdPresent the result
Use the helper script:
export RECEIPTEXTRACT_API_TOKEN="your-token"
python3 scripts/extract_receipt.py /path/to/receipt.png
Optional flags:
python3 scripts/extract_receipt.py /path/to/receipt.pdf --format summary
python3 scripts/extract_receipt.py /path/to/receipt.jpg --format csv
python3 scripts/extract_receipt.py --input-dir /path/to/receipts --format summary
python3 scripts/extract_receipt.py --input-dir /path/to/receipts --recursive --format json
Use --input-dir to process multiple receipts in one run. The helper script sends one API request per file and continues even if some files fail.
.jpg, .jpeg, .png, .webp, .pdf--recursive to include nested foldersUse curl when the helper script is unnecessary:
curl -sS -X POST "https://www.receiptextract.com/api/receipt/upload" \
-H "Authorization: Bearer $RECEIPTEXTRACT_API_TOKEN" \
-F "file=@/path/to/receipt.png"
Prefer JSON when the user wants the full extracted payload or when another tool will consume the result. In bulk mode, JSON includes processed, succeeded, failed, and per-file results.
In bulk mode, summary prints one status line per file followed by total counts.
Use a concise format like:
Merchant: Walmart
Date: 2023-06-09
Total: 76.37
Tax: 8.18
Items:
- BEDDING — 39.97
- STEAMER — 27.97
When the user asks for CSV, output line-item rows with these columns when available:
source_file (bulk mode)merchantdatedescriptionquantitytotal_priceitem_taxskureceipt_taxreceipt_totalsaved_receipt_idhttp_status (bulk mode)success (bulk mode)error (bulk mode)Interpret common failures like this:
400 — invalid input, missing file, unsupported type, or file too large401 — missing/invalid token402 — insufficient credits429 — rate limited; retry with backoff500 — server error; safe to retry carefullyIf the response is malformed or success is false:
USD.correctnessCheck: true is a useful confidence signal, not a guarantee.savedReceiptId when useful for traceability.scripts/extract_receipt.pyreferences/api.md