Kesalahan HTTP

API kami mengikuti format kode kesalahan HTTP yang dapat diprediksi:

  • 400 - invalid_request_error: Ada masalah dengan format atau konten permintaan Anda. Kami juga dapat menggunakan jenis kesalahan ini untuk kode status 4XX lainnya yang tidak tercantum di bawah ini.

  • 401 - authentication_error: Ada masalah dengan kunci API Anda.

  • 403 - permission_error: Kunci API Anda tidak memiliki izin untuk menggunakan sumber daya yang ditentukan.

  • 404 - not_found_error: Sumber daya yang diminta tidak ditemukan.

  • 413 - request_too_large: Permintaan melebihi jumlah byte maksimum yang diizinkan.

  • 429 - rate_limit_error: Akun Anda telah mencapai batas laju.

  • 500 - api_error: Terjadi kesalahan tak terduga di dalam sistem Anthropic.

  • 529 - overloaded_error: API Anthropic sementara kelebihan beban.

    Kesalahan 529 dapat terjadi ketika API Anthropic mengalami lalu lintas tinggi di semua pengguna. Dalam kasus yang jarang terjadi, jika organisasi Anda mengalami peningkatan tajam dalam penggunaan, Anda mungkin melihat jenis kesalahan ini. Untuk menghindari kesalahan 529, tingkatkan lalu lintas Anda secara bertahap dan pertahankan pola penggunaan yang konsisten.

Ketika menerima respons streaming melalui SSE, ada kemungkinan kesalahan dapat terjadi setelah mengembalikan respons 200, dalam hal ini penanganan kesalahan tidak akan mengikuti mekanisme standar ini.

Bentuk kesalahan

Kesalahan selalu dikembalikan sebagai JSON, dengan objek error tingkat atas yang selalu menyertakan nilai type dan message. Misalnya:

JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  }
}

Sesuai dengan kebijakan versioning kami, kami dapat memperluas nilai dalam objek ini, dan ada kemungkinan nilai type akan bertambah seiring waktu.

ID permintaan

Setiap respons API menyertakan header request-id yang unik. Header ini berisi nilai seperti req_018EeWyXxfu5pfWkrYcMdjWG. Ketika menghubungi dukungan tentang permintaan tertentu, harap sertakan ID ini untuk membantu kami menyelesaikan masalah Anda dengan cepat.

SDK resmi kami menyediakan nilai ini sebagai properti pada objek respons tingkat atas, yang berisi nilai header request-id:

import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-4-20250514",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude"}
    ]
)
print(f"Request ID: {message._request_id}")

Permintaan panjang

Kami sangat mendorong penggunaan streaming Messages API atau Message Batches API untuk permintaan yang berjalan lama, terutama yang lebih dari 10 menit.

Kami tidak merekomendasikan pengaturan nilai max_tokens yang besar tanpa menggunakan streaming Messages API atau Message Batches API kami:

  • Beberapa jaringan mungkin memutuskan koneksi yang menganggur setelah periode waktu yang bervariasi, yang dapat menyebabkan permintaan gagal atau timeout tanpa menerima respons dari Anthropic.
  • Jaringan berbeda dalam keandalan; Message Batches API kami dapat membantu Anda mengelola risiko masalah jaringan dengan memungkinkan Anda melakukan polling untuk hasil daripada memerlukan koneksi jaringan yang tidak terputus.

Jika Anda membangun integrasi API langsung, Anda harus menyadari bahwa pengaturan TCP socket keep-alive dapat mengurangi dampak timeout koneksi menganggur pada beberapa jaringan.

SDK kami akan memvalidasi bahwa permintaan Messages API non-streaming Anda tidak diharapkan melebihi timeout 10 menit dan juga akan mengatur opsi socket untuk TCP keep-alive.