LibreChat custom endpoint for UberLLM (librechat.yaml)
Add a custom endpoint named UberLLM to librechat.yaml with baseURL https://api.uberllm.dev/v1 and apiKey "${UBERLLM_API_KEY}", put the key in .env, and restart LibreChat. Turn on models.fetch to get the full model list.
Steps
- Make a key on your keys page and add credit.
- Add the key to the
.envfile in LibreChat's folder:
UBERLLM_API_KEY=ull_your_key
Use this name, not OPENAI_API_KEY, so the built-in OpenAI endpoint does not pick it up.
- Add UberLLM to
librechat.yaml(same folder as.env):
version: 1.3.18
cache: true
endpoints:
custom:
- name: "UberLLM"
apiKey: "${UBERLLM_API_KEY}"
baseURL: "https://api.uberllm.dev/v1"
models:
default: ["deepseek/deepseek-v4.1-flash", "google/gemini-3.5-flash", "anthropic/claude-sonnet-5.5"]
fetch: true
titleConvo: true
titleModel: "current_model"
modelDisplayLabel: "UberLLM"
If your file already has endpoints: custom:, add only the - name: "UberLLM" block to that list. Keep your file's own version line if it is newer.
- Docker: make sure the file is mounted. In
docker-compose.override.yml:
services:
api:
volumes:
- type: bind
source: ./librechat.yaml
target: /app/librechat.yaml
- Restart:
docker compose down && docker compose up -d(or restart thenpmprocess). - Pick UberLLM in the endpoint menu and choose a model.
What the fields do
- baseURL: LibreChat adds
/chat/completionsto it, so stop at/v1. - models.default: the models always shown. fetch: true asks UberLLM for its whole list on top of those.
- titleModel: "current_model": chat titles are written by the model you are chatting with. Set a cheap id such as
deepseek/deepseek-v4.1-flashinstead to keep title costs near zero. - Want each user to bring their own UberLLM key? Set
apiKey: "user_provided"and LibreChat asks them for it.
Troubleshooting
- UberLLM does not appear in the menu: LibreChat did not read the file. Check it is next to
.env(or atCONFIG_PATH), mounted in Docker, and readdocker compose logs apifor a config error. A bad file stops LibreChat from starting. - 401:
${UBERLLM_API_KEY}is empty inside the container. Check the.envline and restart. - 404 model not found: ids need the maker in front, for example
deepseek/deepseek-v4.1-flash. - 402 insufficient credits: add credit on the credits page.
- A model rejects a setting: drop it for this endpoint with
dropParams: ["stop"](or["user"]).
Keep reading
- Reference page: LibreChat doc
- Open WebUI setup
- One API key for all LLMs