Models
Last updated:
Choose a model via the model field in your request. Each model runs on
dedicated GPU hardware in Sweden.
| Model | Vendor | Parameters | Context window | Vision |
|---|---|---|---|---|
| qwen3.6:35b-a3b | Alibaba | 35B MoE | 262,144 | ✓ |
| qwen3.5:9b | Alibaba | 9.7B | 262,144 | ✓ |
| gemma4:31b | Google DeepMind | 31B | 262,144 | ✓ |
| bge-m3:latest | BAAI | 568M | 8,192 | embedding |
| kb-whisper-large | Kungliga biblioteket | 1.5B | — | audio (sv) |
qwen3.5:35b-a3b is accepted as a backwards-compatible alias for qwen3.6:35b-a3b.
All chat models support streaming and
tool calling, and all of them read
images. The thinking aliases
(qwen3.6:35b-a3b-thinking, qwen3.5:9b-thinking) are described under
Chat completions.
The models are open weights that we host on our own hardware. KB-Whisper is the only model we run that was trained in Sweden.
List models programmatically
curl https://api.staik.se/v1/models \
-H "Authorization: Bearer sk-st-your-key"{
"data": [
{
"id": "qwen3.6:35b-a3b",
"object": "model",
"owned_by": "staik",
"context_window": 262144,
"capabilities": ["chat", "vision", "tools", "systemone"]
}
]
}The response includes context_window and capabilities per model — useful
for clients that configure themselves. systemone means the model can be used
with /v1/systemone.
Version-neutral aliases
Want to follow the latest version without hardcoding a version number? Use an
alias as model:
| Alias | Routes to |
|---|---|
qwen-35b-latest | The current 35B model (today qwen3.6:35b-a3b) |
qwen-9b-latest | The current 9B model (today qwen3.5:9b) |
When we upgrade a model, the alias follows automatically — your code stays
the same. The aliases work on both /v1/chat/completions and /v1/messages.
Thinking only works on /v1/chat/completions. Add -thinking
(qwen-35b-latest-thinking, qwen-9b-latest-thinking) to enable
thinking. /v1/messages does not support
thinking: there the -thinking names are treated as an unknown model and are
answered by the default model (qwen3.6:35b-a3b) without thinking.
The model field in the response differs between the endpoints:
/v1/chat/completionsshows the actual model that answered, e.g.qwen3.6:35b-a3b./v1/messagesusually shows staik's internal model name:qwen3.5:35b-a3bforqwen-35b-latest(the same model asqwen3.6:35b-a3b) andqwen3.5:9bforqwen-9b-latest. Streamed requests withtoolsshow the actual model instead. If you need the exact version, readactual_modelinGET /v1/models.
GET /v1/models lists the aliases with alias: true and actual_model, which
shows the version the alias currently points to (the -thinking variants are
not listed):
{
"id": "qwen-9b-latest",
"object": "model",
"owned_by": "staik",
"alias": true,
"actual_model": "qwen3.5:9b",
"context_window": 262144,
"capabilities": ["chat", "tools", "systemone"]
}Want predictable behavior over time? Use the full model name instead, e.g.
qwen3.6:35b-a3b.
Your own GPUs (BYO): unmetered lane
If your organization has connected its own GPUs (Your GPUs), you choose the lane on the model name:
- Prefixed —
<org_slug>/<model>runs unmetered against your own hardware (no daily/hourly limit, no token deduction) - A bare model name goes to staik's shared pool and is metered against your plan
# Unmetered: run against the organization's own GPU (prefix = your org slug)
curl https://api.staik.se/v1/chat/completions \
-H "Authorization: Bearer $STAIK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "acme/qwen3.8:27b", "messages": [{"role": "user", "content": "Hi"}]}'If your org has no healthy node serving the model you get a 503 — no silent
fallback to staik. GET /v1/models lists your prefixed models. The prefix works
the same on /v1/chat/completions and /v1/messages.