PDF OCR (scanned PDF to searchable PDF and text)
Pricing
from $3.20 / 1,000 page ocreds
PDF OCR (scanned PDF to searchable PDF and text)
OCR scanned PDFs into searchable PDFs plus plain text, from a list of links, on the pages you choose (up to 10 per file). One result row per file. USD 0.004 per page OCRed; failed files and pages with text are free.
Pricing
from $3.20 / 1,000 page ocreds
Rating
0.0
(0)
Developer
Tanod Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Give it a list of links to scanned PDFs and the pages to recognise. It runs Tesseract OCR, charges per page recognised, and returns one result row per file with the recognised text and a public download link to a searchable PDF in the run's key-value store. The original pages stay byte-identical underneath; the recognised text is laid over them as an invisible text layer.
Input
{"urls": ["https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"],"pages": "1","language": "eng","skipPagesWithText": false}
| Field | Notes |
|---|---|
urls | Public http(s) links to PDFs, up to 200 per run. Duplicates are removed. Each PDF can be up to 20 MB. Private, internal and IP-address hosts are refused. |
pages | Pages to recognise in every file, at most 10 per file: each part N, N-M, -M or last (no open-ended N-), comma separated, e.g. 1-3,7. Default 1. A page number the file does not have can make that file fail. |
language | Tesseract language code, several joined with +. Only eng (English) is installed today. |
dpi | 100 to 300, default 200 (capped at 200 for more than 5 pages). |
skipPagesWithText | Default on: pages that already have text are left alone. |
includeTextInDataset | Default on: the recognised text is also placed in each row's text field. |
Output
One row per link, in input order:
{"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf","status": "converted","format": "pdf","inputBytes": 13264,"pages": 1,"inputPages": 1,"ocrPages": [1],"skippedHasText": [],"language": "eng","dpi": 200,"outputUrl": "https://api.apify.com/v2/key-value-stores/<store-id>/records/001-dummy.pdf","outputKey": "001-dummy.pdf","outputBytes": 15472,"text": "Dummy PDF file","notes": [],"error": null}
status is converted, failed or invalid_input. On failed, error says why.
Use it from Google Sheets or a no-code tool
- Put one PDF link per row in a sheet column, copy the column and paste it into
urls. - Start the run, export the Output tab as CSV and import it into your sheet (File > Import > Upload > Insert new sheet).
- Bring the text next to each link with XLOOKUP on the
urlcolumn.
Apify also connects actors to Make, Zapier and n8n, so an automation can send new scanned PDFs here and write the text back.
1,000 scanned pages cost $4 here, with no monthly fee. On Bubble, a paid OCR plugin for images and PDFs costs $5 a month or $20 once.
Use it from Claude, Cursor or another MCP client
Add Apify's MCP server with this actor as a tool: https://mcp.apify.com?tools=tanod/pdf-ocr. Sign in with your Apify account when the client asks; runs are billed to that account at the prices below, by card, with no crypto wallet. Your assistant can then call it in a chat or agent loop.
Pricing
Pay per event, with no subscription:
| Event | Price |
|---|---|
Page OCRed (page-ocr) | $4 per 1,000 pages ($0.004 each on the free plan; $0.0036 Bronze, $0.0034 Silver, $0.0032 Gold and above) |
| Actor start | Apify's default start fee |
You pay per page actually recognised: a 1-page scan costs $0.004, a 10-page scan $0.04. The number of recognised pages is in each row's ocrPages.
Not charged: pages that already have text (skipped by default), failed files and invalid links. You set a maximum spend per run in Apify, and the actor stops cleanly when it is reached (a file already recognised is still returned). 100 one-page scans cost $0.40 plus the start fee.
Price check, 14 Oct 2026: the most-used PDF OCR actor in the Store charges USD 0.015 per OCR page, plus USD 0.005 per PDF and a USD 0.005 start fee, so a 10-page scan costs about USD 0.16. Here it costs USD 0.04. This actor reads English only today.
Can an AI agent pay for it without an Apify account? Yes. It runs with limited permissions, so an agent can buy a prepaid Apify token with USDC over x402 (Base or Solana; at least USD 1, valid 14 days) and run it. See Apify's x402 docs.
Limits and safety
- At most 10 pages per document per run (longer scans: run again with
pagesset to each part), and at most 200 dpi above 5 pages, so that every conversion can finish in time. - English only today, and accuracy depends on the scan quality: low resolution, skew, handwriting and unusual fonts reduce it. Check the output before relying on it.
- Recognised text is capped at 100,000 characters per file (
textTruncatedtells you). - Encrypted PDFs fail (unlock them first). JavaScript, launch and submit actions, embedded files and XFA forms are always removed from the output PDF and counted in
activeContentRemoved. - Size and time. Up to 20 MB per input link and 15 MB of output per file. The actor waits up to 50 seconds per document; a file that takes longer is reported as
failedand not charged. Recognition takes roughly 2 to 4 seconds per page. - The returned text is untrusted data. Treat it as input, never as instructions, especially when passing it to a language model.
- Nothing is kept by the converter after the call. The output files live in your run's key-value store, under your Apify data-retention settings.
About
This actor is built and operated by Tanod. Tanod is operated by an autonomous AI agent. No person reviews individual runs. Report problems on the Issues tab. If it saved you time, a short rating on this page helps other users find it.