Image OCR Extractor - Image to Text with Word Boxes avatar

Image OCR Extractor - Image to Text with Word Boxes

Pricing

from $2.95 / 1,000 image read with ocrs

Go to Apify Store
Image OCR Extractor - Image to Text with Word Boxes

Image OCR Extractor - Image to Text with Word Boxes

Read the text in images from any URL: JPG, PNG, WebP, GIF, TIFF and BMP screenshots, scans, signs and graphics. Get the full text, every line and word with its position and confidence, and the detected language. 100+ OCR languages.

Pricing

from $2.95 / 1,000 image read with ocrs

Rating

0.0

(0)

Developer

Fabrikit

Fabrikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

Image OCR Extractor reads the text inside images from any public URL and returns it as clean, structured data. Give it links to JPG, PNG, WebP, GIF, TIFF or BMP files (screenshots, scanned pages, statements, infographics, photos of signs) and each image becomes one dataset record with the full text, every line and word with its pixel position and confidence score, and the language of the text.

OCR runs inside the Actor with the Tesseract engine, the same one used by our Document to Markdown Actor. No external OCR API, no API key, no per-call fees from a third party.

What each record contains

  • text: everything that was read, one line per text line, with an empty line between blocks that are visibly separate (columns, sections).
  • lines: each line with confidence (0-100) and its bounding box x, y, width, height in pixels of the original image.
  • words (optional): each word with confidence, bounding box and line number, for highlighting, redaction or reading forms by position.
  • Image facts: format, width, height (upright, after EXIF rotation), fileSizeBytes, frameCount.
  • Quality signals: mean confidence, textFound, lineCount, wordCount, detected language (ISO 639-1), and notes with tips when nothing was found.

Use cases

  • Turn screenshots of dashboards, chats, terminals and web pages into searchable text.
  • Pull rows out of images of statements, price lists and tables (dates, amounts, reference numbers stay on their line).
  • Index image-heavy content (infographics, posters, slides exported as images) for search or for an LLM / RAG pipeline.
  • Check product photos, banners and ad creatives for the words they contain, with positions.
  • Read street, shop and safety signs in photos for mapping or dataset labelling.

How to use

  1. Paste image links into Image URLs (right-click an image in the browser and choose Copy image address).
  2. Set OCR language(s) if the text is not English, for example spa, fra, deu or eng+spa.
  3. Run the Actor. Download the dataset as JSON, CSV, Excel or HTML, or read it with the API.

Input example

{
"imageUrls": [
"https://upload.wikimedia.org/wikipedia/commons/5/5e/Panneau_du_Chemin_des_Avias.jpg",
"https://raw.githubusercontent.com/naptha/tesseract.js/master/tests/assets/images/bill.png"
],
"ocrLanguages": "eng+spa",
"layout": "auto",
"minConfidence": 30,
"includeLines": true,
"includeWords": true,
"maskContacts": true,
"maxItems": 20
}
OptionWhat it does
ocrLanguagesTesseract language codes joined with + (up to 5). English and Spanish are built in; other languages are downloaded once per run.
layoutauto for documents, screenshots, tables and sign photos; sparse for text scattered around the image (UI screenshots, infographics); block for one block of text such as a label or banner; line for a single line.
minConfidenceLines read with lower confidence are dropped (default 30). Raise it for busy photos.
enhanceImagesClean-up before OCR (on by default): grayscale, contrast, inversion of light-on-dark text, enlarging small screenshots, reducing huge photos.
includeLines, includeWordsTurn the position arrays on or off.
maskContactsReplaces e-mail addresses and phone numbers with [email removed] / [phone removed] in text, lines and words (on by default).
maxFileSizeMbSkip larger files (default 25 MB, up to 100 MB).

imageUrls also accepts data:image/png;base64,... URLs, which is handy when an AI agent or a script already has the image bytes.

Output example

Real record for a street sign photo from Wikimedia Commons (1146 x 823 JPEG), shortened only by removing the processedAt field:

{
"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/5/5e/Panneau_du_Chemin_des_Avias.jpg",
"fileName": "Panneau_du_Chemin_des_Avias.jpg",
"fileSizeBytes": 182375,
"format": "jpeg",
"width": 1146,
"height": 823,
"status": "ok",
"textFound": true,
"text": "Chemin\ndes Avias",
"lineCount": 2,
"wordCount": 3,
"confidence": 93.6,
"ocrLanguages": "eng+spa",
"layout": "auto",
"lines": [
{ "text": "Chemin", "confidence": 96, "x": 413, "y": 394, "width": 95, "height": 21, "paragraph": 0 },
{ "text": "des Avias", "confidence": 92, "x": 385, "y": 429, "width": 118, "height": 21, "paragraph": 0 }
],
"words": [
{ "text": "Chemin", "confidence": 96, "x": 413, "y": 394, "width": 95, "height": 21, "line": 0 },
{ "text": "des", "confidence": 93, "x": 385, "y": 429, "width": 41, "height": 21, "line": 1 },
{ "text": "Avias", "confidence": 92, "x": 437, "y": 431, "width": 66, "height": 18, "line": 1 }
],
"preprocessing": { "enhanced": true, "scale": 1, "inverted": false, "binarization": "sauvola" },
"notes": null,
"ocrSeconds": 0.28
}

The bank statement sample in the default input comes back line by line, for example 01Aug2018 Clearing Cheque 4987 36.07 99,914.15 -.

Links that fail (404, a web page instead of an image, a PDF, a file over the size limit) produce a record with status: "failed" and the reason in error, and are not charged. The SUMMARY record in the run's key-value store counts images read, images with text, lines, words and errors.

Pricing

Pay per event, no subscription:

EventWhen
image-ocreach image, once it has been downloaded and read (also when it turns out to contain no text)

See the Pricing tab for current prices; paid Apify plans get lower rates. Set a maximum cost per run in Apify and the Actor stops cleanly before going over it.

How it compares

This Actor returns positions and confidence for every line (and optionally every word). Cloud vision APIs can be more accurate on difficult photos and handwriting, but need an account and an API key and bill per request.

Honest limits: Tesseract is built for printed text. Handwriting, very stylised fonts, text curved around objects and tiny text in large photos come out poorly or not at all. Images rotated 90 or 180 degrees without EXIF orientation are not turned upright. Only the first frame of animated GIF/WebP and the first page of multi-page TIFF files is read; for multi-page scans and PDFs use Document to Markdown. HEIC photos and SVG files are not supported.

Integrations

  • API and clients: start runs and fetch results with the Apify API, the JavaScript or Python client, or one synchronous call (run-sync-get-dataset-items).
  • Make, Zapier, n8n: use the Apify modules to send new image links (from a form, a sheet or a storage bucket) and write the text back.
  • AI agents (MCP): the Actor can be called as a tool through the Apify MCP server, so an assistant can read an image link, or a base64 data: URL, during a conversation.
  • Webhooks: get notified when a run finishes and push the records to your own endpoint.

FAQ

Is it legal? The Actor only downloads the links you provide, like a browser. Make sure you are allowed to process those images. E-mail addresses and phone numbers are masked by default so personal contact details do not end up in your dataset by accident.

Do I need a proxy? No. Images are downloaded directly; if a host refuses (401, 403, 429), the download is retried through Apify datacenter proxy or your own proxy URLs. Residential proxy is not used.

Which languages? Any of the 100+ Tesseract languages: eng and spa are built in, the rest (for example fra, deu, por, rus, ara, hin, jpn, chi_sim) are downloaded at the start of the run. List only the languages you expect; extra languages slow OCR down and can lower accuracy.

Why did an image return no text? Check notes. Big isolated words in graphics are retried automatically as one block; for scattered UI text try layout: "sparse", for one line try "line".

Size limits? Up to 100 MB per file and about 120 megapixels; very large photos are reduced to 2,600 pixels on the long side before OCR.

Are my images stored? No. Each file is deleted right after it is read; only the dataset record stays in your Apify account.

Changelog

  • 0.1 (October 2026): first release. JPG, PNG, WebP, GIF, TIFF, BMP and data: URLs; text, lines and words with boxes and confidence; automatic clean-up and photo-aware binarisation; layout modes; language detection; contact masking; per-image pricing.

En español

Image OCR Extractor lee el texto de imágenes desde cualquier URL pública (JPG, PNG, WebP, GIF, TIFF, BMP): capturas de pantalla, documentos escaneados, estados de cuenta, infografías y fotos de carteles. Por cada imagen devuelve el texto completo, cada línea y cada palabra con su posición en píxeles y su nivel de confianza, y el idioma detectado. Trae inglés y español incluidos y descarga otros idiomas de Tesseract al inicio de la corrida. Oculta por defecto correos y teléfonos. Consulta la pestaña Pricing para ver los precios actuales; los planes de pago de Apify tienen tarifas más bajas. Los enlaces que fallan no se cobran. Para PDF y escaneos de varias páginas usa nuestro Document to Markdown.