80trust / 100

Ocr

by Mart402 in Documents & files

x402 APIPassing, checked 48 min ago

OCR image to text with hallucination guard: dual-engine consensus, calibrated confidence, per-segment corroboration. Japanese-strong (latin too). Flat 0.05/image.

POST https://mart402.com/v1/ocr

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
128 ms typical, 128 ms slowest 5%
Last check
48 min ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://mart402.com/v1/ocr" \
  -H "content-type: application/json" \
  -d '{"image_url":"https://mart402.com/samples/assets/receipt.png","lang":"japanese"}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fmart402.com%2Fv1%2Focr
const res = await pay("https://mart402.com/v1/ocr", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"image_url":"https://mart402.com/samples/assets/receipt.png","lang":"japanese"}),
});
console.log(await res.json());

Example input

{
  "image_url": "https://mart402.com/samples/assets/receipt.png",
  "lang": "japanese"
}

Example output

{
  "chars": 28,
  "consensus": {
    "agreement": 0.957,
    "best_engine": "mistral",
    "confidence": 0.978,
    "flags": [],
    "segment_support": {
      "checked_segments": 1,
      "least_corroborated": [
        {
          "support": 1,
          "text": "MART402 SELFCAL 2026-07-27"
        }
      ],
      "note": "support = corroboration by the second engine, not correctness. Verify low-ranked segments first, especially numbers and legal text.",
      "weak_segments": []
    },
    "verdict": "high_consensus"
  },
  "engines": [
    "gcv",
    "mistral"
  ],
  "mime": "image/png",
  "note": "SAMPLE RESPONSE (recorded from a real production call on 2026-07-27). This product is LLM-backed and runs on production (mart402.com) only; the sandbox returns this fixed sample so you can see the exact response shape for free. No payment was taken.",
  "ok": true,
  "sample": true,
  "seconds": 0.68,
  "text": "# MART402 SELFCAL 2026-07-27"
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
48 min agoPassed402420 ms$0.05
6 h agoPassed402128 ms$0.05