---
title: Open WebUI | RunAPI
description: Install Open WebUI, add RunAPI as an OpenAI-compatible connection, select
  a model, and verify a chat.
url: https://runapi.ai/docs/resources/application-practices/open-webui.md
canonical: https://runapi.ai/docs/resources/application-practices/open-webui
locale: en
---

> HTML version: https://runapi.ai/docs/resources/application-practices/open-webui
> Site index for agents: https://runapi.ai/llms.txt

# Open WebUI

Connect Open WebUI to RunAPI through its OpenAI-compatible Connection.
You need Open WebUI administrator access and a standard RunAPI API key
from the [Authentication Guide](https://runapi.ai/docs/guides/authentication.md).

## Install Open WebUI

Follow the [official Open WebUI quick start][1] for your platform. For a
local Docker installation, the official image can be started with:



[1]: https://docs.openwebui.com/getting-started/quick-start/

```shell
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
```

Open the application, create the administrator account, and sign in
before adding the connection.

## Add the RunAPI connection

1.  Open **Admin Settings → Connections → OpenAI**, then select **Add
    Connection**.
2.  Set the URL to `https://runapi.ai/v1` and enter your RunAPI API key.
3.  Leave **Model IDs (Filter)** empty for the first connection attempt
    so Open WebUI can discover the available models.
4.  Save the connection and wait for verification to finish.

Open WebUI sends the connection check from its backend and uses `GET
/v1/models` for discovery. The RunAPI URL is public HTTPS, so a Docker
installation does not need `host.docker.internal` for this connection.

## Select a model

Open a new chat and select a RunAPI model from the chat model selector.
Use the [Model Catalog](https://runapi.ai/models) to confirm the current model identifier
and capabilities.

If discovery does not populate the selector, edit the connection and add
the exact identifier under **Model IDs (Filter)**. A model discovery
error and a Chat Completions error are separate signals; test the
manually added model before removing the connection.

## Verify the connection

Send a short prompt such as `Reply with the word connected.` A normal
streamed or complete response confirms that Open WebUI can use the
selected RunAPI model.

## Troubleshoot

* **Verification returns `401` or `403`:** replace the API key in the
  connection with a valid standard key from the [Authentication
  Guide](https://runapi.ai/docs/guides/authentication.md).
* **No RunAPI model appears:** confirm the URL ends in `/v1`, then add
  one current identifier to **Model IDs (Filter)** and retry the chat.
* **The model is visible but chat fails:** confirm the identifier
  supports OpenAI-compatible Chat Completions in the [Model
  Catalog](https://runapi.ai/models), then inspect the Open WebUI backend logs for the
  request status.
* **A local URL works in the browser but not Open WebUI:** Open WebUI
  connections originate from its backend. This does not affect the
  public `https://runapi.ai/v1` URL, but it matters for other local
  connections.

For the shared protocol behavior, use the [LLM API
Quickstart](https://runapi.ai/docs/guides/llm-api/quickstart.md). For request and response
fields, use the [Chat Completions API
Reference](https://runapi.ai/docs/api/openai/chat-completions.md).

---

## More from RunAPI

- [Home](https://runapi.ai/.md)
- [Models](https://runapi.ai/models.md)
- [AI Video API Comparison](https://runapi.ai/ai-video-api-comparison.md)
- [OpenClaw Integration](https://runapi.ai/openclaw.md)
- [Best API for OpenClaw](https://runapi.ai/best-api-for-openclaw.md)
- [OpenClaw Image Generation](https://runapi.ai/openclaw-image-generation.md)
- [Hermes Agent Integration](https://runapi.ai/hermes-agent.md)
- [Pricing](https://runapi.ai/pricing.md)
- [Claude API Pricing](https://runapi.ai/claude-api-pricing.md)
- [ChatGPT API Pricing](https://runapi.ai/chatgpt-api-pricing.md)
- [OpenAI API Pricing](https://runapi.ai/openai-api-pricing.md)
- [Gemini API Pricing](https://runapi.ai/gemini-api-pricing.md)
- [Claude Code Pricing](https://runapi.ai/claude-code-pricing.md)
- [Claude Code API](https://runapi.ai/claude-code-api.md)
- [Claude Code vs Cursor](https://runapi.ai/claude-code-vs-cursor.md)
- [Claude Max vs API](https://runapi.ai/claude-max-vs-api.md)
- [Requesty Alternative](https://runapi.ai/requesty-alternative.md)
- [Docs](https://runapi.ai/docs/guides)
- [SDK](https://runapi.ai/sdk.md)
- [Skills](https://runapi.ai/skills.md)
- [MCP Server](https://runapi.ai/mcp.md)
- [CLI](https://runapi.ai/cli.md)
- [Feedback](https://runapi.ai/)
- [Contact](mailto:support@runapi.ai)
- [Terms](https://runapi.ai/terms.md)
- [Privacy](https://runapi.ai/privacy.md)
- [Site index for agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/icon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "TechArticle",
    "headline": "Open WebUI",
    "description": "Install Open WebUI, add RunAPI as an OpenAI-compatible connection, select a model, and verify a chat.",
    "url": "https://runapi.ai/docs/resources/application-practices/open-webui",
    "mainEntityOfPage": "https://runapi.ai/docs/resources/application-practices/open-webui"
  }
]
```
