200 / 201 | Success | The request completed; 201 on every successful POST, PATCH and DELETE. |
400 | Bad Request | Validation failed: a field is missing, has the wrong type, or an unknown field was sent (unknown fields are rejected, not ignored). See the validation shape below. Business-rule rejections, such as an invalid API-Version or an expired credential, also return 400, with a string message. |
401 | Unauthorized | Missing or invalid API key, or the request signature didn’t verify. Check both the Authorization header and the signature headers; see Authentication. |
402 | Payment Required | Your organization doesn’t have enough credits (POST /request, OTP resend). |
403 | Forbidden | The API key is valid but not allowed to perform this operation on this resource, or the operation was refused: a denied POST /credential/verify returns 403 with reason and evaluations, and OTP resend returns 403 when the request is canceled, expired, or out of resends. |
404 | Not Found | The resource doesn’t exist or doesn’t belong to your organization; the API deliberately doesn’t distinguish the two. |
409 | Conflict | The first request with this Idempotency-Key value hasn’t finished, or the value was already used for a different request. POST /request also returns it when two requests for the same contact race, and revoking a credential that is already revoked returns it too. |
429 | Too Many Requests | You hit a rate limit. Back off and retry; see Rate limits. |
5xx | Server error | Something failed on our side. Retry GETs with backoff; for other calls, see the handling guidance below. |