Create a model response
POST/v1/responses
OpenAI-compatible Responses API.
DVARA translates the request into its internal model and runs the
identical governance + metering pipeline as /v1/chat/completions
(budget, policy, PII, guardrails, priority, model downgrade, context
window, token + cost metering, the threshold cascade, the
GATEWAY_RESPONSE audit event, and the response cache) — so a
Responses client gets a governed answer from any configured
provider, not just OpenAI. Set stream: true for the typed SSE event
stream.
Only the text + image-input + structured-output core of the Responses
shape is honored in 1.2.0. Advanced OpenAI-only features are rejected
cleanly with UNSUPPORTED_CAPABILITY (HTTP 400) — never silently
dropped:
| Rejected field | Why |
|---|---|
store: true, previous_response_id | The gateway is stateless — it stores no server-side conversation state. Send the full input each turn with store: false. |
background: true | Async/background mode needs server-side state. |
reasoning | Reasoning items are not surfaced in this release. |
prompt (reusable prompt object) | Use DVARA prompt templates instead. |
tools, tool_choice | Function calling on /v1/responses arrives via a follow-up; built-in hosted tools (web_search, file_search, code_interpreter, computer_use, mcp) are not supported. |
input parts of type input_file / input_audio | Text + image input only in 1.2.0. |
Both /v1/responses and /v1/chat/completions are stateless — send
the full input on each turn. Function calling is a follow-up for both
endpoints (the tools field is not yet honored on either surface);
until then, requests using tools on /v1/responses are rejected as
above.
Request
Responses
- 200
- 400
- 402
- 403
- 429
- 502
Response object, or an SSE stream of typed events when stream=true
Request was rejected before dispatch — missing credentials, unknown model, invalid response_format, or capability mismatch.
The tenant's hard budget cap is exhausted (BUDGET_CAP_HARD).
Request was blocked by an active policy rule (POLICY_DENIED, PII_DETECTED, GUARDRAIL_BLOCKED, IP_ACCESS_DENIED).
Per-key rate limit reached, or priority admission control throttled the request (PRIORITY_THROTTLED).
Every configured provider on the route (and every fallback) has failed.