Skip to main content

Open Responses

Overview

Open WebUI has experimental support for Open Responses, an open specification for multi-provider, interoperable LLM interfaces. This guide walks you through enabling the Open Responses API for a connection.

Experimental Feature

This feature is currently experimental and may not work as expected with all providers.


What is Open Responses?

Open Responses is an open-source specification that standardizes how LLM requests and responses are structured across providers. It provides:

  • One spec, many providers: Describe inputs/outputs once; run on OpenAI, Anthropic, Gemini, or local models.
  • Composable agentic loops: Unified streaming, tool invocation, and message orchestration.
  • Easier evaluation and routing: Compare providers, route requests, and log results through a shared schema.

Open Responses builds on the OpenAI Responses API format but is designed to work across any provider that implements the spec.


Step 1: Add or Edit a Connection

  1. Go to the ⚙️ Admin Settings.
  2. Navigate to Connections > OpenAI > Manage (look for the wrench icon).
  3. Click ➕ Add New Connection or edit an existing connection.

Step 2: Select the API Type

In the connection modal, look for the API Type setting:

  • Chat Completions (default): Uses the standard OpenAI Chat Completions API format.
  • Responses: Uses the Open Responses API format.

Click the toggle to switch to Responses.

API Type Toggle


Step 3: Configure Your Provider

Enter the connection details for a provider that supports the Open Responses format:

  • URL: Your provider's API endpoint
  • API Key: Your authentication credentials
  • Model IDs: (Optional) Specify specific models to use

Step 4 (Optional): Enable Native Server-Side Tools

Some providers, most notably OpenAI, expose server-side tools through the Responses API. The headline example is native web search: the model runs the search itself, then returns a grounded answer with source citations. Open WebUI forwards these tools to the provider and renders their results natively, so nothing else needs to be wired up.

This is separate from Open WebUI's Web Search

Native server-side tools run entirely on the provider's side and only work on API Type: Responses connections (Steps 1 to 2 above). They are independent of Open WebUI's own Web Search providers (Tavily, SearXNG, etc.), you don't need to configure or enable those. Leave the model's Web Search capability off; the native tool replaces it, and enabling both is redundant.

To turn on native web search for a model:

  1. Go to Workspace → Models and edit (✏️) a model that uses your Responses connection.
  2. Expand Advanced Params.
  3. At the bottom, click ➕ Add Custom Parameter and set:
    • Name: tools
    • Value: [{"type": "web_search"}]
  4. Save the model.

When you chat with that model, the provider performs web searches server-side, and Open WebUI streams:

  • A "Web Search" status block showing the queries the model ran.
  • Clickable source citations drawn from the results.
  • The model's grounded answer.
Multiple tools and tool options

The tools custom parameter accepts any tool your provider supports in the Responses API. Pass several by adding them to the array:

[{"type": "web_search"}, {"type": "code_interpreter"}]

You can also include provider-specific options on a tool object (for web search, e.g. search_context_size or user_location). See your provider's Responses API documentation. Older OpenAI model snapshots may require {"type": "web_search_preview"} instead of web_search.

Admin only

The Add Custom Parameter button is shown to administrators in the model editor. Custom parameters are forwarded to the provider as-is, so only use valid Responses API tool definitions.


Supported Providers

Open Responses is a new specification, so provider support is still growing. Check the Open Responses website for the latest list of compliant providers and implementations.


Troubleshooting

Connection works with Chat Completions but not Responses

Not all providers support the Open Responses format yet. Try:

  1. Switching back to Chat Completions
  2. Checking if your provider explicitly supports Open Responses
  3. Using a middleware proxy that can translate to Open Responses format

Streaming or tool calls behave unexpectedly

Tool calls, re-invocations, and streaming are supported for Responses API connections. Open WebUI transparently converts between Chat Completions and Responses API formats, including tool call arguments, function call outputs, and multi-turn tool use. If you still encounter issues:

  1. Check the Open WebUI Discord for known issues
  2. Report bugs on GitHub

Stateful sessions

By default, Open WebUI treats Responses API connections as stateless: it manages conversation history locally and sends the full context with each request. If your upstream provider supports stateful sessions (server-side response storage with previous_response_id anchoring, e.g., direct OpenAI connections), you can enable ENABLE_RESPONSES_API_STATEFUL=true to let the provider manage conversation state.

warning

Most proxies and third-party Responses API endpoints are stateless and will break if stateful mode is enabled. Only use this with providers that explicitly support stateful Responses API sessions.


Learn More

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.