API & MCP

Let your LLM send its translations to native speakers. Create an API key in Wallet (with optional daily and total spending caps), top up, and call the API or connect the MCP server.

Agent flow

Nativecheck = native speakers verify machine translations; reviews take minutes to hours, so it is asynchronous. 1) Collect ALL texts you need checked and POST /api/v1/quotes once (requested_by: "agent", agent: your name; items: target_lang + content as text, html or a JSON object; optional ref, source, context, doubt 0-100, doubt_note). 2) Show summary_for_human (price range + ETA) to your human and ask for approval. 3) POST /api/v1/orders {quote_id} with an Idempotency-Key header. Save order_id + check_after in memory, tell the human the ETA, and follow wait_plan: start a long-running background task/timer that waits until check_after, then polls GET /api/v1/orders/{id} every 60 s. 4) When ready=true, GET /api/v1/orders/{id}/delivery and replace your texts by ref. 5) POST /api/v1/orders/{id}/ack. The human also gets an in-app/push notification when ready. Keep placeholders like {name}, %s and ⟦1⟧ unchanged. Prices are coins (1 coin = $0.01).

  1. Quote: send every text at once (text, HTML or a JSON locale object, each with target_lang and your ref). Optional doubt (0–100) and/or doubt_note: how unsure you are. The note is scored automatically; it only moves the price range, since natives always read everything.
  2. Ask the human: show summary_for_human (price range, ETA).
  3. Order: commit the quote. Coins are held and the unused part is refunded. Agents send requested_by: "agent" and their agent name. Agent orders come back with a wait_plan: start a long-running background task or timer that waits until check_after, then polls every 60 s (a ready-to-run shell loop is included). The human gets an in-app and push notification when it's ready.
  4. Check later, then collect the verified texts by ref, with changes and a provenance record per segment (pseudonymous reviewer ids, method, timestamps, SHA-256 of original and final).
  5. Ack: texts are deleted 30 days after receipt (90 days if never acknowledged); provenance hashes are kept.

Already-verified sentences (translation memory) come back instantly and are not charged. Price: 2 coins per word per native (min 10) + 3 per voted fragment. 1 coin = $0.01. Natives receive 80%.

MCP (Claude Code, Cursor, any MCP client)

claude mcp add --transport http nativecheck https://nativecheck.data-clerk.com/mcp \
  --header "Authorization: Bearer nck_YOUR_KEY"
{"mcpServers": {"nativecheck": {"type": "http", "url": "https://nativecheck.data-clerk.com/mcp",
  "headers": {"Authorization": "Bearer nck_YOUR_KEY"}}}}

Tools: quote_review → place_order → check_order → collect_order → ack_order, plus balance, languages. Every result carries how_to and next.

REST

Base https://nativecheck.data-clerk.com/api/v1 · OpenAPI · llms.txt · llms-full.txt · MCP server card

curl -s https://nativecheck.data-clerk.com/api/v1/quotes -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d '{
  "requested_by": "agent", "agent": "claude-code", "reviewers": 2, "context": "Tea guide for beginners", "doubt": 40,
  "items": [
    {"ref": "tea/de.json", "target_lang": "de", "content": {"ui": {"h1": "Alle Tees erklärt"}}},
    {"ref": "about.html", "target_lang": "fr", "content": "<p>Le thé <b>vert</b> …</p>",
     "doubt_note": "unsure about tea terminology"}]}'
curl -s https://nativecheck.data-clerk.com/api/v1/orders -H "Authorization: Bearer $KEY" -H "Idempotency-Key: tea-2026-10" \
  -d '{"quote_id":"…"}'
curl -s https://nativecheck.data-clerk.com/api/v1/orders/ID -H "Authorization: Bearer $KEY"
curl -s https://nativecheck.data-clerk.com/api/v1/orders/ID/delivery -H "Authorization: Bearer $KEY"
curl -s -X POST https://nativecheck.data-clerk.com/api/v1/orders/ID/ack -H "Authorization: Bearer $KEY"

Webhook

Optional callback_url on the order: POST with {"event":"order.ready","order":{…delivery…}}, header X-Nativecheck-Signature: sha256=<hex HMAC-SHA256 of body with the key's webhook secret>. Retried 5 times.

Errors

401 bad key · 402 insufficient balance or key cap · 409 not ready yet · 410 texts deleted after retention · 422 invalid input. Errors carry how_to and next too.

Languages

en English, de Deutsch, fr Français, es Español, it Italiano, pt Português, nl Nederlands, pl Polski, uk Українська, cs Čeština, sk Slovenčina, hr Hrvatski, bg Български, sv Svenska, da Dansk, nb Norsk bokmål, fi Suomi, zh 简体中文, ja 日本語, ko 한국어, tr Türkçe, ro Română, hu Magyar, el Ελληνικά