Reference

Errors and limits Beta

On this page

When a request fails, the API answers with an HTTP status and a JSON error body. This page lists the error codes, the rate limits and when to retry a request.

The error body

{
  "error": {
    "code": "channel_access_denied",
    "message": "You do not have access to one of the channels",
    "requestID": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
FieldDescription
codeWhat went wrong. Codes are stable, so your code can rely on them.
messageAn English description for people. It can change, so don’t parse it.
paramThe request parameter or body field at fault, when there is one. A field inside the body is named with dots, as in endpoints.1.channelID.
requestIDOur ID for the request. Quote it when you contact support.

The token endpoint uses the OAuth error body instead. See Token errors.

A path that the API doesn’t serve returns 404 with a different body. Check the method and the path.

Error codes

These codes can come from any endpoint.

StatusCodeMeaning
400invalid_requestThe request is malformed. A parameter or field is missing or has the wrong value. param names it when it can.
401invalid_tokenThe token is missing, malformed or expired. The key may be revoked or expired. The token may have been sent to a host other than api.conclude.io. Get a new token. If that fails, check the key.
403insufficient_scopeThe key doesn’t have a scope this endpoint needs. The message names the scopes that work.
403forbiddenThe person the token acts for doesn’t have the access or permission this request needs.
404not_foundThe resource doesn’t exist, or the person the token acts for can’t see it.
409conflictThe request conflicts with the current state.
410goneThe resource has been deleted, for example your organization.
429rate_limitedThe key made too many requests. See Rate limits.
500internal_errorSomething went wrong on our end. The message doesn’t say what. Quote the requestID if you contact support.
503unavailableConclude couldn’t finish the request. Try again.

These codes come from the requests on the Connections page.

StatusCodeMeaning
400channel_not_connectableThe channel can’t be connected. It is archived or deleted, or it is not a regular channel.
403subject_requiredA key that acts as Conclude tried to change a connection without a subject. Ask for a token with a subject.
403conclude_not_in_channelA key that acts as Conclude named a channel that Conclude doesn’t reach. Add Conclude to the channel first.
403channel_access_deniedThe person the token acts for can’t access the channel.
403connections_disabledChannel connections are turned off for your organization.
409already_connectedThe channel is already in a connection. A channel can be in only one.

Rate limits

  • Each key can make at least 25 requests a second, with bursts of up to 50.
  • The token endpoint accepts 60 requests a minute from one IP address.

Above the limit, Conclude answers 429 with a Retry-After header. It gives the number of seconds to wait before you try again.

Retries

Retry a request after these errors:

  • 429: wait for the seconds in Retry-After.
  • 503: try again after a short wait.
  • 500 on a GET: try again after a short wait. If it keeps failing, contact support with the requestID.

A write that failed with a network error or a 500 may still have taken effect. Check before you send it again. For example, look the channel up with GET /v1/findChannel and read connected. A repeated create answers already_connected when the first one succeeded.

Don’t retry other 4xx errors unchanged. Fix the request first.