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:

ERROR CODE

DESCRIPTION

400

Bad Request -- Your request is invalid.

401

Unauthorized -- Your client_id, client_secret, or access_token is invalid.

403

Forbidden -- You do not have the permissions to access the requested resource.

404

Not Found -- The specified resource could not be found.

405

Method Not Allowed -- You tried to access a resource with an invalid method.

409

Conflict -- Could not be completed due to a conflict with the target resource.

500

Internal Server Error -- We had a problem with our server. Try again later.

503

Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

429

You have reached the request rate limit. Try your request again later.

423

The object is still being updated (locked). Try your request again later.