Skip to main content
Product routes return JSON. A handled error is { "error": "..." }. A schema failure is { "error": "invalid request", "issues": [ ... ] }. An unexpected failure is { "error": "internal error" } with status 500. The ticket is not included in the error body.

Status codes

Messages you can match on include API key required, invalid API key, sign in required, pack not found, pack has no published version, evaluation not found, invalid signature, and missing permission {resource}:{action}.

Stored as review

These are successful HTTP responses. The evaluation exists. result.status is review and reviewReasons contains the kind: gateway_auth, gateway_unavailable, invalid_model_output, invalid_pack, invalid_ticket. Retry a gateway failure with the same Idempotency-Key. The key was not stored, so the call runs again. Other idempotent replays return the original evaluation.

Inbound versus judge

POST /api/judge waits for the judgment and returns 200. POST /api/webhooks/inbound returns 202 with { eventId } and judges after the response. A later failure shows up on the completion, or on the evaluation, not on the 202.