API Hop

Dokumentasi

Dokumentasi API Hop

Chat Completions Umum

API chat terpadu untuk beralih model teks melalui parameter model. Format permintaannya kompatibel dengan OpenAI Chat Completions.

POSThttps://api.apihop.ai/v1/chat-completions

API 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.

text
POST https://api.apihop.ai/v1/chat-completions

Autentikasi

Semua permintaan memerlukan autentikasi Bearer Token.

http
Authorization: Bearer YOUR_API_KEY

Jika 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.4

ID 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[]wajib

Pesan chat. Setiap pesan harus mencakup:

  • role: system, user, atau assistant
  • content: isi pesan

Contoh:

json
  [
    {"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.0

Temperatur sampling. Klien kompatibel OpenAI biasanya menggunakan 0 hingga 2, tetapi model yang dipilih menentukan keputusan validasi akhir.

max_tokensinteger

Maksimum 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_tokensinteger

Alternatif 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: false

Apakah respons dikirim secara streaming.

  • true: kembalikan Server-Sent Events
  • false: kembalikan satu respons lengkap
top_pnumberBawaan: 1.0

Parameter nucleus sampling. Klien kompatibel OpenAI biasanya menggunakan 0 hingga 1; model yang dipilih melakukan validasi akhir.

frequency_penaltynumberBawaan: 0

Penalti frekuensi. Klien kompatibel OpenAI biasanya menggunakan -2.0 hingga 2.0; model yang dipilih melakukan validasi akhir.

presence_penaltynumberBawaan: 0

Penalti kehadiran. Klien kompatibel OpenAI biasanya menggunakan -2.0 hingga 2.0; model yang dipilih melakukan validasi akhir.

stopstring | array

Urutan penghenti atau larik urutan penghenti. Model yang dipilih menentukan jumlah dan perilaku yang diterima.

nintegerBawaan: 1

Jumlah 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

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Respons

idstring

Pengenal respons unik.

objectstring

Tipe objek, biasanya chat.completion atau chat.completion.chunk untuk streaming.

createdinteger

Stempel waktu pembuatan Unix.

modelstring

Pengenal model yang dikembalikan dalam respons.

choicesarray

Pilihan yang dihasilkan, termasuk isi pesan, indeks, dan alasan penyelesaian.

usageobject

Statistik penggunaan token.

Contoh Berhasil

json
{
  "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:

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code: kode kesalahan numerik platform, terpisah dari status HTTP dan bukan string
  • message: deskripsi kesalahan yang dapat dibaca manusia
  • type: api_error
  • requestId: pengenal permintaan opsional untuk pemecahan masalah
Status HTTPcodeMakna
40010000Permintaan tidak valid
40120000Autentikasi tidak ada atau tidak valid
40240000Kredit tidak cukup
40320001Akses ditolak atau model tidak tersedia untuk kunci ini
40430000Model atau sumber daya tidak ditemukan
40930001Konflik permintaan
42210001Kesalahan validasi
42940001Batas laju terlampaui
50050003Kesalahan internal
50250000Kesalahan penyedia upstream
50350001Layanan tidak tersedia
50450002Gateway 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.