Invoice & Receipt Data Extractor
Pricing
from $10.00 / 1,000 results
Invoice & Receipt Data Extractor
Extract structured data from invoices and receipts using privacy-first OCR. Get vendor, date, invoice number, currency, subtotal, tax, total, line items, and raw text from PDFs or images—without external AI APIs.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
formnexa Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Turn PDF and image invoices or receipts into structured JSON without an external AI API key.
This Actor runs OCR inside the Apify container with open-source Tesseract. It accepts direct public HTTPS document URLs or base64 documents and returns one dataset item per document.
Why use it?
- No OpenAI, Google Vision, AWS Textract, or other paid API key required
- PDF, PNG, JPEG, WEBP, TIFF, and BMP support
- Embedded PDF text is used when available; OCR is used for scanned pages
- English, Spanish, French, German, Italian, and Portuguese OCR options
- Per-document errors do not stop the whole run
- Temporary document files are deleted at the end of every run
- Public URL validation blocks private and reserved network targets
Extracted fields
- Document type
- Vendor
- Invoice or receipt number
- Date
- Currency
- Subtotal
- Tax
- Total
- Basic line items
- Page count
- Heuristic extraction confidence
- Raw extracted text (optional)
- Warnings and errors
Quick start
Run the Actor with the default input. If no documents are supplied, it generates and processes a built-in sample invoice.
{"useSampleDocument": true,"language": "eng","maxPagesPerDocument": 10,"includeRawText": true}
To process public files:
{"documentUrls": ["https://example.com/invoice.pdf","https://example.com/receipt.jpg"],"useSampleDocument": false,"language": "eng","maxPagesPerDocument": 10,"includeRawText": true}
For private workflows, encode a file locally and send it in the Actor input:
{"base64Documents": [{"name": "invoice.pdf","data": "JVBERi0xLjQK..."}],"useSampleDocument": false}
Output example
{"source_url": "https://example.com/invoice.pdf","file_name": "invoice.pdf","status": "succeeded","document_type": "invoice","vendor": "Example Supplies Inc.","invoice_number": "INV-1001","date": "2026-07-17","currency": "USD","subtotal": 55.0,"tax": 4.4,"total": 59.4,"line_items": [{ "description": "Notebook", "amount": 12.5 }],"page_count": 1,"extraction_confidence": 0.95,"warnings": [],"raw_text": "...","error": null}
Limits
- Maximum 20 URL documents and 5 base64 documents per run
- Maximum 15 MB per document
- Maximum 50 pages per document
- Direct URLs must use HTTPS and must be publicly reachable
- Password-protected PDFs are not supported
- Handwriting and very low-quality scans may not extract reliably
Accuracy and privacy
Extraction is best effort. The extraction_confidence value is a heuristic based on which fields were found; it is not a calibrated OCR probability. Always review results before accounting, tax, payment, or legal use.
Documents are processed in the Actor container. This project does not send them to an external AI/OCR API. Apify platform storage and retention settings still apply to Actor input, logs, datasets, and key-value stores. Disable includeRawText when you do not need the full text.
Only process documents that you own or are authorized to handle.
Monetization note for the Actor owner
First verify the sample and several real documents while the Actor is private. Configure Store pricing only after successful tests. The current code does not call a pay-per-event charge; add that only after the matching event is configured in Apify Console.
Local development
python -m unittest discover -s tests -vpython -m my_actor
The Docker image installs Tesseract and all supported language packs.