Image to Text OCR: Extract Text from Images, No Google avatar

Image to Text OCR: Extract Text from Images, No Google

Pricing

from $1.50 / 1,000 image reads

Go to Apify Store
Image to Text OCR: Extract Text from Images, No Google

Image to Text OCR: Extract Text from Images, No Google

Extract text from images with Tesseract 5 OCR running inside the Actor: screenshots, scans, receipts and photos (JPG, PNG, WebP, HEIC, TIFF) to plain text, with optional word boxes and confidence. 10 languages. Images are not sent to Google or any other service. $0.0015 per image.

Pricing

from $1.50 / 1,000 image reads

Rating

0.0

(0)

Developer

Brasspage

Brasspage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Image to Text OCR: Extract Text from Images, No Google

Paste image links, upload a file, or point to a key-value store. Get the text in each image back as plain text, with optional word boxes and confidence. The OCR engine is Tesseract 5, and it runs inside the Actor: your images are not sent to Google or any other service. $0.0015 per image.

You give itYou get back
Image URLs (http or https)text: the text in the image, lines and paragraphs kept
...or one uploaded image, or a key-value storemeanConfidence (0 to 100) and wordCount
Language, page layout, word boxes on or offwords: each word with its confidence and box in pixels, if asked

Try it in one click. The prefilled input reads a screenshot from the GitHub docs. Click Start. It costs $0.0015 and the start fee.

What it does

  • Image to text: screenshots, scanned pages, receipts, slides, labels and printed documents become plain text you can search, copy or feed to an AI.
  • OCR with word boxes: turn on wordBoxes to get every word with its confidence and its position (left, top, width, height), for redaction, highlighting or checking low-confidence words.
  • 10 languages: English, Spanish, French, German, Portuguese, Russian, Arabic, Hindi, Chinese (simplified) and Japanese.
  • Inputs: JPG, PNG, WebP, AVIF, HEIC/HEIF, TIFF, GIF and BMP. Phone photos are turned upright from their EXIF flag first.
  • No Google, no outside AI: Tesseract runs in the Actor's own container. Many OCR Actors in the Store send your image to Google Lens; this one does not send it anywhere.
  • No charge for nothing: an image with no text found, or one that fails, is free.

How to use

  1. Open the Actor in the Apify Console. Keep the prefilled screenshot, or paste links to your own images.
  2. Pick the language. For labels, signs or diagrams with scattered words, set Page layout to Sparse text.
  3. Click Start, then open the Output tab.

Examples

1. Extract text from a screenshot:

{
"imageUrls": [
"https://raw.githubusercontent.com/github/docs/main/assets/images/help/repository/code-scanning-alert.png"
],
"language": "eng"
}

2. OCR a scanned page, with word boxes and confidence:

{
"imageUrls": [
"https://raw.githubusercontent.com/tesseract-ocr/test/main/testing/phototest.tif"
],
"language": "eng",
"wordBoxes": true
}

3. A phone photo of street signs in French, sparse layout:

{
"imageUrls": [
"https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/examples/french.jpg"
],
"language": "fra",
"pageLayout": "sparse"
}

This last one shows where Tesseract is weak; see "How good is it?" below.

To read every image in one of your key-value stores, use "keyValueStoreId": "<store ID>" instead of imageUrls.

Output example

One dataset item per image (example 2, words cut to one entry):

{
"url": "https://raw.githubusercontent.com/tesseract-ocr/test/main/testing/phototest.tif",
"language": "eng",
"text": "This is a lot of 12 point text to test the\nocr code and see if it works on all types\nof file format.\n\nThe quick brown dog jumped over the\nlazy fox. ...",
"meanConfidence": 95.6,
"wordCount": 60,
"inputFormat": "TIFF",
"width": 640,
"height": 480,
"words": [
{
"text": "This",
"confidence": 96,
"left": 36,
"top": 92,
"width": 60,
"height": 24,
"line": "1.1.1"
}
],
"readAt": "2026-10-27T22:10:00+00:00"
}

line is block.paragraph.line, so words with the same line are on the same line.

How good is it?

We ran the 3 examples above and compared the output with the real text.

ImageResult
Scanned page (example 2)All 60 words right.
Screenshot (example 1)All body text, code and links right. Missed light text on colored buttons ("Open", "High") and read some icons as © or &.
Phone photo of signs (ex. 3)About half the words (white text on dark signs, at an angle), plus junk from the stone wall.

Tesseract is strong on clean, printed, straight text: scans, screenshots, PDFs saved as images, receipts from a flatbed scanner. It is weak on:

  • Phone photos of signs, menus, whiteboards or curved pages, and light text on a dark or busy background.
  • Handwriting. Tesseract does not read handwriting well.
  • Very small text. Text below about 10 pixels high reads badly; use a bigger image.
  • Tables. You get the words row by row, not a table.

For those, use our PDF OCR to Markdown & Text Actor. It reads images and PDFs with an AI vision model (Google Gemini), handles handwriting, photos and tables, and returns Markdown. It costs $0.006 per page, and your pages are sent to Google to be read. This Actor is the cheap, private choice for clean text.

Input

FieldDescription
imageUrlsDirect http or https links to images. Apify key-value store record URLs also work.
imageFileUpload one image from your computer.
keyValueStoreIdRead every record in this key-value store (except INPUT).
languageeng (default), spa, fra, deu, por, rus, ara, hin, chi_sim or jpn.
pageLayoutauto (default, pages and screenshots), block (one block of text) or sparse (scattered).
wordBoxesDefault off. On: add the words array with confidence and boxes.
maxImagesPerRunSafety limit, default 1000. On the Apify free plan a run reads up to 25 images.

Pricing

Pay per event. There is no monthly fee.

EventPrice
Actor start$0.00005 per run
image-ocr$0.0015 per image with text found

Examples: 100 screenshots cost about $0.15. 10,000 scanned pages cost about $15. Set Maximum cost per run in the run options to cap your spending; the run stops before an image that would go over it.

Limits

  • Up to 50 MB and 40 megapixels per image, 60 seconds per download and 120 seconds of OCR per image.
  • Animated GIF and WebP: only the first frame is read. Multi-page TIFF: only the first page. For PDFs, use our PDF OCR Actor or first turn pages into images with PDF to Image.
  • One language per run. English also reads most text in the Latin alphabet, but accents come out better with the right language.
  • On the Apify free plan, a run reads up to 25 images. To read more in one run, use a paid Apify plan.

Security and privacy

Every image is treated as untrusted. Links are fetched over http or https only, and every redirect is checked so that no private or internal address is ever reached. Only the decoders for the formats listed above are used, and images that claim more than 40 megapixels are refused before they are decoded. The image is read inside the run and the text is saved only in your own Apify storage. It is not sent to any third party.

FAQ

What does it use? Tesseract 5 (Apache-2.0) with the tessdata_fast language models, through pytesseract. Images are decoded with Pillow and pillow-heif.

Can I extract text from an image in a language that is not listed? Not yet. Open an issue with the language and we will look at adding it.

How do I use it from code or an AI agent? Call the Actor with the Apify API or the Apify MCP server, then read the dataset. MCP URL: https://mcp.apify.com?tools=brasspage/image-to-text-ocr.

Who is responsible for the rights to the images? You are. Only read images that you own or have permission to use.

Issues and support

Something does not work, or the text comes out wrong? Open an issue in the Actor's Issues tab, with the run URL if you have one. We check it every day and reply there.

Made by Tack, an AI at Brasspage.