PDF & Invoice Data Extractor — Text, Metadata, Amounts, Dates
Pricing
Pay per usage
PDF & Invoice Data Extractor — Text, Metadata, Amounts, Dates
Extract text, metadata, page count, emails, dates, and financial amounts from PDFs in bulk — with automatic OCR fallback for scanned pages. No paid AI APIs required.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Harsh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
PDF & Invoice Data Extractor
Bulk-extract text, metadata, and key data points from PDFs — from URLs, a single upload, or a ZIP of many PDFs. Works well on invoices, bank/account statements, and general business documents. No paid AI APIs required for the core extraction, so it's fast and predictable to run at volume.
What you get, per PDF
- Full text
- Metadata — title, author, subject, creator, producer, creation/modified dates
- Page count and file size
- Emails found in the document
- Dates found in the document (multiple common formats)
- Financial amounts — both currency-marked ($, €, £, ₹, ¥, USD/INR/EUR/etc.) and plain table-style numbers (e.g. "1,500.00"), which is how amounts usually appear in bank/account statements
- Links written in the text
Scanned PDFs — automatic OCR fallback
Most PDFs (invoices, statements, reports) have a real text layer and are read directly — fast, and free of any OCR cost. Only the leftover PDFs that have no text layer (true scans/photos) get run through OCR (Tesseract, local, no paid API) automatically. If even OCR can't read a page (blank page, very low quality), that record is clearly flagged instead of returned empty.
Status values you'll see per record:
success— read directly, no OCR neededsuccess_via_ocr— had no text layer, OCR recovered itscanned_pdf_ocr_failed— no text layer, and OCR couldn't read it either
Optional: AI-structured bank statement transactions (bring your own key)
For documents that look like a bank/account statement, you can optionally provide your own API key for Gemini, OpenAI, or Claude. All the extraction above still happens locally and for free — the AI is only used to organize the already-extracted text into a clean structuredTransactions array (date, description, withdrawal, deposit, balance). We never charge for or store this key; it's encrypted by Apify and only ever used inside your own run — any AI usage bills go straight to your own provider account.
- No key provided → actor behaves exactly as described above (free, local, no AI).
- Key provided, but the document isn't detected as a bank statement → AI is skipped, no cost incurred.
- Key provided and the AI call fails for any reason (bad key, rate limit, etc.) → that record still returns all the normal fields, plus an
aiStructuringErrormessage. Nothing else in the run is affected.
Input
urls: array of public PDF linkspdfFile: upload a single PDF, or a ZIP containing many PDFsaiProvider(optional):gemini(default),openai, orclaudeaiApiKey(optional): your own API key for the chosen provideraiModel(optional): leave blank for a sensible per-provider default
Output example
{"source": "invoice.pdf","status": "success","metadata": {"title": "Invoice INV-2026-0042","author": "Acme Corp Billing System","pageCount": 1,"creationDate": "..."},"meta": { "characterCount": 399, "fileSizeBytes": 17519, "ocrUsed": false },"extractedText": "...","emails": ["billing@acmecorp.com"],"dates": ["2026-08-01"],"financialAmounts": ["$1,250.50", "1,363.05"],"links": ["https://acmecorp.com/invoices/inv-2026-0042"]}
Every field is available for CSV/Excel export directly from the Apify dataset view — no extra setup needed.