MH MediaHarvester Web Context API

OCR

Image OCR

Turn text trapped inside an image into machine-readable lines that can be searched, validated or passed to an agent without manual transcription.

POST /v1/ocr/json

What you get

Developer-ready output for Image OCR

01 Upload, URL or base64 input
02 PaddleOCR first attempt
03 RapidOCR fallback
04 Structured line-level output

Real workflows

Where teams use Image OCR

These examples map to the endpoint's current inputs and outputs—not hypothetical platform features.

Read UI screenshots in support workflows

Extract error text or labels from customer screenshots before routing a support ticket.

OutcomeSearchable evidence even when the user only sends an image.
Digitize scanned forms

Convert image-based forms or document pages into text before validation and field extraction.

OutcomeA machine-readable first pass for downstream processing.
Index text-heavy media

Run OCR over exported slides, posters or screenshots before adding them to an internal search index.

OutcomePreviously invisible text becomes discoverable.

How it works

4 concrete steps from input to result

1

Send an image source

2

Try PaddleOCR first

3

Fall back to RapidOCR when needed

4

Return joined text and line metadata

API response

Fields developers usually wire first

Extract text from screenshots, scans and image files through a Paddle-first OCR chain with structured line output and a local fallback engine.

text lines[].text lines[].confidence meta.engine_used
curl.exe -H "X-API-Key: YOUR_API_KEY" "http://127.0.0.1:8013/v1/ocr/json"

Developer FAQ

Common questions about Image OCR

12 answers
What image inputs are supported?

Use multipart upload, image_url in the JSON payload, or image_base64 when the image already exists inside your application flow.

Why is Paddle first?

PaddleOCR is the primary engine in the chain because it generally handles mixed layout text well. When it is unavailable or fails, RapidOCR is used as the local open-source fallback.

Can I keep bounding boxes?

Yes. include_boxes keeps line coordinates in the response so you can draw overlays or map OCR text back onto the image.

What endpoint should I call for Image OCR?

Use POST /v1/ocr/json. Local development accepts the X-API-Key header with YOUR_API_KEY, and production clients can use the same shape with their own key.

Can I call it from CLI, SDK, MCP and no-code tools?

Yes. The same endpoint can be called with curl, the TypeScript SDK, Python SDK, MCP server, Zapier, Make, n8n, Google Sheets or Excel workflows where appropriate.

How does caching with maxAgeMs work?

When maxAgeMs is supported, a cached response can be reused if it is younger than the requested freshness window. Set maxAgeMs to 0 when you need a fresh scrape or extraction.

What happens when a page is blocked or requires login?

The API returns clear states such as blocked, verification_required, login_required, robots_disallowed or permission_required. It does not promise to bypass access controls.

Which response fields should I store?

Most integrations store text, lines[].text, lines[].confidence, meta.engine_used, plus source URL, status, confidence and timestamp fields when present. Keep source metadata so users can audit values later.

Can I batch this endpoint?

For local or small workflows, loop over a list of URLs or domains. For larger jobs, use crawl, batch workflow endpoints or a queue so failures and retries are tracked cleanly.

How should I handle errors in production?

Check success, HTTP status, error.type and retryable flags. Retry timeouts and temporary network failures, but do not retry robots, login or permission errors without changing input or authorization.

Does the API work with JavaScript-heavy sites?

The engine router starts with fast fetching and escalates when content quality is low. Browser-style rendering is used where available, while access-control barriers are reported explicitly.

Is this safe to use with customer data?

Send only domains, URLs or fields your workflow needs. Use retention controls for generated artifacts and avoid storing unnecessary raw HTML, screenshots or extracted personal data.

Related data APIs

Build the next step in the workflow