GuardianCheckin Public API

Error codes

Every error response uses the same envelope: { "code": …, "message": …, "correlationId": … }. Branch on the stable code, never on message. This table is generated from the OpenAPI contract's error-code enum, so it can never omit or invent a code.

CodeHTTP statusWhat to do
UNAUTHENTICATED401Send Authorization: Bearer gck_live_<prefix>.<secret>; check the key isn't revoked or expired (rotate it on the API Keys page).
FORBIDDEN403The key is read-only; mint or rotate a read-write key for writes.
RESOURCE_NOT_FOUND404The id is outside your key's scope or doesn't exist; confirm you own or manage the listing with writer access.
INVALID_CURSOR400Pass the nextCursor value verbatim; don't construct or mutate cursors.
VALIDATION_ERROR400Fix the fields listed in errors[]; check types and required fields against the reference.
PAYLOAD_TOO_LARGE413Reduce the request body size or field count below the documented caps.
RATE_LIMITED429Back off and retry after the Retry-After header's seconds; reduce request rate per key.
IDEMPOTENCY_KEY_REUSED422The Idempotency-Key you sent was already used for a request with a different body. Use a fresh key for a new request, or resend the byte-identical body to replay the original result.