HTTP status codes

The status code tells you whether to fix the request or try again.

Status codes

CodeMeaningWhat to do
400 Bad RequestA parameter is missing or the body has a syntax error.Check the body against the endpoint’s Body params.
401 UnauthorizedThe API key is missing, wrong or not active yet.Check the key and the Bearer prefix.
402 Payment RequiredThe project is out of credit.Top up credit in the project administration.
403 ForbiddenThe key is valid but not allowed here, usually an IP restriction.Check the IP restriction of the key.
404 Not FoundThe URL does not exist.Check the endpoint URL.
405 Method Not AllowedWrong HTTP method. All endpoints use POST.Send the request as POST.
429 Too Many RequestsYou exceeded the rate limit.Wait and retry with backoff. Watch the rate limit headers.
500 Internal Server ErrorSomething failed on our side.Retry later. If it persists, contact support.
503 Service UnavailableThe service is temporarily down.Retry later. Check the status page.

Retry only 429 and 5xx, with growing pauses: 1 s, 2 s, 4 s and so on. Other 4xx errors fail the same way again.

The errors object

Error responsejson
{ "status": 400, "errors": [ { "group": "REQUEST", "type": "BODY", "subtype": "EMPTY", "severity": "critical", "relatedTo": [], "description": "Cannot process the request because of the empty body." } ] }
FieldMeaning
groupCategory: REQUEST, SYNTAX, VALUE, FORMAT or INTERNAL.
typeWhat kind of problem it is.
subtypeDetail of the type, can be null.
severityinfo cosmetic, warning may change the meaning, critical blocks the result.
relatedToWhich inputs the error belongs to.
descriptionText for people. Do not parse it, use group, type and subtype.

All values of group, type and subtype are in Validator errors and fixes.