Open WebUI with UberLLM: every model from one connection
In Open WebUI go to Settings › Admin › Connections, add an OpenAI API connection with URL https://api.uberllm.dev/v1, Bearer auth and your UberLLM key, keep API Type on Chat Completions, verify and save. For a new Docker install, pass OPENAI_API_BASE_URL and OPENAI_API_KEY instead.
Steps (existing install)
- Make a key on your keys page and add credit.
- Sign in to Open WebUI as an admin and go to Settings › Admin › Connections.
- Under Manage OpenAI API Connections, click + Add Connection.
- Fill in:
- Connection Type: External
- URL:
https://api.uberllm.dev/v1 - Auth: Bearer
- API Key: your
ull_…key - API Type: Chat Completions
- Click Verify Connection, then Save.
- Open a new chat. The model picker now lists UberLLM's models.
Steps (new Docker install)
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.uberllm.dev/v1 \
-e OPENAI_API_KEY=ull_your_key \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main
These variables only apply the first time Open WebUI starts. After that the value saved in its database wins, so on an install that already ran, use the screen above (or start it once with RESET_CONFIG_ON_START=true).
To keep your current OpenAI connection and add UberLLM next to it, use the plural variables with a semicolon between entries:
-e OPENAI_API_BASE_URLS="https://api.openai.com/v1;https://api.uberllm.dev/v1" \
-e OPENAI_API_KEYS="sk-your-openai-key;ull_your_key"
A tidy model list
UberLLM has hundreds of models. Two settings under Advanced in the connection keep the picker short:
- Model IDs: list only the ids you want, for example
deepseek/deepseek-v4.1-flashandgoogle/gemini-3.5-flash. Open WebUI then shows just those. - Prefix ID: a word such as
uberllmis added in front of every model name (uberllm.deepseek/deepseek-v4.1-flash), so you can tell them apart from other connections. It is removed before the request is sent.
Troubleshooting
- Verify fails: check the URL ends in
/v1with nothing after it, and the key has no space. - Model list loads slowly or is empty: Open WebUI gives the list 10 seconds by default. Add the ids under Model IDs so it stops fetching the full list, or raise
AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST. - Changed the Docker variables and nothing happened: see the first-start note above.
- 402 insufficient credits: add credit on the credits page.
- Text arrives in bursts behind your own nginx: turn off proxy buffering for Open WebUI.
- Documents and web search: Open WebUI makes embeddings with its own local model by default, which is what you want; UberLLM does not serve embeddings.
Keep reading
- Reference page: Open WebUI doc
- LibreChat setup
- Every model with live prices