PDF & Image to Text (OCR) for AI agents
Pricing
from $4.50 / 1,000 ocr pages
PDF & Image to Text (OCR) for AI agents
Turn PDFs, scans and images into clean per-page text and Markdown for AI agents and RAG. Reads the PDF text layer first, local Tesseract OCR for scans (EN, NL, DE, FR). No external APIs.
Pricing
from $4.50 / 1,000 ocr pages
Rating
0.0
(0)
Developer
Benelux Signals
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
PDF & Image to Text (OCR) for AI agents: PDF, scan and image to Markdown
Turn PDFs, scanned documents and images into clean text and Markdown, page by page. Give the Actor one or more file URLs (or upload files) and get one dataset row per page with the text, a Markdown version, the detected language, the OCR confidence and the method used. Digital PDFs are read straight from their text layer ($0.001 per page). Scanned pages and images go through local Tesseract OCR in English, Dutch, German or French ($0.006 per page).
Everything runs inside the Actor with open-source tools (poppler and Tesseract 5). Your documents are never sent to an external OCR or AI API. Failed downloads, unreadable files and empty pages are free.
Who is this PDF to text Actor for?
- AI agents and MCP clients that need to read a PDF, invoice, contract or screenshot inside a tool call. Every field has a safe default, and a call with only
urlsworks. - RAG and LLM pipelines that need per-page text or Markdown chunks with page numbers for citations.
- Back-office automation (Make, Zapier, n8n) that extracts text from scanned letters, forms or receipts.
- Researchers and journalists working with government PDFs, scanned archives and multilingual Benelux/DACH documents.
What does it do?
- Downloads each PDF or image (PDF, PNG, JPG, TIFF, GIF, WebP, BMP) from a URL, an uploaded file or a key-value store.
- Checks every PDF page for a usable text layer. Pages with real text are extracted directly: fast, exact and cheap.
- Runs OCR only where it is needed: on scanned pages, pages that contain only images and on all image files. Pages are rendered at 150 dpi (configurable), and the language is detected automatically or set by you.
- Cleans the text (hyphenation, whitespace, page artefacts) and builds simple Markdown with headings and paragraphs.
- Saves one row per page plus one Markdown file per document in the key-value store, and a
RUN_SUMMARYwith totals.
How to use it
- Paste one or more file URLs in PDF or image URLs, or upload files, or pick a key-value store that holds your files.
- Optional: choose the OCR language (auto, English, Dutch, German, French), a page range and page limits.
- Click Start. A one-page PDF takes about 2–5 seconds.
- Read the results in the Overview table, or download them as JSON, CSV or Excel. The full Markdown per document is linked in the run summary.
Input example
{"urls": ["https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf","https://github.com/ocrmypdf/OCRmyPDF/raw/main/tests/resources/typewriter.png"],"ocrMode": "auto","ocrLanguage": "auto","ocrDpi": 150,"outputFormat": "both","maxPagesPerDocument": 50,"maxPages": 200}
Files in a private key-value store: select the store in Key-value store (optional) and, optionally, list the keys. Without keys, all PDF and image files in the store are processed. A signed record URL (…/records/scan.pdf?signature=…) also works in PDF or image URLs.
Output example (one row per page)
{"status": "ok","charged": true,"input": "https://github.com/ocrmypdf/OCRmyPDF/raw/main/tests/resources/typewriter.png","fileName": "typewriter.png","fileType": "png","page": 1,"pageCount": 1,"method": "ocr","ocrLanguage": "eng+nld+deu+fra","language": "nl","ocrConfidence": 92.6,"wordCount": 101,"text": "Linzensoep a la Waterman\n\nkh ons linzen\n\n3 liter water ...","markdown": "## Linzensoep a la Waterman\n\nkh ons linzen ...","processingMs": 3088,"error": null}
method is text-layer or ocr. status is ok, empty (no text found, free) or error (free, with the reason in error, for example HTTP 404 Not Found when downloading the file.).
Accuracy and speed
Measured in Apify cloud runs (October 2026) against the original text:
| Document | Method | Text match |
|---|---|---|
| German law text, 10 scanned pages | OCR, 150 dpi | 99.8% |
| German scan as JPG | OCR, language auto-detected | 99.7% |
| Dutch noisy scan (rotated, JPEG artefacts) | OCR, auto | 93.7% |
| Dutch government PDF, 6 pages | text layer | exact |
Text-layer pages take milliseconds. OCR takes about 3–5 seconds per page for short documents. For long scans at the default 1 GB memory it takes about 15–20 seconds per page. Choose more memory (4 GB) for roughly 4× faster OCR at the same page price.
Tip: set the OCR language when you know it. In auto mode the first OCR page of each document is read with all four language models.
How much does it cost?
Pay per event, no subscription needed:
| Event | Free plan | Bronze | Silver | Gold+ |
|---|---|---|---|---|
Text-layer page (text-page-extracted) | $0.001 | $0.0009 | $0.0008 | $0.0007 |
OCR page or image (ocr-page-processed) | $0.006 | $0.0055 | $0.005 | $0.0045 |
| Actor start (per GB of memory) | $0.005 | $0.005 | $0.005 | $0.005 |
Examples on the Free plan: a 20-page digital PDF costs about $0.025, a 20-page scan about $0.125 and one screenshot about $0.011. Empty pages, failed pages and error rows are never charged. Use Max pages per run or Apify's maximum cost per run to cap spending. The run stops cleanly at your limit.
FAQ
Does it work for scanned PDFs without a text layer?
Yes. Pages without usable text, or whose text layer is garbled, are rendered and read with OCR automatically. Use ocrMode: "ocr-only" to force OCR, or "text-layer-only" to never OCR.
Which languages are supported?
English, Dutch, German and French (Tesseract fast models). Other Latin-script languages often work reasonably with English, but accents may be lost.
Can it read tables, handwriting or forms?
It extracts the text of tables in reading order, but not as table cells. Handwriting is not supported. Clear printed text and typewriter text work well.
Is my data private?
Files are processed inside your own Apify run and are not sent to third-party services. Temporary files are deleted at the end of each document.
Password-protected PDFs?
Enter the password in PDF password (stored as a secret).
Is it legal?
Extracting text from documents you own or may use is legal. You are responsible for having the right to process the files you submit, for example under copyright or the GDPR when documents contain personal data. The Actor does not bypass DRM or access controls.
Related actors by benelux-signals
Feed documents from other sources into OCR:
- EU Tender Radar – TED + TenderNed public tenders with keyword/CPV filters and only-new alerts.
- EU & Dutch News Monitor – keyword alerts across 80+ built-in Dutch, Belgian and EU news and official RSS feeds.
More tools from the same maintainer:
- Benelux Trade Fair Exhibitors – exhibitor lists from Dutch and Belgian trade fairs (Horecava, METSTRADE, Batibouw…) for B2B lead lists.
- Bulk PageSpeed & SEO Audit – Core Web Vitals, Lighthouse scores and on-page SEO checks for many URLs or a sitemap.
- Career Site Jobs API – jobs straight from Greenhouse, Lever, Recruitee, Personio, Ashby and other company career sites.
- Workday Jobs API – jobs from any myworkdayjobs.com career site, with a European employer seed list.
- Arbeitsagentur Jobs API – German job ads from the Bundesagentur für Arbeit Jobbörse.
- Remote Jobs Aggregator – Europe-friendly remote jobs from RemoteOK, We Work Remotely, Jobicy and more, deduplicated.
- Technical SEO Site Crawler – crawl a site for broken links, redirects, missing titles/meta, canonicals and noindex issues.
Questions or a source we should add? Open an issue on the Actor page.