The problem: modern OCR fails silently. A vision-language model reading blurry handwriting will not return an error - it returns fluent, confident text that is simply wrong, sometimes in the wrong language entirely. A human spots this instantly. An agent pipeline ingests it and acts on it.
We measured this on real documents: on one handwritten Japanese note, a frontier OCR model output fluent Devanagari (Hindi) - zero overlap with the document - while a traditional OCR engine read it correctly. On a printed tax receipt, the same model subtly rewrote a legal notice into different (wrong) wording. Neither failure raises an exception. Both poison downstream automation.
Every OCR result - POST /v1/ocr (single image, flat $0.05) and
POST /v1/parse (PDF) - carries machine-actionable quality signals
(consensus on both; ocr_quality on parse OCR-route results):
{"ok": true, "route": "mistral",
"ocr_quality": {"confidence": 0.9, "hallucination_suspected": false,
"flags": [], "chars": 1483},
"consensus": {"verdict": "high_consensus", "confidence": 0.86, "agreement": 0.91,
"flags": [], "best_engine": "mistral"},
"markdown": "..."}
high_consensus, partial_consensus,
low_consensus_review_recommended or all_engines_suspected_hallucination.
When engines disagree we say so and show the agreement score. We do not sell
overconfidence - an agent that gets burned once never comes back.| Signal | Action |
|---|---|
| confidence ≥ 0.7, no flags | Use the text. |
| hallucination_suspected | Discard; use consensus best_engine text (already applied) or re-scan. |
| low_consensus_review_recommended / all_engines_suspected_hallucination | Queue for human review; don't act on extracted numbers. |
Free sandbox (same API, Base Sepolia; OCR returns a recorded sample there): mart402.dev.
Production, via x402: single images at a flat
$0.05/image (POST /v1/ocr); PDFs via free quote first
(/v1/parse/quote) - text-embedded flat $0.01/document, scanned OCR
$0.015/page. Measured latency & success rate:
/stats, also probed by Market402 (same operator, public rules).
Agent docs: /agents.md · /llms.txt · /catalog