Keencrest guides

OCR API, pay per page, no subscription: $0.003 per page

By Keencrest · 2026-11-01

Most OCR services want a monthly plan, a cloud account with a billing profile, or a minimum spend. If you have a pile of scans once a quarter, that is a poor fit. This guide covers a pay-per-page option: you send links to images or scanned PDFs, you get the text of every page back as JSON, and you pay $0.003 for each page that had text. Pages with no text, files that fail to open and links that cannot be fetched are returned with the reason and are not charged.

What it is

An Apify Actor that runs the open-source Tesseract 5 engine (Apache-2.0) inside the Actor, with 27 languages built in. Your files are not sent to any third-party OCR service. It reads PNG, JPEG, TIFF (multi-page too), GIF, BMP, WebP and PDF, and you can call it from the Apify API, a spreadsheet script, n8n, Make or by hand in the Apify console.

Price

JobCost
1 scanned letter$0.003
A 40-page scanned contract$0.12
1,000 receipts$3.00
Blank pages, photos without text, broken files$0, returned with a failure reason

There is no start fee and no monthly plan. The Apify free plan includes monthly credit, so you can try it before paying anything. Set a maximum spend per run and the Actor stops when it is reached.

A real run: a scanned business letter

We made a sample letter with made-up text, saved it as an image, and ran the Actor on it from Apify's servers on 2 November 2026. The input:

{"urls": [{"url": "https://keencrest-guides.web.app/samples/sample-scan.png"}], "languages": ["eng"]}

You can open the image and compare. The output row came back with status: ok, confidence: 95.8, 67 words, 408 characters, and this text (middle shortened):

Keencrest Sample Co.
12 Example Street, Sampletown

2 November 2026
Dear Customer,

Thank you for your order no. KC-1042 placed on 28 October 2026.
Your 3 licences will be delivered within 5 working days.
The total amount of EUR 148.50 is due by 30 November 2026.
...
This letter is a made-up sample created by Keencrest.

Every line matched the image. The row also carries the image size, the page number and count for PDFs, billed: true, and optional word boxes if you set includeWordBoxes.

A mixed German and English letter

For a letter in two languages, list both: "languages": ["deu", "eng"]. On the German and English sample the run returned confidence 96.1 and read the umlauts, the sharp s and the euro sign correctly:

vielen Dank für Ihre Bestellung. Die Lieferung erfolgt innerhalb
von fünf Werktagen. Der Betrag von 148,50 € ist bis zum
30. November 2026 zu überweisen. Größere Mengen für
Schüler und Äpfel sind auf Anfrage möglich.

Where it makes mistakes: a receipt

Here is a result that is not perfect, because you should know what to check. On our sample receipt in default mode the confidence was 90.7 and the totals read correctly, but one line was garbled. The image says Coffee 2 x 3.20 6.40; the output said:

Coffee 2 ¥& SoBl 6.40
Croissant 1 x 2.80 2.80
Orange juice 1 x 4.10 4.10
SUBTOTAL 13.30   TAX 7% 0.93   TOTAL 14.23

We left it as it is. A line whose quantity and price no longer multiply to its total is the kind of error to catch by checking arithmetic after the run. For receipts and labels the single_block setting of pageSegmentationMode is the one to try first (it scored 90.9 on this sample and still garbled that line), and re-running a low-confidence page costs $0.003.

Limits to know

How to run it

  1. Put your files at public links (or upload them to an Apify key-value store).
  2. Open the Actor, paste the links into urls, pick the languages, and run. Start with 3 to 5 files and check confidence.
  3. Export the dataset as JSON, CSV or Excel, or fetch it through the API.

Try it: OCR: Images & Scanned PDFs to Text on Apify. $0.003 per page with text, nothing for pages without. The Apify free plan includes monthly credit, so a test run costs nothing out of pocket.

Related guides

All Keencrest guides