Create Response
Generate a model reply in the OpenAI Responses format.
Models: sarvam-105b, glm5.3, gemma4, and deepseekv4-flash (ids are case-sensitive).
Each call is independent. Send the full conversation in input every time — nothing is stored for you. Leave out store or set it to false (true returns 400). You cannot load a past response by id (GET /v2/responses/{id} is always 404).
Streaming is optional. Default is a single JSON body (stream omitted or false). Set stream: true only if you want server-sent events.
Reasoning (glm5.3, deepseekv4-flash): both support low, high, and max. On glm5.3, reasoning.effort only accepts low or high — omit reasoning / effort for max-level reasoning, since sending the literal string "max" returns 400. On deepseekv4-flash, all three values including max work directly. On glm5.3, read the trace from the reasoning item’s summary[0].text. Reasoning tokens count toward max_output_tokens, which has no default cap — omitting it means unbounded generation.
Other fields are documented below. See the Responses API guide.
Authentication
Bearer authentication of the form Bearer <token>, where token is your auth token.
Request
Model IDs accepted by POST /v2/responses (case-sensitive; unknown ids return 404):
sarvam-105b— Sarvam flagship model.glm5.3— 1,048,576-token context; reasoning inoutputas areasoningitem; flat function tools; max request size 10,485,760 bytes.gemma4— vision (inline base64 images) and tools.deepseekv4-flash— long context, tools, and reasoning.
Optional. Default false — same as chat completions. Omit or false for one JSON response body. Set true to stream named server-sent events. There is no [DONE] sentinel — the stream ends on response.completed, response.incomplete, or response.failed.
Maximum output tokens to generate, including reasoning tokens on reasoning models. If omitted, there is no default cap — generation is unbounded and continues until the model stops on its own or the context window fills. Always set this explicitly in production. Values above the model context window return 400.
Sampling temperature between 0 and 2. Default 1 on glm5.3 when omitted. Output is not bit-reproducible, even at 0.
Must be false or omitted (omitting is 200 and echoed as false). true is 400 invalid_request_error — nothing created here is retrievable. OpenAI SDKs default this to true, so a default client.responses.create(...) fails.
Function tools use the flat Responses shape (type, name, parameters, strict) — the nested chat-completions tool shape is 400. tool_choice: required with no tools returns 400. Function arguments in output are a JSON string (parse before use). Multiple tool calls per turn are supported; use parallel_tool_calls: true or omit (see that field).
Forwarded exactly as written: none, auto, required, { "type": "function", "name": "..." }, or another object.
Optional reasoning config for glm5.3 and deepseekv4-flash. On glm5.3, a reasoning item is always in output — read summary[0].text. effort: on glm5.3, low or high only — omit for max-level reasoning (the literal string max returns 400); on deepseekv4-flash, low, high, or max all work directly. Optional summary: auto or detailed.
Merged into the outbound body. Must not overwrite any modelled field (400). max_tool_calls and prompt are 400 here and in extra_body — not supported by any serving deployment.
System-style instructions. Echoed back on the response object when set.
Nucleus sampling. Default 0.95 on glm5.3 when omitted. Must be greater than 0 and at most 1 (0 is rejected on glm5.3).
Top-k sampling on glm5.3. Omit or use -1 to disable; values ≥ 1 enable top-k. 0 is rejected.
Optional. Range -2 to 2. May be accepted and echoed on Responses without changing model output.
Optional. Range -2 to 2. May be accepted and echoed on Responses without changing model output.
Output format. If you send text, format is required (400 when missing). json_object and strict json_schema are honoured on glm5.3 and skip the reasoning item.
Not currently enforced on this route for any model that supports tool calling here (glm5.3, gemma4, deepseekv4-flash). Setting false is accepted without error, but the model may still return multiple tool calls in one turn.
Ignored on this route — Responses always returns one output. Accepted for OpenAI SDK compatibility only; omit or leave at 1.
Ignored on Responses. Accepted for SDK compatibility only.
400 invalid_request_error. This endpoint holds no state — replay the conversation in input. OpenAI and Fireworks use this to continue a chat; we do not.
Conversation state is not supported. Omit this field and replay the complete conversation in input.
true is 400 invalid_request_error. This endpoint is synchronous only.
400 invalid_request_error — not supported by any serving deployment, top-level or via extra_body.
Response
Rewritten to this service's request id. The id is for logs and x-request-id; responses are not stored for retrieval.
Typed output items from the backend — messages, reasoning, function calls, and vendor extras.
Unix timestamp (seconds) when the response was created. Returned as a float (e.g. 1789632469.0), not an integer.
Typically completed, incomplete, or failed. Corrected to incomplete with incomplete_details.reason: max_output_tokens when the caller set max_output_tokens, the backend reported output_tokens >= max_output_tokens, status was completed, and incomplete_details was absent.
Echoed back from the request. Always false — nothing created by this endpoint is retrievable.
Echoed from the request as sent — see the request field description for actual enforcement behavior.
OpenAI-compatible service-tier field, present for schema parity. Observed value: "auto".
Echoed back from the request. true is 400 — see the request field.
Unix timestamp (seconds, float) when generation finished. null while incomplete or failed.
Echoed back from the request. Always 400 if set — not supported by any serving deployment.
Not in the documented request schema, but accepted and echoed back. Defaults to {}.
Echoed back from the request. Always 400 if set — this endpoint holds no state.
Not in the documented request schema, but accepted and echoed back. Observed default: 0. Behavior on this route is otherwise unverified.
Not in the documented request schema, but accepted and echoed back. Observed default: 0. Behavior on this route is otherwise unverified.
Not in the documented request schema. Accepted and echoed back; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back. Observed default: 0; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back. Observed default: "disabled"; behavior otherwise unverified.
Not in the documented request schema. Accepted and echoed back; behavior otherwise unverified.
Reserved — always observed as null in testing. Shape not yet defined; do not rely on this field.