Buat response
Meminta respons model menggunakan bentuk permintaan OpenAI Responses API (input/instructions); dikonversi secara internal ke format Chat Completions dan dirutekan ke model apa pun yang didukung — ini adalah lapisan translasi, bukan jalur inferensi terpisah. Ini adalah endpoint stateless: mengirim store: true atau previous_response_id yang tidak null mengembalikan 400 (lihat entri 400 di bawah untuk bentuk error yang berbeda) — setiap panggilan harus membawa seluruh percakapan dalam input. Saat streaming, reasoning ditampilkan melalui event response.reasoning_text.delta dan item output type:"reasoning".
/api/v1/responsesOtorisasi
AuthorizationwajibAPI key sebagai bearer token di header Authorization.
Body
modelwajibModel yang digunakan, dengan prefiks penyedia, mis. "openai/gpt-5.2".
"openai/gpt-5.2"inputwajibInput percakapan — string tunggal, atau array item terstruktur (message/function_call/function_call_output). Pesan dapat menggunakan teks biasa atau array blok konten termasuk input_image.
instructionsInstruksi tingkat sistem, disisipkan sebagai pesan system pertama di depan array messages hasil konversi.
streamtrue untuk streaming respons sebagai event SSE Responses API (response.created, response.output_item.added, response.output_text.delta, response.reasoning_text.delta, response.completed, dan lainnya); dihilangkan atau false mengembalikan satu respons JSON.
max_output_tokensJumlah token maksimum yang dapat dihasilkan respons (dikonversi ke max_tokens Chat Completions upstream).
toolsDaftar definisi tool/fungsi yang dapat dipanggil model. Menerima bentuk datar sesuai spek Responses {type:"function", name, description, parameters} (direkomendasikan), serta bentuk bersarang Chat Completions {type:"function", function:{...}} (diterima untuk kompatibilitas mundur, diteruskan apa adanya). Field tools pada objek respons mencerminkan nilai yang benar-benar dikirim di sini.
tool_choiceMengontrol apakah/bagaimana model dipaksa memanggil tool, mis. {type:"function", name:"..."} (bentuk datar, direkomendasikan, dikonversi otomatis untuk upstream) atau "auto". Field tool_choice pada objek respons mencerminkan nilai yang dikirim di sini, default "auto" saat dihilangkan.
parallel_tool_callsApakah mengizinkan pemanggilan tool paralel saat tools disediakan. Default true saat dihilangkan; field parallel_tool_calls pada objek respons mencerminkan nilai yang dikirim di sini.
pluginsArray plugin (mis. {id:"web"} untuk mengaktifkan pencarian web). Hanya didukung pada beberapa rute model, tanpa efek di tempat lain; varian model :online otomatis menyisipkan {id:"web"} hanya saat Anda tidak mengirim plugins apa pun, juga hanya pada rute yang mendukung.
store⚠️ Endpoint ini stateless — mengirim true langsung mengembalikan 400, tidak pernah diterima atau diabaikan diam-diam. Menghilangkannya atau mengirim false adalah satu-satunya penggunaan yang valid.
previous_response_id⚠️ Endpoint ini stateless — mengirim nilai apa pun yang bukan null langsung mengembalikan 400, tidak pernah diterima atau diabaikan diam-diam. Untuk melanjutkan percakapan, kirim riwayat lengkap dalam array input.
modelsDaftar model fallback — dicoba berurutan, hanya digunakan setelah grup kandidat model utama habis.
reasoningObjek kontrol pemikiran model reasoning (mis. {effort, max_tokens}), diteruskan apa adanya ke upstream — tidak ada default yang disuntikkan.
reasoning_effortField singkat datar untuk reasoning.effort.
lowmediumhighthinkingAnggaran token tambahan extended thinking Claude (mis. {type:"enabled", budget_tokens:2048}), di atas max_output_tokens — diteruskan apa adanya, tidak ada default yang disuntikkan.
enable_thinkingToggle nyala/mati thinking untuk model keluarga Qwen3/GLM, diteruskan apa adanya sesuai pilihan pengguna.