Client API

Review texts programmatically — same three-layer engine, all scan depths, every enabled language. Reviews consume your organization's credits exactly like scans in the app and appear in your scan history.

Authentication

Organization admins create API keys under Organization → API Keys. The secret (vc_…) is shown once. Send it on every request:

X-API-Key: vc_your_key_here # or Authorization: Bearer vc_your_key_here

Submit a review

POST /api/public/v1/reviews — up to 100 texts per call. With wait_seconds you get results in one request (recommended for fast and standard); otherwise poll the returned URL.

curl -X POST https://vericlaim.eu/api/public/v1/reviews \ -H "X-API-Key: vc_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "texts": [ {"id": "sku-123", "content": "Unser Detox-Tee stärkt das Immunsystem."}, {"id": "sku-124", "content": "Ein wohltuender Kräutertee für kalte Abende."} ], "language": "de", "depth": "standard", "include_rewrites": false, "wait_seconds": 30 }'

Response (abridged):

{ "review_id": "3f6f…", "status": "completed", "credits_charged": 20, "poll_url": "/api/public/v1/reviews/3f6f…", "items": [ { "id": "sku-123", "status": "violation", "risk_score": 0.9, "findings": [ { "classification": "violation", "flagged_text": "Detox", "violated_regulation": "OLG Hamm 4 U 22/17", "suggested_replacement": null, "reasoning": "…" } ] }, { "id": "sku-124", "status": "clean", "findings": [] } ] }

Depths & credits

depthLayersCredits / text
fastKeywords & regex5
standard+ AI classification10
advanced+ evidence when issues found15
deep+ evidence for every finding20

include_rewrites: true adds 5 credits per text — automatically refunded for texts that come back clean. Insufficient balance returns HTTP 402 with {"error": "insufficient_credits", "balance": …, "required": …}.

Other endpoints

  • GET /api/public/v1/reviews/{id} — status + findings (poll until status is completed).
  • GET /api/public/v1/languages — languages your admin has enabled, with per-language coverage (see Languages).
  • GET /api/public/v1/balance — current credit balance + price matrix.

Errors & limits

  • 401 — missing / invalid / revoked key.
  • 400 — unsupported or admin-disabled language.
  • 402 — insufficient credits (structured payload).
  • 422 — validation error (empty texts, bad depth…).
  • 429 — rate limited (30 review submissions/min, 120 polls/min).
  • Max 100 texts per review, 50,000 characters per text.

Results are an automated pre-check — they support, but do not replace, review by a qualified legal professional.