Responses API
POST /v1/responses dipakai Codex CLI dan SDK Responses OpenAI. Permintaan dan balasan diteruskan apa adanya ke penyedia, secara stateless.
Permintaan
{
"model": "MODEL_ID",
"input": [{"role": "user", "content": "..."}],
"max_output_tokens": 500,
"store": false
}
| Field | Wajib | Keterangan |
|---|---|---|
model | ya | ID dari GET /v1/models. |
input | ya | Teks, atau larik item masukan (1 sampai 5.000 item). |
max_output_tokens | tidak | Batas token keluaran. Bila kosong dipakai batas model. Di atas batas model ditolak 400 invalid_request. |
stream | tidak | true untuk SSE Responses (response.created, response.output_text.delta, response.completed, dan lainnya). |
store | tidak | Bila tidak diisi, dipaksa false (tanpa penyimpanan di penyedia). |
| lainnya | tidak | Diteruskan apa adanya. Dukungannya bergantung model. |
Contoh
curl https://api.markas.ai.id/v1/responses \
-H "Authorization: Bearer $MARKASAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"input": "Apa itu API?",
"max_output_tokens": 300
}'
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.markas.ai.id/v1", api_key=os.environ["MARKASAI_API_KEY"])
resp = client.responses.create(model="MODEL_ID", input="Apa itu API?", max_output_tokens=300)
print(resp.output_text)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.markas.ai.id/v1", apiKey: process.env.MARKASAI_API_KEY });
const resp = await client.responses.create({ model: "MODEL_ID", input: "Apa itu API?", max_output_tokens: 300 });
console.log(resp.output_text);
Penagihan
- Tagihan memakai
usageResponses (input_tokens,output_tokens,input_tokens_details.cached_tokens) dari respons biasa atau eventresponse.completedsaat streaming. - Bila penyedia tidak melaporkan
usage, tagihan memakai perkiraan konservatif dan ditandai estimasi di dashboard.
Batasan
Karena stateless, GET /v1/responses/{id}, POST /v1/responses/{id}/cancel, dan previous_response_id tidak tersedia. Kirim ulang riwayat percakapan di input.