Create a model response
POST/v1/responses
OpenAI-compatible Responses API.
DVARA translates the request into its model-call contract and applies
the same configured policy, PII, guardrail, budget, routing, usage,
cost, and audit controls as Chat Completions. Non-streaming requests can
use the response cache; streams bypass it. Set stream: true for typed
SSE events. Observational response controls preserve incremental
delivery, while a control that can withhold output holds the complete
response before release or refusal. The public stream does not include
usage; DVARA records terminal provider usage when available and
estimates it otherwise.
Only the text + image-input + structured-output core of the Responses
shape is honored in 1.8.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 supported on Chat
Completions. Requests using tools or tool_choice on Responses are
rejected as described 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 workspace'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.