Mangools/API

Errors

HTTP status codes returned by the Mangools API and how to handle them.

Mangools API uses conventional HTTP response codes to indicate the success or failure of an API request.

  • Codes in the 2xx range indicate success.
  • Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.).
  • Codes in the 5xx range indicate an error with Mangools's servers (these are rare).
Error codeDescription
200 — OKEverything worked as expected.
400 — Bad RequestThe request was unacceptable, often due to missing a required parameter.
401 — UnauthorizedNo valid API key provided.
402 — Request FailedThe parameters were valid but the request failed.
403 — ForbiddenThe API key doesn't have permissions to perform the request.
404 — Not FoundThe requested resource doesn't exist.
409 — ConflictThe request conflicts with another request (perhaps due to using the same idempotent key).
429 — Too Many RequestsToo many requests hit the API too quickly. We recommend an exponential backoff of your requests.
500, 502, 503, 504 — Server ErrorsSomething went wrong on Mangools's end. (These are rare.)

Two kinds of 429

A 429 can come from either of two layers, and the bodies do not match.

  • Application rate limit — returned by the API itself, with the usual JSON Error body.
  • Gateway rate limit — 4 requests per second per client IP, applied by nginx before the request reaches the application. The body is nginx's own HTML error page, so it is text/html rather than JSON. A client that calls response.json() on every response will throw on it; branch on the Content-Type header, or on the status code, before parsing.

On this page