PDF OCR
Pricing
from $20.00 / 1,000 page read by ocrs
PDF OCR
Read scanned PDFs and get clean text per page, with a confidence score for each one. Pages that already carry a text layer are read directly and never billed as OCR, so mixed batches come back faster, more accurately and cheaper.
Pricing
from $20.00 / 1,000 page read by ocrs
Rating
0.0
(0)
Developer
Alexandre Leclerc
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Read the text out of scanned PDFs — invoices, contracts, delivery notes, archives — and get clean, page-by-page text back as JSON.
Scans are pictures of documents: there is no text inside them to copy, search or feed to an AI model. This Actor renders every page and reads it with OCR, so the content becomes usable data.
What does PDF OCR do?
Give it one or more links to PDF files. For each page it returns the text, how that text was obtained, and a confidence score. Export as JSON, CSV or Excel in one click, or pull it through the Apify API.
It only runs OCR where OCR is needed — and only bills for those pages. Real-world document batches are rarely all scans: exports and digital invoices already carry a text layer. Reading that layer is instant and character-perfect, while OCR is slow and approximate. This Actor checks each page first, takes the embedded text when it exists, and falls back to OCR only for genuine scans. Mixed batches therefore come back faster, more accurately, and cheaper than with a tool that OCRs everything blindly.
Why use this OCR Actor?
You see how much to trust each page. Every OCR'd page carries a mean confidence score, so you can route low-confidence pages to a human instead of discovering the problem downstream.
You know where each page's text came from. The textSource field says ocr or
text_layer, which tells you immediately whether a value was read or recognised.
A page limit protects your bill. OCR is the expensive part of the job, so each file stops after 50 pages by default. Raise it deliberately when you mean to process long archives.
One bad file never kills the batch. An unreachable URL comes back as a row with a
download_failed status, so a 500-document run always finishes and you can see exactly
which files need attention.
What data can it extract?
| Field | Description |
|---|---|
sourceUrl | The PDF the page came from |
status | ok, no_text_found, no_pages, charge_limit_reached, download_failed or parse_failed |
pageNumber | Page number, starting at 1 |
pageCount | Total pages in the document |
textSource | ocr for a scan, text_layer when the PDF already held its text |
confidence | Mean OCR confidence, 0 to 1 (null for text-layer pages) |
text | The page text |
How to extract text from a scanned PDF
- Click Try for free.
- Paste direct links to your PDF files into the PDF URLs field.
- Leave it empty to run a bundled sample scan and see the output format.
- Click Start, then open the Dataset tab when the run finishes.
- Export as CSV or JSON, or copy the API endpoint to automate it.
Input
{"pdfUrls": ["https://example.com/scanned-invoice.pdf","https://example.com/contract-1998.pdf"],"maxPages": 50}
Output
{"sourceUrl": "https://example.com/scanned-invoice.pdf","status": "ok","pageNumber": 1,"pageCount": 3,"textSource": "ocr","confidence": 0.9713,"text": "DELIVERY NOTE DN-2026-0884\nSupplier: Demo Industrial Supplies BV\n..."}
Pricing
| Event | Price |
|---|---|
| Actor start | $0.01 per GB of memory — $0.02 at the 2 GB default |
| Page read by OCR | $0.02 |
How much does it cost to OCR 1,000 pages?
About $20 plus $0.02 per run for the start. Pages that already carry a text layer are read for free — they are not billed as OCR — so a mixed batch costs less than its page count suggests. Splitting one job into many small runs pays the start fee each time, so send batches rather than single files.
Works well with
Need the tables out of your documents rather than raw text? Run PDF Table Extractor on the ones that already have a text layer. This Actor is the step before it for anything scanned.
FAQ
What languages does it read?
The recognition model handles Latin-script languages, including English, French, German, Spanish and Italian, as well as Chinese. Text quality matters more than language: a clean 300 dpi scan reads far better than a photo taken at an angle.
How accurate is it?
On clean scans the mean confidence is typically above 0.95. Rather than asking you to trust a number in a README, the Actor returns the confidence per page so you can measure it on your own documents.
Why is a page returned with no text?
Either the page is genuinely blank, or the image is too degraded to recognise — very low
resolution, heavy skew, or handwriting. Those pages come back with a no_text_found
status rather than silently disappearing.
Can it read handwriting?
No. The model targets printed text. Handwritten notes will produce poor results or none.
Is there a size limit?
Yes, 50 MB per file, and 50 pages per document by default. Both are deliberate guards against runaway costs; the page limit is adjustable in the input.
Support
Found a document type that reads badly? Open an issue on the Issues tab with an example. Real documents are what make an OCR Actor better.