API reference: Responses and errors

Responses and errors. One shape for every response.

Check ok first. A success has data; a failure has error with a stable code your code can switch on.

200success
{ "ok": true,
  "data": { … },
  "meta": { "requestId": "req_7c1…" } }
403error
{ "ok": false,
  "error": { "code": "insufficient_scope", … },
  "meta": { "requestId": "req_9a4…" } }

Success

{
  "ok": true,
  "data": { … },
  "meta": { "requestId": "req_7c1e4b2a9f0d4e6c8b3a5d7f9e1c2b4a" }
}
  • data holds the result. Each endpoint page lists its fields.
  • Lists also have meta.pagination (see Pagination).
  • Every response has meta.requestId, also sent as the X-Request-Id header. Include it when you contact us about a request.
  • New fields may be added to any object. Your code should ignore fields it does not know; existing fields are never renamed or removed in v1.

Errors

{
  "ok": false,
  "error": {
    "code": "insufficient_scope",
    "message": "This token does not have the \"leads:read\" scope.",
    "details": { "requiredScope": "leads:read" }
  },
  "meta": { "requestId": "req_7c1e4b2a9f0d4e6c8b3a5d7f9e1c2b4a" }
}

code is stable: use it in your code. message is for people and may change. details is only there when there is more to say, for example which field was wrong.

Error codes

StatusCodeMeaning
400validation_errorA field is missing or not valid. details names it.
400invalid_bodyThe body is not JSON, or Content-Type: application/json is missing.
401unauthorizedNo token, or it is unknown, revoked or expired, or its creator left the account.
403insufficient_scopeThe token lacks the scope in details.requiredScope.
403plan_requiredThe API needs the Growth plan or above.
403subscription_inactiveThe subscription is not active.
403claimed_by_otherAnother person on your team is handling this handover.
404not_foundNo such item, or the token may not see it (another account, or a chatbot the token is not limited to).
405method_not_allowedThis path does not support that HTTP method.
409already_handover, not_handover, already_resolved, not_resolvedThe conversation is not in a state that allows this action.
409not_ready, refresh_runningThe knowledge source is still being processed.
409idempotency_in_progress, idempotency_key_reusedSee Retries and idempotency.
413payload_too_largeThe request body is over the limit.
429rate_limitedToo many requests. Wait for the seconds in the Retry-After header.
500internal_errorSomething failed on our side. Retry later; send us the requestId if it persists.
503lock_failedA short conflict while claiming a handover. Retry the request.

The errors listed on each endpoint page are the ones specific to it. Any endpoint can also return 401, 403 (insufficient_scope, plan_required, subscription_inactive), 413, 429 and 500.

Try SimplyBoost with your own content

Start a 7-day free trial with 100 AI replies. Add your website, install the widget and see how the agent answers your customers.

See pricing
  • No credit card required
  • 7 days, 100 AI replies
  • From €39 a month
  • Hosted in Europe