Errors & status codes

The API is strict about HTTP status codes, so your agent can branch on the status alone. Every non-2xx response carries a uniform JSON error envelope.

Last updated 8 Oct 2026

Error shape

{ "error": { "code": "conflict", "message": "This candidate has already applied to this role." } }

Status codes

CodeNameWhen
200OKSuccessful read or action.
201CreatedA new resource was created (e.g. an application).
204No ContentSuccess with no body.
400Bad RequestRequest validation failed (malformed or missing fields).
401UnauthorizedMissing, invalid or revoked credential.
403ForbiddenAuthenticated, but your role can't access this resource.
404Not FoundNo such resource (or not visible to you).
409ConflictDuplicate — e.g. applying twice to the same role. Applying again inside the role's cooling period answers code `cooling_period` with `detail.applyAgainFrom`.
422UnprocessableA domain rule rejected the request (e.g. a move that needs a reason).
429Too Many RequestsRate limit (reserved).