Errors and limits
Errors come as JSON with a stable code and an English message. Rate limit: 120 requests per minute per key, then 429 with retry-after.
The technical reference below is in English, exactly as the names and fields appear in the API and in Claude.
{"error": {"code": "apikey_scope_fehlt", "message": "This API key does not have the scope 'contacts:write'."}}
| BadRequest | Invalid request (bad_request, idempotency_key_invalid, ...) |
| Unauthorized | Missing or invalid API key (unauthorized) |
| Forbidden | The key lacks the required scope (forbidden, key apikey_scope_fehlt),
the account is blocked (account_blocked), or a plan limit is reached
(limit_reached).
|
| NotFound | Not found (or belongs to another account) |
| Conflict | The current state does not allow the action (e.g. webhook_limit_reached, idempotency_in_progress) |
| UnprocessableEntity | Idempotency key reused with a different request body or path (idempotency_key_mismatch) |
| RateLimited | Too many requests for this key (120 per minute), code rate_limited |
| ServiceUnavailable | The account status could not be checked (status_unavailable). The API
deliberately does NOT let the request through (fail-closed); retry in a minute.
|
| Field | Type | Required | Description |
|---|---|---|---|
error | object | yes | |
error.code | string | yes | Stable machine code, e.g. not_found, rate_limited. |
error.key | string | yes | Finer stable identifier for programmatic handling. |
error.message | string | yes | Human-readable English text. Do not branch on it. |
Questions?
Email us at support@smartchat.marketing