Responses and Errors

We use standard HTTP status codes to indicate the success or failure of a request to our API.

Successful requests to our API will have a 200 HTTP status code; the “status” and “content” key-value pairs will detail the status message and the content of the response.

{ "status": "success", "content": "... API response goes here ..." }

Unsuccessful requests to our API will have a non-200 HTTP status code and will contain "code", "message" and "status" fields. The "message" field will contain any further information about the unsuccessful request.

{ "code": 500, "message": "Internal Server Error", "status": "failure" }

Note that the message may have more details about the error.

{ "code": 400, "message": {"error_code":"invalid_input","message":["'offset' is a required property"]}}

One notable code is the 423 exception which typically occurs when you attempt to modify an object or run a verification workflow on an object that is busy. A 423 HTTP status code means you should try your API call again in a few seconds. To avoid this code, you should:

  • Always run workflows inside an object creation call
  • Not run back-to-back create <-> update calls on the same object

Error Codes:

400Bad Request -- Your request is invalid.
401Unauthorized -- Your client_id, client_secret, or access_token is invalid.
403Forbidden -- You do not have the permissions to access the requested resource.
404Not Found -- The specified resource could not be found.
405Method Not Allowed -- You tried to access a resource with an invalid method.
409Conflict -- Could not be completed due to a conflict with the target resource.
500Internal Server Error -- We had a problem with our server. Try again later.
503Service Unavailable -- We're temporarily offline for maintenance. Please try again later.
429You have reached the request rate limit. Try your request again later.
423The object is still being updated (locked). Try your request again later.