All API endpoints contain a code and message within the error responses, though some API endpoints extend the error object to contain other information. Each endpoint that does this will be documented in their appropriate section.

While we recommend that you write error messages that fit your needs and provide your users with the best experience, our message fields are designed to be neutral, not contain sensitive information, and can be safely passed down to user interfaces.

  "error": {
    "code": "bad_request",
    "message": "An english description of the error that just occurred"

Certifier API supports the following codes:

HTTP status codeCertifier codeDescription
400missing_versionThe request is missing the required Certifier-Version header. See versioning.
400invalid_versionThe Certifier-Version header's value is invalid. See versioning.
400invalid_jsonThe request body can not be decoded as JSON.
400validation_error This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
401unauthorizedA valid authentication token was not provided with the request, so the API could not associate a user with the request.
402payment_requiredThe request was valid, but the queried object or object mutation specified in the request is only available to premium organizations and workspaces.
403forbiddenThe authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
404not_foundEither the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
409conflictThe request could not be completed, potentially due to a data collision. Make sure the parameters are up to date and try again.
429rate_limitedYou have exceeded one of the enforced rate limits in the API. See the documentation on rate limiting for more information.
500, 502, 503, 504internal_server_errorThere was a problem on Certifier's end.


New codes and message property

In the future, Certifier may add some new codes. We advise you to rely on the Certifier's code property rather than on HTTP status only to distinguish between errors. Also, we recommend you not to write code that relies on the message property heavily since it could change in the future.