Коды ошибок API SpeakNotes
Каждая ошибка возвращает одинаковый JSON-конверт: стабильный код, понятное человеку сообщение, ссылку на эту страницу и поля, в которых возникла ошибка, если таковые имеются.
Формат
Ошибки никогда не возвращаются в формате HTML. Код стабилен и его можно использовать для логики ветвления; сообщение может измениться в любое время.
HTTP/1.1 402 Payment Required
X-Request-Id: 0f0a3f2c-6f1e-4a5e-9f1b-9d0b5a2c7e11
{
"error": {
"type": "billing_error",
"code": "insufficient_credits",
"message": "This operation costs 14 credits and the account has 3 left.",
"doc_url": "https://speaknotes.io/developers/errors#insufficient_credits",
"request_id": "0f0a3f2c-6f1e-4a5e-9f1b-9d0b5a2c7e11"
}
}Коды
invalid_request400The request was malformed or failed validation.
invalid_token401The credential is missing, malformed, expired, or revoked.
insufficient_scope403The credential is valid but lacks the scope this operation needs.
not_found404The requested resource does not exist.
method_not_allowed405That HTTP method is not supported on this path.
conflict409The request conflicts with the current state of the resource.
payload_too_large413The uploaded file exceeds the size limit.
unsupported_media_type415The file format is not supported.
insufficient_credits402The account has no credits left for this operation.
rate_limited429Too many requests. Retry after the interval in the Retry-After header.
upstream_failure502A provider SpeakNotes depends on failed.
content_policy422The content was refused by the AI content policy.
internal_error500SpeakNotes failed to process the request.
Что стоит повторять
Повторяйте запросы с ошибкой rate_limited после интервала, указанного в Retry-After, а ошибки upstream_failure повторяйте один или два раза с использованием экспоненциальной задержки. Никогда не повторяйте ошибки invalid_request, insufficient_scope или content_policy: они будут выдавать тот же результат каждый раз.
ID запросов
Каждый ответ содержит заголовок X-Request-Id, который также повторяется в теле ошибки. Укажите его при обращении в поддержку, чтобы можно было найти точную причину сбоя.