Buat chat
BazaarLink mengembalikan respons terstandar dan menghapus field khusus upstream. usage.cost adalah jumlah USD yang ditagihkan kepada pelanggan untuk permintaan ini. Gunakan ID permintaan BazaarLink yang buram dari id respons atau header x-request-id pada GET /v1/generation; respons non-streaming juga menyertakan ID itu di x-generation-id. Statistik dapat muncul beberapa detik setelah selesai; coba lagi sebentar jika mendapat 404. Permintaan Chat, Messages, dan Responses non-streaming yang lama (sekitar 12 detik atau lebih) dapat diawali padding keep-alive berupa whitespace sebelum body JSON. Parser JSON standar menerima whitespace awal. Audio chat memakai endpoint ini; minta keluaran audio dengan modalities:["text","audio"] dan audio:{voice,format}. GET /v1/models?output_modalities=audio hanya menyaring model dengan keluaran audio, bukan semua model dengan masukan audio; model yang menerima audio dan menghasilkan teks tetap ada di daftar text. Penanda kemampuan saja tidak menjamin adanya rute yang tersedia; pilih model yang terdaftar beserta parameter yang didukungnya. Keluaran audio murni, TTS, STT, dan mode generasi non-token lainnya berada di luar kontrak ini.
/v1/chat/completionsOtorisasi
AuthorizationwajibAPI key sebagai bearer token di header Authorization.
Body
modelwajibModel yang digunakan, dengan prefiks penyedia, mis. "openai/gpt-4o". GET /v1/models mencantumkan id seperti "claude-sonnet-4.6" dan alias kanonis seperti "anthropic/claude-sonnet-4.6". Permintaan menerima keduanya; gunakan id atau alias yang tercantum.
"openai/gpt-4o"messageswajibArray pesan percakapan, minimal satu. Setiap pesan memiliki role (system/user/assistant/tool) dan content.
contentMasukkan input audio di messages[].content[]: {"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}. Gunakan base64 mentah untuk data, bukan data URI; format yang didukung bergantung pada model. Jangan memakai input_audio di tingkat atas: tidak ada validasi khusus maupun kontrak reservasi kredit untuknya.
[{"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}]modelsDaftar model fallback — dicoba berurutan, hanya digunakan setelah grup kandidat model utama habis.
streamtrue untuk streaming respons sebagai SSE; dihilangkan atau false mengembalikan satu respons JSON. Stream audio mengembalikan potongan data (audio base64) dan transcript di choices[].delta.audio; respons non-streaming memakai choices[].message.audio. Model juga dapat menyertakan id dan expires_at. Kumpulkan potongan lalu dekode sesuai audio.format; format streaming bergantung pada model.
temperatureSuhu sampling — semakin tinggi semakin acak, semakin rendah semakin deterministik. Nilai sampling diteruskan tanpa validasi rentang; model dapat membatasi atau mengabaikan nilai di luar rentang yang didukung.
max_tokensJumlah token maksimum yang dapat dihasilkan respons.
max_completion_tokensAlias dari max_tokens dengan semantik identik.
top_pAmbang batas nucleus sampling.
top_kMembatasi sampling pada K token dengan probabilitas tertinggi.
frequency_penaltyMemberi penalti pada token berdasarkan seberapa sering sudah muncul.
presence_penaltyMemberi penalti pada token berdasarkan apakah sudah pernah muncul, tanpa memandang jumlahnya.
repetition_penaltyKoefisien penalti pengulangan — mekanisme terpisah dari frequency/presence penalty.
min_pAmbang probabilitas minimum relatif terhadap token paling mungkin.
top_aMekanisme sampling cutoff dinamis lainnya, menskalakan ambang dengan kuadrat probabilitas tertinggi.
seedSeed sampling deterministik; tidak semua penyedia menjamin reproduktifitas.
nJumlah respons yang dihasilkan.
stopUrutan yang menghentikan generasi, maksimal 4.
toolsDaftar definisi tool/fungsi yang dapat dipanggil model.
tool_choiceMengontrol apakah/bagaimana model dipaksa memanggil tool.
parallel_tool_callsApakah mengizinkan pemanggilan tool paralel saat tools disediakan. Default true. Hanya model keluarga OpenAI — dihapus secara diam-diam saat model target bukan milik OpenAI, bukan error.
response_formatMembatasi format output, mis. {type:"json_object"} atau {type:"json_schema"} dengan JSON Schema.
logit_biasMemetakan ID token ke nilai bias [-100, 100] yang ditambahkan sebelum sampling. Hanya model keluarga OpenAI — dihapus secara diam-diam saat model target bukan milik OpenAI, bukan error.
logprobsMengembalikan probabilitas log dari setiap token output. Hanya model keluarga OpenAI — dihapus secara diam-diam saat model target bukan milik OpenAI, bukan error.
top_logprobsJumlah token paling mungkin yang dikembalikan per posisi (memerlukan logprobs: true). Hanya model keluarga OpenAI — dihapus secara diam-diam saat model target bukan milik OpenAI, bukan error.
userPengidentifikasi pengguna akhir untuk pemantauan dan deteksi penyalahgunaan. Tidak berpengaruh pada tagihan. Hanya model keluarga OpenAI — dihapus secara diam-diam saat model target bukan milik OpenAI, bukan error.
reasoningObjek kontrol pemikiran model reasoning (mis. {effort, max_tokens}).
reasoning_effortField singkat datar untuk reasoning.effort.
lowmediumhighinclude_reasoningtrue mengembalikan isi pemikiran di message.reasoning (delta.reasoning saat streaming); false mematikan pemikiran untuk model yang berpikir secara default (lihat bagian reasoning), sehingga tidak ada pemikiran yang ditagih. Tanpa reasoning_effort, reasoning, atau thinking, hanya model-model itu yang berpikir dan mengembalikannya secara default; model lain hanya jika diminta.
image_configOpsi generasi/edit gambar (digunakan saat modalities menyertakan image).
modalitiesModalitas output yang diminta. Menyertakan image mengarahkan melalui jalur dispatch pembuatan gambar. Audio chat memakai ["text","audio"] dengan objek audio dan memerlukan model yang mendukung keluaran teks dan audio.
textimageaudio["text","audio"]audioOpsi keluaran audio, dipakai bersama modalities:["text","audio"]. Nilai voice dan format yang didukung bergantung pada model.
{"voice":"alloy","format":"wav"}voiceSuara yang didukung model, misalnya alloy.
"alloy"formatFormat keluaran yang didukung model, misalnya wav; streaming biasanya memakai pcm16, sesuai dukungan model.
"wav"pluginsArray plugin (mis. {id:"web"} untuk mengaktifkan pencarian web). Hanya didukung pada beberapa rute model, tidak berpengaruh di tempat lain; :online mengaktifkan pencarian web pada rute yang mendukung. Pencarian melalui plugins, :online, atau web_search_options dapat menimbulkan biaya tambahan upstream pada kunci yang digunakan: kunci platform BazaarLink atau kunci BYOK Anda.