Contents
To connect Open WebUI to SolCard Inference, add an OpenAI API connection with the URL https://api.solcardinference.ai/v1 and an API key that starts with sk-si-. Our API then lists its three models to Open WebUI. LibreChat takes the same URL and key as a custom endpoint in librechat.yaml. Both have to call us from their server, not from your browser; more on that below.
What you need
- An API key. Sign in at app.solcardinference.ai, open API keys and create one. Keys start with
sk-si-and are shown once (quickstart). - A balance. Requests draw from your prepaid USD balance, which you add on the Top up page. See how billing works.
- The base URL:
https://api.solcardinference.ai/v1. It speaks OpenAI Chat Completions, which is what both apps use. - The model IDs:
| Model ID | Use it for |
|---|---|
solcard-inference-fast | The default: fastest and cheapest |
solcard-inference-large | Hard questions; it always reasons |
solcard-inference-base | General purpose, 262k context |
Fast, Large or Base compares them.
Open WebUI
Open WebUI’s guide to OpenAI-compatible providers puts the setting under Settings > Admin > Connections:
- Find Manage OpenAI API Connections and click Add Connection.
- URL:
https://api.solcardinference.ai/v1 - API Key: your
sk-si-...key. - Click Save.
Verify Connection calls /models with a Bearer token. That’s the request our API answers with the list of models: GET /v1/models with Authorization: Bearer sk-si-... returns solcard-inference-fast, solcard-inference-large and solcard-inference-base. You can check it yourself first:
curl https://api.solcardinference.ai/v1/models \
-H "Authorization: Bearer $SOLCARD_INFERENCE_KEY"
If the models don’t show up in the model picker, Open WebUI’s docs say to “add your model IDs to the Model IDs allowlist” on the same connection. Type each ID from the table above and save.
Why Direct Connections won’t work
Open WebUI also has Direct Connections, where your browser calls the provider itself instead of the Open WebUI server. That route is blocked for SolCard Inference. Our API only accepts browser requests from our own chat app at app.solcardinference.ai; a browser on any other site gets a CORS error before the request is sent.
Use the admin connection above. The Open WebUI server calls our API directly, where CORS doesn’t apply, and your key stays on the server instead of in every user’s browser.
LibreChat
LibreChat adds providers as custom endpoints in librechat.yaml. Put the key in .env:
SOLCARD_INFERENCE_KEY=sk-si-...
Then add the endpoint under endpoints.custom:
endpoints:
custom:
- name: 'SolCard Inference'
apiKey: '${SOLCARD_INFERENCE_KEY}'
baseURL: 'https://api.solcardinference.ai/v1'
models:
default: ['solcard-inference-fast', 'solcard-inference-large', 'solcard-inference-base']
fetch: true
titleConvo: true
titleModel: 'solcard-inference-fast'
modelDisplayLabel: 'SolCard Inference'
Two things from LibreChat’s docs:
- “
models.defaultmust list at least one model, even whenfetch: trueis set.” An empty list stops LibreChat from starting. - Docker installs need the file mounted. Copy
docker-compose.override.yml.exampletodocker-compose.override.yml, uncomment thelibrechat.yamlvolume mount, then restart withdocker compose down && docker compose up -d.
titleModel is the model that names each conversation. Fast is the cheap choice; every title is a small request billed to your balance.
Where your chats live now
A self-hosted UI changes where your history is kept. In our own chat app, history stays in your browser unless you turn on end-to-end encrypted sync. In Open WebUI or LibreChat, your history lives in that app’s database, on your server. Whoever runs the server can read it, so treat it like any other database with private data in it: back it up, and limit who has access.
Your prompts still reach SolCard Inference, because that’s where the model runs. Each one is processed in memory and not stored: not on our servers, not in our logs, not at the model. Keeps nothing follows one message all the way through.
So the split is:
| Kept where | |
|---|---|
| Chat history | Your Open WebUI or LibreChat server |
| Prompts and answers at SolCard Inference | Nowhere |
| Billing line per request (time, key, model, tokens, cost) | Your SolCard Inference usage page |
Keys and costs
Every key spends from your account balance, so give the UI its own key. You can set a monthly spend limit on a key, after which its requests return 402 key_limit_exceeded until the next month (authentication). If a key leaks, revoke it on the API keys page.
Everyone who uses your Open WebUI or LibreChat spends the same balance. Your usage page shows each request: the time, the key, the model, tokens in and out, and the cost.
FAQ
Does Open WebUI’s Verify Connection work with SolCard Inference?
It calls /models with a Bearer token, and our /v1/models lists the three models for a valid key. If the picker still comes up empty, add the IDs to the Model IDs allowlist.
Can I use a browser-only client or Direct Connections?
No. Our API only accepts browser requests from app.solcardinference.ai. Connect from a server instead.
Can I upload images or files? No. The models are text only.
Is my chat history private? It’s as private as your server. SolCard Inference doesn’t store your prompts or answers; Open WebUI and LibreChat keep your history in their own database.