Panduan Akses Claude API: Antarmuka Asli Anthropic dan Konfigurasi Kunci

Memanggil model Anthropic Claude melalui gateway Jizhi API: Alamat antarmuka, metode autentikasi, contoh curl, field permintaan/respons, output streaming SSE, dan kode kesalahan umum.

I. Gambaran Umum

Jizhi API menyediakan akses relay yang kompatibel dengan Anthropic Messages API (/v1/messages) bagi pengembang. Anda hanya perlu mengirimkan permintaan ke gateway situs kami dan mengganti Key autentikasi dengan kunci sk- yang dibuat di "Pusat Pengguna - Kunci API", maka Anda dapat langsung menggunakan model seri Claude tanpa perlu mengubah kode yang sudah ada.

Model yang tersedia saat ini mengacu pada Model Plaza (seperti claude-sonnet-5, claude-opus-5, claude-sonnet-4-6, claude-opus-4-8, dll.). Daftar lengkap dan harga satuan dapat diperiksa kapan saja melalui GET /v1/models.

II. Alamat Antarmuka

MetodePathKeterangan
POST/v1/messagesGerbang relay, body permintaan adalah payload Anthropic /v1/messages
GET/v1/modelsDaftar model dan harga satuan (tidak perlu autentikasi)

Alamat Gateway: https://www.relay-api.com. Isi path permintaan sesuai dengan tabel di atas.

III. Metode Autentikasi

Buat kunci di "Pusat Pengguna → Kunci API" dengan format sk-xxxxxxxx. Sertakan kunci saat melakukan panggilan menggunakan salah satu cara berikut:

  • Header Authorization: Authorization: Bearer sk-kunci-anda (Direkomendasikan, kompatibel dengan sebagian besar SDK)
  • Header x-api-key: x-api-key: sk-kunci-anda

Jika kunci tidak valid, dinonaktifkan, atau saldo tidak mencukupi, sistem akan mengembalikan status 401/403. Silakan periksa status kunci dan saldo akun Anda terlebih dahulu.

IV. Memulai Cepat (curl)

4.1 Percakapan Non-streaming

curl -X POST https://www.relay-api.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-kunci-anda" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Perkenalkan dirimu dalam satu kalimat"}
    ]
  }'

4.2 Menggunakan system prompt dan percakapan multi-putaran

curl -X POST https://www.relay-api.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: sk-kunci-anda" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 2048,
    "system": "Anda adalah insinyur dokumentasi teknis yang teliti.",
    "messages": [
      {"role": "user", "content": "Apa header autentikasi untuk Claude Messages API?"},
      {"role": "assistant", "content": "Gunakan x-api-key atau Authorization: Bearer untuk menyertakan kunci."},
      {"role": "user", "content": "Berikan contoh lain untuk permintaan streaming."}
    ],
    "metadata": {"request_id": "demo-001"}
  }'

metadata.request_id akan dicatat dalam log penggunaan untuk memudahkan rekonsiliasi di "Pusat Pengguna → Detail Penggunaan".

V. Parameter Permintaan

FieldTipeWajibKeterangan
modelstringYaSlug model, misal claude-sonnet-5
max_tokensintYaJumlah token output maksimum, disarankan 1~64000
messagesarrayYaPesan percakapan, elemen berupa {role, content}, role: user / assistant
systemstringTidakSystem prompt
temperaturenumberTidakTemperatur sampling, default 1.0, rentang 0~1
top_pnumberTidakCore sampling, default 0.999
streamboolTidakApakah menggunakan streaming, default false
stop_sequencesarrayTidakUrutan berhenti (stop sequences)
metadata.request_idstringTidakID permintaan kustom untuk rekonsiliasi

VI. Struktur Respons

Permintaan non-streaming mengembalikan struktur Anthropic Messages standar:

{
  "id": "msg_01ABCDEFG",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-5",
  "content": [
    {"type": "text", "text": "Halo! Saya Claude."}
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 12,
    "output_tokens": 18,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  }
}
FieldKeterangan
idID unik pesan
content[].typeTipe blok konten, text / thinking dll.
content[].textIsi teks
stop_reasonAlasan berhenti: end_turn / max_tokens / stop_sequence
usage.input_tokensJumlah token input (dasar penagihan)
usage.output_tokensJumlah token output (dasar penagihan)
usage.cache_read_input_tokensJumlah token input yang hit cache (ditagih sesuai harga baca cache)
usage.cache_creation_input_tokensJumlah token yang ditulis ke cache (ditagih sesuai harga tulis cache)

VII. Output Streaming

Jika body permintaan menambahkan "stream": true, server akan mengembalikan data per blok melalui SSE (Server-Sent Events). Tipe event sama dengan Anthropic:

event: message_start
data: {"type": "message_start", "message": {"id": "msg_...", "model": "claude-sonnet-5"}}

event: content_block_delta
data: {"type": "content_block_delta", "delta": {"type": "text_delta", "text": "Halo"}}

event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn"}, "usage": {"output_tokens": 18}}

event: message_stop
data: {"type": "message_stop"}

Klien perlu mengurai JSON berdasarkan baris data:, mengabaikan baris event: dan baris kosong; menerima message_stop berarti aliran berakhir. Penagihan dilakukan di sisi server berdasarkan penggunaan total permintaan, terlepas dari streaming atau tidak.

VIII. Kode Kesalahan Umum

Kode Status HTTPMaknaSaran Penanganan
400Parameter permintaan tidak valid (kurang model/max_tokens, model tidak aktif, dll.)Koreksi body permintaan sesuai pesan respons
401Tidak membawa atau membawa kunci API yang tidak validPeriksa header Authorization / x-api-key
403Kunci dinonaktifkan, saldo habis, atau kunci tidak diizinkan untuk model/rute iniIsi ulang, periksa status kunci atau sesuaikan otorisasi kunci
404Model yang diminta tidak adaPeriksa model yang tersedia melalui GET /v1/models
429Permintaan terlalu sering atau terpicu pembatasan rate limitLakukan retry (dengan exponential backoff)
500Kesalahan internal serverCoba lagi nanti; jika terus gagal, hubungi layanan pelanggan

Body respons kesalahan distandarisasi sebagai {"code": kode_status, "message": "deskripsi_kesalahan", "data": null}.

IX. Penggunaan dan Saldo

  • Setiap panggilan akan dipotong biayanya secara real-time berdasarkan penggunaan token × harga satuan model × multiplier rute. Harga dan rute dapat dilihat di GET /v1/models.
  • Setelah login, Anda dapat melihat catatan panggilan (model, token, biaya, status) di "Pusat Pengguna → Penggunaan API".
  • Jika saldo tidak mencukupi, panggilan akan mengembalikan status 403, dan akan pulih segera setelah pengisian ulang.

Penjelasan Base URL: Situs ini menerima /v1beta/models/... dan /v1beta/v1beta/models/... (serta /v1/... dan /v1/v1/...), sehingga apakah klien menambahkan /v1 atau /v1beta sendiri tidak mempengaruhi panggilan: Base URL dapat diisi dengan root domain atau alamat dengan /v1beta. ID Model silakan disalin dari "ID Model" di sudut kanan atas halaman "Token" di konsol.