Use our models from your own Open WebUI
Open WebUI is a self-hosted, ChatGPT-style interface. Because our API is OpenAI-compatible, you can point a local Open WebUI instance at our endpoint and chat with our model stacks straight from your laptop — no cluster access required. This is ideal for external collaborators who just want a friendly UI on top of the models.
1. Get your API key
Grab a key from the API key page. You’ll use it as the OpenAI API key in the steps below.
export CSCS_SERVING_API="sk-rc-..." # your key from the API key page
2. Run Open WebUI with Docker
The quickest path is to bake the connection details straight into the docker run command:
docker run -d \
-p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.swissai.svc.cscs.ch/v1 \
-e OPENAI_API_KEY=$CSCS_SERVING_API \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
-p 3000:8080exposes the UI on http://localhost:3000.OPENAI_API_BASE_URLpoints Open WebUI at our OpenAI-compatible endpoint.OPENAI_API_KEYauthenticates every request with your key.-v open-webui:/app/backend/datakeeps your accounts, chats, and settings across restarts.
Then open http://localhost:3000, create a local admin account (this stays on your machine), and start chatting.
3. (Optional) Configure the connection from the UI instead
If you’d rather not put the key in the docker run command, start the container without the two -e flags and add the connection from the UI:
- Go to Settings → Admin Settings → Connections.
- Under OpenAI API, set:
- API Base URL:
https://api.swissai.svc.cscs.ch/v1 - API Key: your
sk-rc-...key
- API Base URL:
- Save. Our models will now appear in the model picker.
4. Pick a model
Open WebUI auto-discovers everything served at GET /v1/models. Select one from the dropdown, for example:
swiss-ai/Apertus-70B-Instruct-2509swiss-ai/Apertus-8B-Instruct-2509
The available list changes over time — the model picker always reflects what’s live. You can also see the full list any time with:
curl https://api.swissai.svc.cscs.ch/v1/models \
-H "Authorization: Bearer $CSCS_SERVING_API"
Verify the endpoint directly
If something isn’t connecting, confirm the API works on its own before debugging Open WebUI:
curl -X POST https://api.swissai.svc.cscs.ch/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $CSCS_SERVING_API" \
-d '{
"model": "swiss-ai/Apertus-8B-Instruct-2509",
"messages": [{"role": "user", "content": "Who is Pablo Picasso?"}],
"stream": false
}'
That’s it — a fully local UI, our models, your key. 🎉