Dokumentasi API Hop
Chat Completions Umum
API chat terpadu untuk beralih model teks melalui parameter model. Format permintaannya kompatibel dengan OpenAI Chat Completions.
https://api.apihop.ai/v1/chat-completionsAPI chat terpadu untuk beralih model teks melalui parameter model. Format permintaannya kompatibel dengan OpenAI Chat Completions.
Claude Sonnet 4.6 (claude-sonnet-4-6) didukung penyedia hulu tetapi saat ini tidak dipublikasikan di API Hop. Model ini bukan pilihan integrasi bawaan yang aktif. Sebelum memanggil model apa pun, pastikan akses melalui respons GET https://api.apihop.ai/v1/models Anda sendiri.
Secara bawaan, endpoint ini mengembalikan satu respons JSON lengkap. Tetapkan stream: true secara eksplisit jika memerlukan streaming SSE.
POST https://api.apihop.ai/v1/chat-completionsAutentikasi
Semua permintaan memerlukan autentikasi Bearer Token.
Authorization: Bearer YOUR_API_KEYJika autentikasi gagal, periksa:
- Apakah API Key benar
- Apakah kunci berlaku untuk URL Dasar API ini
- Apakah ejaan header permintaan benar
- Apakah proksi menulis ulang header otorisasi
Isi
modelstringwajibBawaan: gpt-5.4ID model teks yang didokumentasikan (konfirmasi akses dengan GET https://api.apihop.ai/v1/models):
- OpenAI:
gpt-5.4,gpt-5.5,gpt-5.6-sol,gpt-5.6-terra,gpt-6-astra - Anthropic:
claude-fable-5,claude-fable-5-1,claude-opus-4-6,claude-opus-4-7,claude-opus-4-8,claude-opus-5,claude-opus-5-5,claude-sonnet-5,claude-sonnet-5-5 - DeepSeek:
deepseek-v4-flash,deepseek-v4-pro,deepseek-v4.1-flash
(V4.1 Flash adalah ID model tersendiri, hanya tersedia setelah diterapkan dan diaktifkan; periksa GET https://api.apihop.ai/v1/models).
- Gemini:
gemini-3.6-flash,gemini-3.7-flash,gemini-3.8-flash,gemini-3.5-flash-lite,gemini-4-argon(setelah diterapkan dan diaktifkan) - Kimi:
kimi-k3 - MiniMax:
minimax-m3
Lihat Katalog Model untuk daftar lengkap dan model yang terlihat oleh API Key saat ini. Gunakan respons GET https://api.apihop.ai/v1/models Anda sendiri sebagai sumber ketersediaan terkini. Lihat panduan DeepSeek, Gemini, Kimi, dan MiniMax untuk catatan pemilihan dan contoh khusus tiap keluarga.
messagesobject[]wajibPesan chat. Setiap pesan harus mencakup:
role:system,user, atauassistantcontent: isi pesan
Contoh:
[
{"role": "system", "content": "You are a helpful Python tutor."},
{"role": "user", "content": "How should I learn programming?"}
]Batas sampling khusus model: gpt-6-astra tidak menerima temperature, top_p, atau top_logprobs lama; hilangkan kolom tersebut meskipun klien lama menyertakannya. Playground GPT-6 Astra API Hop juga menyembunyikan kontrol sampling dan penalti lama. claude-sonnet-5 menolak top_p dalam pemeriksaan ulang integrasi yang didokumentasikan, jadi hilangkan juga untuk model tersebut. Meneruskan kolom opsional melalui proksi tidak membuktikan bahwa model upstream yang dipilih mendukungnya.
temperaturenumberBawaan: 1.0Temperatur sampling. Klien kompatibel OpenAI biasanya menggunakan 0 hingga 2, tetapi model yang dipilih menentukan keputusan validasi akhir.
max_tokensintegerMaksimum token keluaran opsional, berupa bilangan bulat positif. Hilangkan kolom ini untuk menggunakan nilai bawaan upstream bagi model yang dipilih; nilai bawaan dan batas maksimum berbeda menurut model dan konfigurasi upstream.
Bergantung pada model, anggaran dapat mencakup token penalaran serta teks akhir. Anggaran kecil dapat menyebabkan finish_reason: "length", memotong jawaban, atau habis sebelum teks akhir. Menaikkannya dapat meningkatkan biaya.
max_completion_tokensintegerAlternatif kompatibilitas opsional untuk max_tokens, dengan pertimbangan anggaran yang sama. Model mungkin hanya menerima salah satu kolom ini, jadi mulai dengan isi minimal saat beralih model. Hilangkan keduanya untuk menggunakan nilai bawaan upstream.
streambooleanBawaan: falseApakah respons dikirim secara streaming.
true: kembalikan Server-Sent Eventsfalse: kembalikan satu respons lengkap
top_pnumberBawaan: 1.0Parameter nucleus sampling. Klien kompatibel OpenAI biasanya menggunakan 0 hingga 1; model yang dipilih melakukan validasi akhir.
frequency_penaltynumberBawaan: 0Penalti frekuensi. Klien kompatibel OpenAI biasanya menggunakan -2.0 hingga 2.0; model yang dipilih melakukan validasi akhir.
presence_penaltynumberBawaan: 0Penalti kehadiran. Klien kompatibel OpenAI biasanya menggunakan -2.0 hingga 2.0; model yang dipilih melakukan validasi akhir.
stopstring | arrayUrutan penghenti atau larik urutan penghenti. Model yang dipilih menentukan jumlah dan perilaku yang diterima.
nintegerBawaan: 1Jumlah respons yang akan dibuat. Gunakan angka seperti 1, bukan string dalam tanda kutip.
Perbedaan Parameter Model
Model teks saat ini mendukung permintaan Chat minimal dengan dan tanpa streaming, tetapi penerimaan dan efek parameter opsional berbeda menurut model yang dipilih dan implementasi kompatibilitasnya.
Pemeriksaan ulang terbaru pada 2026-09-26 menerima claude-fable-5 dengan temperature: 0 dan mengembalikan teks. Pemeriksaan ulang yang sama menolak claude-sonnet-5 dengan top_p: 0.9, dengan HTTP 400 dan top_p is deprecated. Hilangkan top_p untuk model tersebut. Penerimaan tidak membuktikan efek pada sampling maupun menjamin model lain atau permintaan berikutnya; jangan berasumsi semua parameter sampling didukung.
Pemeriksaan OpenAI pada 2026-09-26 menerima stop untuk gpt-5.6-sol dan gpt-5.6-terra. Penerimaan parameter dapat berubah mengikuti upstream dan tidak membuktikan bahwa urutan penghenti efektif.
Penerusan Chat native yang kompatibel OpenAI mempertahankan top_p dan stop dalam permintaan upstream. Rute yang mengonversi Chat ke Responses mempertahankan top_p tetapi tidak meneruskan stop. Penerusan kolom tidak membuktikan dukungan atau efeknya di upstream; tidak ada jaminan di seluruh platform untuk kedua kolom tersebut lintas rute.
Mulai dengan permintaan minimal saat beralih model, lalu verifikasi sampling, urutan penghenti, dan parameter alat lanjutan secara terpisah. Untuk urutan penghenti, periksa teks dan alasan penghentian yang sebenarnya, bukan hanya status HTTP. HTTP 200 tidak membuktikan efek sampling. Anggaran keluaran harus mencakup pemikiran model serta teks akhirnya.
Contoh Permintaan
{
"model": "gpt-5.4",
"messages": [
{
"role": "user",
"content": "Hello, introduce yourself briefly."
}
],
"stream": false
}Respons
idstringPengenal respons unik.
objectstringTipe objek, biasanya chat.completion atau chat.completion.chunk untuk streaming.
createdintegerStempel waktu pembuatan Unix.
modelstringPengenal model yang dikembalikan dalam respons.
choicesarrayPilihan yang dihasilkan, termasuk isi pesan, indeks, dan alasan penyelesaian.
usageobjectStatistik penggunaan token.
Contoh Berhasil
{
"id": "chatcmpl-9876543210",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-5.4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "I am an AI assistant that can help with writing, coding, and analysis."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 42,
"total_tokens": 70
}
}Respons Kesalahan
Lihat Kode Kesalahan dan Pemecahan Masalah untuk referensi kode lengkap, perbedaan protokol, dan langkah diagnosis.
Kesalahan HTTP Chat Completions menggunakan isi JSON datar, termasuk kesalahan HTTP upstream yang dikembalikan sebelum stream SSE dimulai. Contohnya, HTTP 402 mengembalikan:
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}code: kode kesalahan numerik platform, terpisah dari status HTTP dan bukan stringmessage: deskripsi kesalahan yang dapat dibaca manusiatype:api_errorrequestId: pengenal permintaan opsional untuk pemecahan masalah
| Status HTTP | code | Makna |
|---|---|---|
| 400 | 10000 | Permintaan tidak valid |
| 401 | 20000 | Autentikasi tidak ada atau tidak valid |
| 402 | 40000 | Kredit tidak cukup |
| 403 | 20001 | Akses ditolak atau model tidak tersedia untuk kunci ini |
| 404 | 30000 | Model atau sumber daya tidak ditemukan |
| 409 | 30001 | Konflik permintaan |
| 422 | 10001 | Kesalahan validasi |
| 429 | 40001 | Batas laju terlampaui |
| 500 | 50003 | Kesalahan internal |
| 502 | 50000 | Kesalahan penyedia upstream |
| 503 | 50001 | Layanan tidak tersedia |
| 504 | 50002 | Gateway melewati batas waktu |
Periksa status HTTP terlebih dahulu untuk menentukan apakah permintaan berhasil, lalu bandingkan code numerik untuk penanganan khusus aplikasi. Jangan membandingkan code dengan string seperti "400", menganggapnya sama dengan status HTTP, atau menguraikan message sebagai pengenal kesalahan yang stabil. messages yang tidak ada atau bertipe salah ditolak dengan HTTP 400 dan code: 10000 sebelum pemanggilan penyedia.
Format kesalahan ini berlaku untuk respons HTTP Chat Completions, bukan kesalahan dalam stream SSE yang sudah dimulai atau protokol API lainnya. Katalog Model dan endpoint protokol native memiliki format kesalahan terdokumentasi masing-masing.