Bulk OCR: Images & Scanned PDFs to Text (Tesseract) avatar

Bulk OCR: Images & Scanned PDFs to Text (Tesseract)

Pricing

from $3.00 / 1,000 page reads

Go to Apify Store
Bulk OCR: Images & Scanned PDFs to Text (Tesseract)

Bulk OCR: Images & Scanned PDFs to Text (Tesseract)

Turn scanned PDFs and images (PNG, JPEG, TIFF, WebP) into text with the open-source Tesseract OCR engine: one row per page with words and confidence. 9 languages. PDFs that already contain text are read directly. Pay per page with text; blank pages are free.

Pricing

from $3.00 / 1,000 page reads

Rating

0.0

(0)

Developer

Stellalytics

Stellalytics

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Features

Limited permissions

Share

Turn scanned PDFs and images into searchable text, many files at once. Give links to your files, or pick a key-value store you uploaded them to. You get one row per page with the text, the word count and the OCR confidence. It works in Google Sheets, a database, an LLM pipeline or the next Actor.

It uses Tesseract, the open-source OCR engine (Apache-2.0), with Poppler for PDFs. There is no third-party API, no API key and no sign-up. Your files are read inside the run and nowhere else.

What you get

  • Images: PNG, JPEG, TIFF (multi-page too), GIF, BMP and WebP. Photos are turned upright from their EXIF orientation.
  • PDFs: scanned PDFs are rendered at 300 DPI (or your choice) and read page by page. Pages that already contain text are read directly, which is exact and fast. You can turn that off.
  • 9 languages: English, German, French, Spanish, Italian, Portuguese, Dutch, Polish and Turkish. Mixed-language documents work: pick every language they use.
  • Per page: text with lines and paragraphs kept, words, confidence (0 to 100, the engine's own average), method (ocr or textLayer), page and pageCount.
  • Errors per file, not per run: a broken link, a damaged PDF or a file that is not an image gets one row with an error saying why, and the other files carry on.
  • SUMMARY record: files, pages read, charged, blank, failed and skipped.

Sample: the two prefilled public test images (from the Tesseract project's test files) give 2 rows. Here is the start of the first:

{
"file": "https://raw.githubusercontent.com/tesseract-ocr/test/main/testing/phototest.tif",
"page": 1,
"pageCount": 1,
"method": "ocr",
"text": "This is a lot of 12 point text to test the\nocr code and see if it works on all types\nof file format.",
"words": 60,
"confidence": 96.2,
"error": null
}

Use cases

  • Scanned contracts, invoices and letters to text for search, a spreadsheet or a document database.
  • Feed an LLM or a RAG index with the text of scanned PDFs, one page per row so each chunk keeps its page number.
  • Archives and old print: digitize scanned pages in bulk at a fixed price per page.
  • Chain Actors: run it on files another workflow saves to a key-value store.

How to use it

  1. In File links, paste direct links to your images or PDFs, one per line. Or pick a Key-value store that holds them (for example, one you uploaded scans to in Apify Console).
  2. Pick the languages in your documents.
  3. Optionally set Maximum pages per file and Maximum pages to read in this run to cap the cost.
  4. Run it. The text is in the Output tab, one row per page, and the counts are in the SUMMARY record.

Links must be direct downloads that anyone can open, such as a public cloud-storage link or a signed URL. Files are limited to 50 MB each.

Pricing

You pay per page that yields text, plus Apify's small start fee; the current price is on the Pricing tab. Blank pages, pages that fail, files that can't be read and pages over your limits are never charged. Set Maximum pages to read in this run, or a maximum cost per run, to cap the cost.

Accuracy

OCR is a best effort. Clean scans at 300 DPI usually read with confidence above 90. Low-resolution photos, handwriting, unusual fonts and complex tables read worse; check the confidence column. For small print, set the PDF resolution to 400 DPI. Handwriting is not supported.

Automate it: schedules and integrations

  • Export and connect: download as CSV, Excel or JSON, or send the result to Google Sheets, Slack, Make, Zapier or n8n through Apify's integrations.
  • API and MCP: call it from the Apify API, or from an AI agent through the Apify MCP server.

Limitations

  • Use it only for files you have the right to process. It doesn't recognize what a document is and doesn't remove personal data from it: the text is whatever is on the page.
  • Password-protected PDFs can't be read.
  • Layout is simplified to lines and paragraphs; tables come out as text lines, not cells.
  • At most 1,000 files per run and 2,000 pages per file.

FAQ

Do my files leave the run? They are downloaded into the run's container, read and deleted when the run ends. The text is written to the run's dataset in your account. Nothing is sent to a third-party service.

Why is a page marked textLayer? The PDF page already contained text (it was not a scan), so that text was used instead of OCR. Turn off Use a PDF's own text to OCR it as an image anyway.

Can it read a whole folder? Upload the files to a key-value store in Apify Console and pick that store. Every image and PDF record in it is read.

Support

Found a bug or need a feature? Open an issue on the Issues tab, where fixes for broken runs are a priority. For a custom version or a question you'd rather not post publicly, email stellalytics@gmail.com. Never send API keys or passwords by email or in an issue.