PDF & Image to Text (OCR) — Scanned PDFs, Photos, Screenshots avatar

PDF & Image to Text (OCR) — Scanned PDFs, Photos, Screenshots

Pricing

from $1.60 / 1,000 ocr pages

Go to Apify Store
PDF & Image to Text (OCR) — Scanned PDFs, Photos, Screenshots

PDF & Image to Text (OCR) — Scanned PDFs, Photos, Screenshots

Extract text from PDFs and images by URL. Exact text from digital PDFs, automatic OCR (Tesseract) for scanned pages, photos and screenshots in 8 languages. Page-by-page output, ready for LLMs, search and RAG pipelines.

Pricing

from $1.60 / 1,000 ocr pages

Rating

0.0

(0)

Developer

tidydata

tidydata

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

📄 PDF & Image to Text (OCR) — scanned PDFs, photos and screenshots

Turn any PDF or image URL into clean text. Digital PDFs are read exactly from their text layer (fast and cheap). Scanned pages, photos and screenshots are read with OCR (Tesseract) in 8 languages. You get the full text plus page-by-page text, ready for LLMs, RAG pipelines, search indexes or spreadsheets.

  • ✅ PDFs, PNG, JPG, TIFF (multi-page), WEBP, GIF, BMP
  • ✅ Auto mode: uses the PDF's real text when it exists and only OCRs pages without text, so you never pay OCR prices for digital pages
  • ✅ OCR languages: English, Spanish, French, German, Italian, Portuguese, Dutch, Catalan (combine several)
  • ✅ Page-by-page output for citations and chunking
  • ✅ Password-protected PDFs are detected and reported, never cracked
  • ✅ Your files are only downloaded during the run to extract the text; nothing else is kept

How to use it

  1. Paste one or more file URLs (one per line, or upload a list).
  2. Keep Auto mode (recommended) and pick the OCR languages of your scanned documents.
  3. Run. Each file becomes one row in the dataset; export it as JSON, CSV, Excel or straight to your app via API.

Output example

{
"url": "https://arxiv.org/pdf/1706.03762",
"fileName": "1706.03762",
"fileType": "pdf",
"fileSizeBytes": 2215244,
"pageCount": 15,
"pagesProcessed": 15,
"pagesOcr": 0,
"pagesTextLayer": 15,
"method": "text",
"ocrLanguages": null,
"charCount": 39605,
"wordCount": 6113,
"text": "Provided proper attribution is provided, Google hereby grants permission to reproduce the tables and figures in this paper…",
"truncated": false,
"processingSeconds": 0.62,
"error": null,
"pages": [{ "page": 1, "method": "text", "text": "…" }]
}

If a file can't be processed (broken link, unsupported format, password-protected, too big) you get a row with the error explained and you are not charged for it.

Use cases

  • 🤖 AI & RAG — feed PDFs and scans to ChatGPT, Claude or your vector database with page numbers for citations.
  • 🧾 Invoices, receipts and forms — get the text out of scanned paperwork for bookkeeping or data entry automations.
  • 📚 Research — bulk-extract papers, reports and public documents.
  • 🔎 Search & archiving — make scanned archives searchable.
  • 🖼️ Screenshots & photos of documents — read text from images in workflows (Make, Zapier, n8n).

Pricing

Pay only for pages actually processed:

  • Text-layer page (digital PDF): cheap, charged per page.
  • OCR page (scanned page or image): charged per page.

Use maxPagesPerFile to cap the cost of very long documents. Failed files are free.

Tips for the best OCR results

  • Select only the languages that appear in your documents.
  • Higher-resolution scans (≥ 200 DPI) give noticeably better results.
  • Handwriting is not supported reliably (OCR is designed for printed text).

FAQ

Does it work with Make, Zapier or n8n? Yes — call the Actor via the Apify integration or API and read the dataset.

Is my data stored? Files are downloaded only for the duration of the run to extract text. The result stays in your own Apify dataset, under your control.

Can it read tables? Text from tables is extracted in reading order. Cell structure is not reconstructed.