Models

Last updated:

On this page

Choose a model via the model field in your request. Each model runs on dedicated GPU hardware in Sweden.

ModelVendorParametersContext windowVision
qwen3.6:35b-a3bAlibaba35B MoE262,144✓
qwen3.5:9bAlibaba9.7B262,144✓
gemma4:31bGoogle DeepMind31B262,144✓
bge-m3:latestBAAI568M8,192embedding
kb-whisper-largeKungliga biblioteket1.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

bash
curl https://api.staik.se/v1/models \
  -H "Authorization: Bearer sk-st-your-key"
json
{
  "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:

AliasRoutes to
qwen-35b-latestThe current 35B model (today qwen3.6:35b-a3b)
qwen-9b-latestThe 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/completions shows the actual model that answered, e.g. qwen3.6:35b-a3b.
  • /v1/messages usually shows staik's internal model name: qwen3.5:35b-a3b for qwen-35b-latest (the same model as qwen3.6:35b-a3b) and qwen3.5:9b for qwen-9b-latest. Streamed requests with tools show the actual model instead. If you need the exact version, read actual_model in GET /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):

json
{
  "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
bash
# 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.