Image OCR Scraper
Pricing
from $2.00 / 1,000 ocr images
Image OCR Scraper
Extract text from public image URLs with local OCR. Process screenshots, receipts, menus, labels, and scanned documents into structured text and confidence scores.
Pricing
from $2.00 / 1,000 ocr images
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
Extract text from public image URLs with local OCR. This actor is designed for developers, researchers, and AI agents that need a simple image URL → structured OCR result tool for screenshots, scanned documents, menus, labels, receipts, and other images they are authorized to process.
What it does
- Downloads each supplied
httporhttpsimage URL with retries. - Runs Tesseract OCR locally in the actor using the selected language.
- Returns one dataset item per image with recognized text, confidence, content type, byte count, timestamp, and status.
- Keeps processing after an individual download or OCR failure, so mixed batches produce useful partial results.
- Charges PPE once per successfully processed image (
ocr-image). Failed downloads and OCR errors are not charged.
What it does not do
This actor does not log in, bypass paywalls or bot protection, crawl image galleries, discover image URLs from websites, or process private images without a reachable URL. Use only images that you have permission to access and process. Image URLs should point directly to image content; HTML pages containing an image are not supported.
Input
{"imageUrls": ["https://example.com/receipt.png","https://example.com/menu.jpg"],"language": "eng","requestTimeoutSeconds": 30}
imageUrls accepts up to 25 URLs per run. Supported language presets are eng, deu, fra, and spa. The first run downloads the selected Tesseract language data, so startup can be longer than later images in the same run. Images are limited to 25 MB each.
Output
Each image produces a row like this:
{"status": "succeeded","imageUrl": "https://example.com/receipt.png","language": "eng","text": "TOTAL $42.00","confidence": 93.41,"bytesDownloaded": 184220,"contentType": "image/png","processedAt": "2026-08-13T00:00:00.000Z"}
Failed rows have status: "failed" and an error message. A not_charged row means the actor's pay-per-event limit was reached before returning an OCR result.
MCP and automation use
Use this actor when an agent already has direct image URLs and needs text extraction. It is intentionally narrow: pass URLs, choose a language, and read structured rows from the dataset. For a website-wide image crawl, pair it with a URL-discovery actor and pass the discovered direct image URLs into this actor.
Pricing
Pay per usage: one successful OCR image is one billable event. The default event price is $0.002 per image; your final Store price and account settings control the amount charged in production.
Limitations
OCR accuracy depends on image resolution, contrast, rotation, handwriting, typeface, and language. Confidence is Tesseract's estimate, not a guarantee. Pre-crop or enhance difficult images before processing when accuracy is important.
What data does Image OCR Scraper return?
| Field | Type | Description |
|---|---|---|
status | string | Whether OCR succeeded, failed, or was not charged. |
imageUrl | string | The supplied public image URL. |
language | string | Tesseract language preset used for recognition. |
text | string | Text recognized in the image. |
confidence | number or null | Tesseract's mean confidence score from 0 to 100, when available. |
bytesDownloaded | integer or null | Number of image bytes downloaded. |
contentType | string or null | Content-Type returned by the image host. |
processedAt | string | UTC timestamp when this image was processed. |
error | string | Diagnostic message for a failed or uncharged result. |
Use cases
- Supply structured public data to AI, RAG, enrichment, or evaluation workflows.
- Add a repeatable structured-data step to applications, agents, and automation pipelines.
- Run a one-off research job and export the structured result as JSON, CSV, Excel, XML, or RSS from Apify.
- Schedule the same input to monitor changes over time and send completed datasets to a webhook or integration.
- Feed schema-shaped records into a database, spreadsheet, BI tool, or AI workflow with the source URL retained for verification.
Run Image OCR Scraper with the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/image-ocr-scraper').call({"imageUrls": ["https://tesseract.projectnaptha.com/img/eng_bw.png"],"language": "eng","requestTimeoutSeconds": 30,"userAgent": "Mozilla/5.0 (compatible; Apify Image OCR Scraper/1.0)"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
You can also run the Actor from Apify Console, schedules, webhooks, the REST API, Make, Zapier, n8n, or the hosted Apify MCP server.
Responsible use
Use this Actor only for data you are authorized to access. Follow the target website's terms, robots and access policies, and applicable privacy, database, copyright, anti-spam, and data-protection laws. Do not use it to bypass authentication or other access controls, collect private data, harass people, or make high-impact decisions without independent verification.