Beta keys are concierge-minted. Keys look like avk_… and are shown once; send as a Bearer token.
Authorization: Bearer avk_...A rubric is your success criteria. Start from a template (see Templates) or write your own. Compilation is idempotent by content hash.
curl -s -X POST $API/v1/rubrics \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d @templates/rag-grounding-check/rubric.json
# -> { "rubric_id": "...", "hash": "..." }Bounded-sync: wait_ms holds the request open up to 45s and returns the finished verdict when the engine beats the clock. Idempotency-Key makes retries safe.
curl -s -X POST $API/v1/verify \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: demo-1" \
-d '{"rubric_id":"<id>","submission":{"inline":"INV-4821 total $1,250.50"},"options":{"wait_ms":45000}}'
# -> 200 { determination, score, confidence, flagged, criteria: [...], proof_ref }Every verdict carries an append-only, Ed25519-signed, hash-chained proof. The envelope at payload_uri is the exact signed bytes.
curl -s $API/v1/verifications/$ID/proof -H "Authorization: Bearer $KEY"Deterministic re-verification against our published public key, server-side or fully offline with the standalone verifier (tools/verify-proof).
curl -s -X POST $API/v1/verifications/$ID/reverify -H "Authorization: Bearer $KEY"
# -> { ok: true, entries_ok: true, chain_ok: true }Tell us when a verdict was right or wrong — outcome feedback feeds calibration.
curl -s -X POST $API/v1/verifications/$ID/feedback \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"outcome":"confirmed_correct"}'