Our API returns standard HTTP status codes.

Successful requests

We use Hypertext Application Language (HAL) (application/hal+json) for successful responses (2xx).

HAL is a standard that establishes conventions for expressing hypermedia controls, specifically through the use of _links and _embedded properties. Use these links to request more information about and construct an API flow that is relative to a specific request.

Status codeDescription
200 OKThe request succeeded.
201 CreatedA POST method successfully created a resource. If the resource was already created by a previous execution of the same method, for example, the server returns the HTTP 200 OK status code.
202 AcceptedThe server accepted the request and will execute it later.
204 No ContentThe server successfully executed the method but returns no response body.

Failed requests

We follow the Problem Details (application/problem+json) for error responses. This is a standard format for HTTP status codes 4xx and 5xx. By definition, all responses contain a title and detail properties. Some requests may have additional properties.

PropertyTypeDescription
titlestringHuman-readable summary of the problem type. It doesn't change from occurrence to occurrence of the problem.
detailstringHuman-readable explanation specific to this occurrence of the problem.

Notes:

  • If needed, the Problem Detail may include additional fields, refer to RFC7807 for details.
  • title and detail fields should not be parsed to determine the nature of the error.

4xx status codes

Status codeDescription
400 Bad RequestThe request is not well-formed, syntactically incorrect, or violates schema.
404 Not FoundThe specified resource does not exist.
405 Method Not AllowedThe server does not implement the requested HTTP method.
409 ConflictThe request cannot be processed as it conflicts with another request.
413 Content Too LargeThe request entity is larger than the limits defined by the server.
429 Too Many RequestsThe rate limit for the user, application, or token exceeds a predefined value.

Validation errors

A Problem Detail response may include additional error details about the problems that have occurred. These can be found under the errors collection and follow the Problem Details structure.

{
    "title": "Bad Request",
    "detail": "Request failed validation",
    "errors": [
        {
            "title": "invalid_type",
            "detail": "`body.name` is `undefined`, but `string` is expected."
        }
    ]
}

5xx status codes

Status codeDescription
500 Internal Server ErrorAn internal server error has occurred.
501 Not ImplementedThe server does not support the functionality required to fulfill the request.
503 Service UnavailableService Unavailable.

Authorization errors

We follow industry-standard OAuth 2.0 authorization protocol and return the HTTP 401, and 403 status code for authorization errors.

Status codeDescription
401 UnauthorizedThe client request has not been completed because it lacks valid authentication credentials for the requested resource. This may happen when credentials are incorrect or invalid (e.g. expired).
403 ForbiddenThe server understands the request but refuses to authorize it. Occurs when the credentials are valid but don't have required permissions.