К содержанию
sapportlydocs
Панель

Ошибки

Один JSON-формат на все 4xx/5xx публичного API. Старое поле error сохранено.

Формат

4xxJSON
{
  "error": "channel is required",
  "type": "invalid_request_error",
  "code": "validation_error",
  "message": "channel is required",
  "request_id": "0f2c9a…",
  "docs_url": "https://docs.sapportly.pro/docs/api/errors#validation_error"
}

error = message для старых клиентов. Новые клиенты читают message. request_id дублируется в заголовке X-Request-Id.

Коды

codeHTTPtypeКогда
unauthorized401authentication_errorНет ключа, ключ отозван или неверный.
forbidden403permission_errorКлюч есть, но не хватает scope.
not_found404invalid_request_errorНет диалога, контакта, вложения.
validation_error400invalid_request_errorТело или query не прошли проверку.
rate_limited429rate_limit_errorСкользящее окно. Смотрите Retry-After.
plan_limit_exceeded402invalid_request_errorКвота тарифа. Поля resource, used, limit.
encryption_error400invalid_request_errorНе удалось обработать шифрованный payload.
internal_error5xxapi_errorСбой платформы. Можно ретраить.

Лимиты

На успешном ответе: X-RateLimit-Limit, X-RateLimit-Remaining. На 429 ещё Retry-After (секунды). SDK ретраит 429/5xx с jitter и уважает Retry-After.

GET/v1/status

Страница полезна?

/docs/api/errors