Image to Text OCR: Extract Text from Images & Screenshots avatar

Image to Text OCR: Extract Text from Images & Screenshots

Pricing

from $1.60 / 1,000 images

Go to Apify Store
Image to Text OCR: Extract Text from Images & Screenshots

Image to Text OCR: Extract Text from Images & Screenshots

Extract text from images, photos, scans and screenshots (PNG, JPG, WebP, GIF, BMP, AVIF) with OCR in 100+ languages. Optional lines with positions and confidence. $0.002 per image; failed images are free.

Pricing

from $1.60 / 1,000 images

Rating

0.0

(0)

Developer

Richie Data

Richie Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Features

Limited permissions

Share

Turn images into text with OCR: photos of documents, scans, receipts, screenshots, slides, signs and product labels. Paste image links and get the text of each one, its OCR confidence and, optionally, every line with its position. 100+ languages, PNG, JPEG, WebP, GIF, BMP and AVIF.

⭐ Is this Actor useful to you? A short review on the Reviews tab helps other users find it, and tells us what to build next.

  • 🖼️ Any common image format: PNG, JPG/JPEG, WebP, GIF, BMP and AVIF, from any direct link.
  • 🌍 100+ languages: English, Spanish, French, German, Portuguese, Chinese, Japanese, Arabic, Hindi and more, or mixes such as eng+spa.
  • 📐 Lines with positions: each line's text, confidence and bounding box, for highlighting, redaction or layout analysis.
  • 🔍 Two layouts: document mode for pages and receipts, scattered-text mode for screenshots, labels and signs.
  • 🔎 Better results on small images: screenshots and phone crops are upscaled before OCR automatically.
  • 🔒 Private: images are processed in memory and never stored; only the text is saved.
  • 💵 $0.002 per image (2 USD per 1,000). Failed images cost nothing.

Who uses it

  • AI and RAG developers who need the text inside images and screenshots for their LLM pipelines.
  • Operations and finance teams digitizing receipts, invoices and scanned forms in bulk.
  • Marketers and analysts reading text from social media images, ads, banners and memes.
  • E-commerce teams pulling product label and packaging text from product photos.
  • Developers who want an OCR API without installing or hosting Tesseract.

How to use it

  1. Paste one or more image URLs (direct links to the image files).
  2. Set OCR languages if the text is not in English (for example spa, deu or eng+fra).
  3. Pick Scattered text for screenshots, signs or labels; keep Document for pages and receipts.
  4. Click Start. Download the results as JSON, CSV or Excel, or read them through the API.

Input fields

FieldWhat it doesDefault
Image URLsDirect links to PNG, JPEG, WebP, GIF, BMP or AVIF files—
OCR languagesTesseract codes joined with +, e.g. eng, spa, eng+deu, chi_simeng
Text layoutDocument (paragraphs, columns) or Scattered text (screenshots, signs)Document
Include lines with positionsAdds each line with confidence and bounding boxoff
Minimum confidenceSkip (and don't pay for) images read with lower confidence0
Max file size (MB)Larger files are skipped20

Input example

{
"imageUrls": [
"https://tesseract.projectnaptha.com/img/eng_bw.png"
],
"languages": "eng",
"layout": "auto",
"includeLines": true
}

Output

One result per image:

{
"url": "https://tesseract.projectnaptha.com/img/eng_bw.png",
"fileName": "eng_bw.png",
"contentType": "image/png",
"width": 1486,
"height": 668,
"languages": "eng",
"text": "Mild Splendour of the various-vested Night!\nMother of wildly-working visions! hail\n...",
"characters": 351,
"words": 58,
"confidence": 92,
"hasText": true,
"lines": [
{ "text": "Mild Splendour of the various-vested Night!", "confidence": 95, "x": 38, "y": 34, "width": 1256, "height": 77 }
],
"extractedAt": "2026-11-08T01:00:00.000Z"
}

Output fields

FieldMeaning
textAll the text found, line breaks kept
confidenceAverage OCR confidence, 0–100 (above ~80 is usually clean text)
hasTextfalse when no readable text was found
words / charactersSize of the extracted text
linesEach line with its confidence and box (x, y, width, height), when enabled
width / heightOriginal image size in pixels
fileName, contentType, fileSizeBytesFile details
ocrMsTime spent on the image

Images that could not be read (broken links, web pages instead of images, files over the size limit) are not saved or charged; the SUMMARY record lists each one with the reason.

Pricing

$0.002 per image read, plus a tiny start fee. 1,000 images cost about $2.00. Failed images and images below your Minimum confidence cost nothing.

FAQ

Which OCR engine does it use? Tesseract, the open-source OCR engine, with its LSTM models. It works offline inside the Actor: your images are not sent to Google, OpenAI or any other third party.

Does it read handwriting? Clear block letters often work; cursive handwriting usually gives low confidence. Use Minimum confidence to drop poor results.

Can it read scanned PDFs? Use the PDF to Text & Markdown Extractor: it reads digital PDFs exactly and runs the same OCR on scanned pages.

How do I process images from my computer? Upload them anywhere that gives a direct link (for example an Apify key-value store, Google Cloud Storage, S3 or Dropbox with a direct-download link) and paste the links.

How do I get better accuracy? Set the right language, use images where letters are at least ~15 px tall, and pick Scattered text for screenshots and labels. Small images are upscaled automatically.

Is it fast? A typical image takes 1–3 seconds. For thousands of images, give the run 2–4 GB of memory.

Limitations

  • Links must point to the image file itself, not to a gallery or a page that shows it.
  • Tables come out as text in reading order, not as structured cells.
  • Very stylized fonts, low-resolution photos and cursive handwriting give low confidence.
  • TIFF and HEIC files are not supported yet; convert them to PNG or JPEG first.

Use it from your code, AI agents and automations

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("richiedc95/image-to-text-ocr").call(run_input={
"imageUrls": [
"https://tesseract.projectnaptha.com/img/eng_bw.png"
],
"languages": "eng",
"layout": "auto",
"includeLines": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('richiedc95/image-to-text-ocr').call({
"imageUrls": [
"https://tesseract.projectnaptha.com/img/eng_bw.png"
],
"languages": "eng",
"layout": "auto",
"includeLines": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
  • 🤖 AI agents (MCP): add the Apify MCP server to Claude, ChatGPT, Cursor or any MCP client and this Actor becomes a tool your agent can call.
  • 🔗 No-code (n8n, Make, Zapier): one HTTP request runs the Actor and returns the results, so any automation tool can use it. In n8n, add an HTTP Request node with method POST, URL https://api.apify.com/v2/acts/richiedc95~image-to-text-ocr/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> and the JSON input above as the body, then send the items to Slack, Google Sheets, email or a CRM. Put a Schedule node in front for daily alerts. Make and Zapier have official Apify apps (Run an Actor → Get dataset items). Ready-made n8n workflows (import from URL) and a step-by-step guide: n8n / Make / Zapier examples.
  • 📥 Exports: download every run as JSON, CSV, Excel, XML or RSS, or read it through the Apify API.

Process new images automatically

  1. Click Save as a new task with your input.
  2. Run it on a schedule, or trigger it with an integration when another Actor finishes (for example, OCR every image a scraper just collected).
  3. Read the latest results from one stable URL:
https://api.apify.com/v2/actor-tasks/<TASK_ID>/runs/last/dataset/items?token=<YOUR_APIFY_TOKEN>&status=SUCCEEDED&format=json

Found a bug or need a feature? Open an issue on the Issues tab and we will usually answer within a day.