Skip to main content
Use Cases
Use web search and other built-in tools without client-side tool orchestration.
Server-side state is retained between turns via previous_response_id, without resending the full message history.
Pass input_image and input_file items in a single request.
Combine function calling, reasoning, and tool continuation for agent-style loops.

The Responses API is the OpenAI-style /responses endpoint on the AI Gateway, exposed at POST /v3/router/responses. It implements the OpenResponses specification: a request carries a model and an input, and the response returns structured output items together with token and cost usage. The endpoint supports built-in tools such as web search, server-side conversation state, streaming, and multimodal input. Choose it when those capabilities matter; for a classic messages-based flow, use Chat Completions.
Invoke a configured agent by setting model to agent/<key>; the agent’s tools, knowledge bases, and memory apply automatically. See Run Agents.

Responses vs Chat Completions

Both endpoints share the same base URL (https://my.orq.ai/v3/router), authentication, and AI Gateway features: fallbacks, retries, caching, guardrails, and budgets. The table below lists the differences. Function calling works on both endpoints through the tools array; see Tool Calling.

Quick Start

Use the OpenAI SDK against the AI Gateway base URL and call client.responses.create.

Statefulness

Responses are persisted server-side by default (store defaults to true) and can be retrieved by ID (GET /v3/router/responses/{response_id}, see Retrieve Response). Continue a conversation by passing previous_response_id on the next request; the gateway uses the stored conversation instead of requiring the full history again. previous_response_id requires store: true on the original response.
Set store: false to skip persisting a response. The response cannot be retrieved later, and previous_response_id will not work on follow-up requests.

Streaming

Set "stream": true on the request body. The server responds with a Server-Sent Events stream in the OpenAI Responses format: incremental text arrives as response.output_text.delta events, and the stream ends with a completed event carrying final usage. See Streaming for event handling, retry, and error patterns.

Telemetry

Successful responses carry the OpenTelemetry ids of the turn. The response body includes a top-level telemetry object with the trace and span ids of the request:
trace_id is the 32-character hex id of the trace and span_id the 16-character hex id of the response span. The same values are echoed as the x-orq-trace-id and x-orq-trace-span-id response headers, which every router endpoint sets.
The telemetry object is present only on successful calls. Failed calls do not include it in the response body: read the ids from the x-orq-trace-id and x-orq-trace-span-id response headers instead, which are set on error responses as well.
When streaming, the ids arrive on the final response.completed event inside response.telemetry; the response.created event does not carry them. Read them from the completed event, or from the response headers. Use the ids to correlate the call with its Trace and wherever a span must be referenced, such as annotating a span or logging feedback.

Built-in tools

Built-in tools run server-side: pass them in the tools array and the gateway executes them during generation. Web search is available only through the Responses API, as web_search and web_search_preview tool types. See Web search in Responses API for tool fields, provider mapping, and the include option. Function tools work on both endpoints; see Tool Calling.

Multimodal input

Send images and PDFs alongside text in the input array using input_image and input_file items. See Image, PDF, and audio: multimodal inputs and generation for supported formats and full examples.

AI Gateway features

All AI Gateway features apply to the Responses API. Most are configured per request through request-body fields; budgets are configured in the console and apply by scope.

See also