Skip to content
Developers
Menu

API

Errors

The Arrota API error format, every HTTP status it returns, and which errors are safe to retry.

Updated

On this page

Error format

Errors return a JSON body with a human-readable error. Some add a machine-readable code, and validation errors add fields:

{
  "error": "Please correct the highlighted fields.",
  "fields": {
    "work_email": "A valid email address is required.",
    "issue_date": "Use a date in YYYY-MM-DD form."
  }
}

Branch on the HTTP status and code. The error text is written for people and may change. Responses do not include a request or correlation ID.

Status codes

StatusMeaningRetry?
200Success. For issuance, the credential already existed.
202Accepted: a credential was issued or a verification request created.
400The request is invalid: body, query parameter, cursor or business rule.No. Fix the request.
401The API key is missing, malformed, unknown or revoked.No. Check the key.
403The key lacks the scope, the plan lacks API access, or the action is not allowed for this organisation or record.No.
404The resource does not exist or is not yours.No.
429Rate limit reached.Yes, after Retry-After seconds.
500Something failed on Arrota's side.Yes, with backoff (see below).
503The API is temporarily unavailable.Yes, with backoff.

Error codes

codeStatusEndpoint
SELF_ATTESTATION_BLOCKED400Issue a credential
DOMAIN_NOT_ALLOWED400Issue a credential
TEMPLATE_NOT_ALLOWED400Issue a credential
TEMPLATE_TYPE_MISMATCH400Issue a credential
SEAT_CAP403Issue a credential
RECORD_NOT_ELIGIBLE403Submit a verification request
DISCLOSURE_REFUSED403Submit a verification request

Retrying safely

  • Wait for Retry-After on 429, and back off exponentially on 500 and 503.
  • Retrying a credential issuance is safe when you send the same body with an explicit issue_date. See Idempotency.
  • Do not blindly retry POST /api/v1/verifications: each accepted call creates a new request. If it returns 500 with a request_id, the request exists already.
  • Never retry 400, 401, 403 or 404 unchanged.

Using Arrota rather than building on it? The Help Center covers product workflows.