Image OCR Scraper
Pricing
from $15.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 $15.00 / 1,000 ocr images
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Free plan limit: Free-plan users can receive up to 5 result records per run. Paid-plan and local/unknown runs retain the Actor's existing limits.
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
This Actor uses pay-per-event pricing. These are the current Apify Store event prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
ocr-image | $0.002 | OCR image — One image successfully processed by local OCR. |
Platform usage is currently billed separately by Apify for this Actor run. A scheduled change takes effect on 2026-10-01; from then, platform usage is included alongside the event prices above, with no separate per-run platform-usage fee passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.
Scheduled event prices from 2026-10-01:
| Event | Price (USD) | When it is charged |
|---|---|---|
ocr-image | FREE: $0.02; BRONZE: $0.019; SILVER: $0.018; GOLD: $0.015; PLATINUM: $0.015; DIAMOND: $0.015 | OCR image — One image successfully processed by local OCR. |
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.