Errors

In this guide, we look at what happens when a request fails. Check the status code of every response: anything outside the 2xx range is an error, and the body tells you what went wrong.

Error responses

Every error response is JSON, whatever Accept header you send, and has a human-readable message. Validation errors (422) also include an errors object with the messages for each invalid field:

422 Unprocessable Entity

{
  "message": "The latitude field must not be greater than 90. (and 1 more error)",
  "errors": {
    "latitude": ["The latitude field must not be greater than 90."],
    "longitude": ["The longitude field is required."]
  }
}

Fields inside objects use dot notation, such as attributes.rating.


Status codes

Success codes

  • Name
    200
    Description

    OK. The request succeeded.

  • Name
    201
    Description

    Created. The resource was created and is returned in the response.

  • Name
    204
    Description

    No Content. The resource was deleted. The response has no body.

Error codes

  • Name
    400
    Description

    Bad Request. The body is not valid JSON, for example because of a missing quote or a trailing comma.

  • Name
    401
    Description

    Unauthorized. The API key is missing, unknown, expired or inactive. See authentication.

  • Name
    403
    Description

    Forbidden. The API key lacks the permission this request needs, your team has no active plan, or your team reached its POI limit.

  • Name
    404
    Description

    Not Found. The endpoint does not exist, or the resource does not exist in your team.

  • Name
    405
    Description

    Method Not Allowed. The endpoint exists but does not support this HTTP method.

  • Name
    422
    Description

    Unprocessable Entity. The request has invalid parameters or body fields. See errors for details.

  • Name
    429
    Description

    Too Many Requests. Your team used its hourly quota. See rate limits.

Server errors

  • Name
    5xx
    Description

    Something went wrong on our side. These are rare; retry with backoff, and contact support if it persists.


Examples

400 Bad Request

{ "message": "The request body is not valid JSON: Syntax error." }

403 Forbidden

{ "message": "You do not have permission to create a point of interest." }

403 Forbidden (POI limit)

{ "message": "Your team has reached its limit of 1000 points of interest. Delete some or upgrade your plan." }

404 Not Found

{ "message": "The requested point of interest was not found." }

429 Too Many Requests

{ "message": "Rate limit of 1000 requests per hour exceeded. Retry in 1260 seconds." }