Kode kesalahan API SpeakNotes
Setiap kegagalan mengembalikan amplop JSON yang sama: kode yang stabil, pesan yang dapat dibaca manusia, tautan ke halaman ini, dan kolom yang bermasalah jika ada.
Bentuknya
Kesalahan tidak pernah kembali sebagai HTML. Kodenya stabil dan aman untuk dijadikan percabangan; pesannya dapat berubah kapan saja.
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"
}
}Kode
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.
Apa yang harus dicoba ulang
Coba ulang rate_limited setelah interval dalam Retry-After, dan upstream_failure sekali atau dua kali dengan backoff. Jangan pernah mencoba ulang invalid_request, insufficient_scope, atau content_policy tanpa perubahan: mereka akan gagal dengan cara yang sama setiap saat.
ID permintaan
Setiap respons membawa header X-Request-Id, dan isi kesalahan mengulanginya. Sebutkan ID ini kepada dukungan agar kegagalan yang tepat dapat ditemukan.