Kanto Labs
Image to Text OCR icon

Documents · Apify actor

Read the text in images and scanned PDFs

Paste links to PNG, JPG, WEBP, TIFF, HEIC or PDF files and get the text of every image or page in reading order, with a bounding box and confidence score for every line. OCR runs inside the actor with open-source models, with no third-party vision API behind it.

$0.003 per image or page$0.008 with the accurate modelFailed inputs are free

What it does

Image to Text OCR, in short

  • Open-source PP-OCRv6 models (Apache-2.0) running inside the actor: no API key, no external OCR service
  • One result per image or PDF page, text in reading order with paragraph breaks
  • Every line with its pixel box [x0, y0, x1, y1] and a confidence score
  • Uses a PDF page's own text layer when it has one (exact and instant), OCR otherwise
  • English and other Latin-script languages, Chinese and Japanese
  • fast model by default; accurate for Japanese, dense Chinese and poor photos

Who it's for

Built for

Operations and financePull totals, dates and IDs out of invoices, receipts and forms.
Archives and RAG pipelinesMake old scanned documents searchable or feed them into a retrieval pipeline.
Support and QAExtract text from app screenshots, chat logs, dashboards and error messages.
AI agent buildersGive an LLM agent eyes for documents; the output is plain JSON text.

Example

Input and output

One dataset row per result, downloadable as JSON, CSV or Excel, or read through the Apify API.

Input
{
  "sources": ["https://example.com/scans/invoice-0142.pdf"],
  "quality": "fast",
  "includeLines": true
}

From a real test run on a multilingual sample image, trimmed. method is ocr, or pdf-text-layer when a PDF page already had selectable text.

Output (one row)
{
  "fileName": "eurotext.png",
  "fileType": "image",
  "page": 1,
  "method": "ocr",
  "text": "The (quick) [brown] {fox} jumps!\nOver the $43,456.78 <lazy> #90 dog\n...",
  "lineCount": 12,
  "averageConfidence": 0.9842,
  "lines": [
    { "text": "The (quick) [brown] {fox} jumps!", "confidence": 0.9792,
      "box": [61, 32, 522, 74] }
  ],
  "processingTimeMs": 2106,
  "error": null
}

Pricing

Pay per result. Failures are free.

$0.003image or PDF page read · $3.00 per 1,000

No subscription, no monthly minimum. Apify platform compute is included in the price; Apify also adds a tiny start fee per run ($0.00005 per GB of run memory).

Example costs
You runYou pay
1,000 receipt photos, fast model$3.00
A 40-page scanned contract$0.12
200 screenshots, accurate model$1.60
Worked example. You OCR a 40-page scanned contract; 2 pages are blank and skipEmpty is on.38 pages × $0.003 = $0.114
2 blank pages = $0.00

Not charged:

  • Downloads that fail and unreadable files
  • Pages with no text (with skipEmpty, the default)

Fast model or PDF text layer: $0.003 per image or page. Accurate model: $0.008 per image or page. You can set Maximum cost per run in the run options and the actor stops cleanly when it is reached.

FAQ

Questions

Can I upload files instead of giving URLs?

Put them in an Apify key-value store, a bucket, a direct-download share link or your own server, and pass those URLs.

Is my data used for anything else?

No. Files are processed in the run's container and only the results you see are stored, in your own Apify account.

How accurate is it?

Clean screenshots and scans come out nearly perfect; the sample above averages 0.98 confidence. For blurry photos, Japanese, dense Chinese or decorative fonts, switch quality to accurate. Every line has its own confidence so you can flag uncertain ones. Handwriting works only when it is neat.

Does it keep the layout?

Text comes back in reading order with line breaks and blank lines between paragraphs. Use lines[].box for exact positions, for example to rebuild tables.

Is there a size limit?

50 MB per file by default (up to 200 MB), and up to 500 pages per PDF.

Try Image to Text OCR on Apify

Apify's free plan includes monthly platform credit you can use to try it. Also callable from AI assistants through the Kanto Labs MCP server.

Run it on Apify