Error & batas laju

Bentuk error

Setiap respons non-2xx berupa JSON dengan bentuk:

{
  "error": {
    "code": "insufficient_scope",
    "message": "This endpoint requires the `generation:run` scope.",
    "required_scope": "generation:run",
    "granted_scopes": ["books:read"]
  }
}

Kode umum

HTTPerror.codeArti
400invalid_requestBody atau query gagal validasi skema.
400invalid_stateBuku/bab ada tetapi tidak dalam keadaan yang mendukung tindakan tersebut (mis. menerbitkan buku dengan bab kosong).
400unreadableFile tidak bisa diurai atau tidak punya teks yang bisa dipakai (mis. PDF hasil pindai).
401unauthenticatedHeader Authorization tidak ada atau formatnya salah.
401invalid_tokenToken tidak dikenal, kedaluwarsa, atau sudah dicabut.
403insufficient_scopeToken valid tetapi tidak memiliki cakupan yang dibutuhkan endpoint — buat kunci baru dengan cakupan yang tercantum.
404not_foundBuku atau bab tidak ada (atau bukan milik Anda).
413payload_too_largeFile atau isi permintaan terlalu besar. Untuk naskah, batas ini juga berlaku pada teks hasil ekstraksi, yang bisa melampauinya pada file EPUB atau Word terkompresi.
502generation_failed, narration_failedPenyedia hilir (Anthropic, ElevenLabs) gagal. Aman untuk dicoba ulang.
503feature_disabledInstans Anthra belum mengonfigurasi kunci hulu yang dibutuhkan (mis. ELEVENLABS_API_KEY untuk narasi).

Batas laju

Anthra menerapkan kuota per akun untuk operasi yang mahal (pembuatan bab, narasi). Saat mencapai batas, Anda akan menerima HTTP 429 dengan retry-after berisi jumlah detik untuk menunggu. Body 429 memakai bentuk error yang sama.

Tugas pembuatan juga dibatasi oleh maxDuration = 300s di Vercel Functions — penulisan bab yang memang butuh waktu lebih lama harus dikirim ulang (konten parsial sudah tersimpan sebelum batas waktu).

Idempotensi

Endpoint yang mengubah data saat ini tidak idempoten. Gunakan kunci unik per permintaan (mis. POST /v1/books selalu membuat buku baru). Jika Anda butuh semantik paling-banyak-sekali, lakukan deduplikasi di sisi klien sebelum mencoba ulang.