OpenAI-compatible API · operated from Geneva

LLM inference that tells you where it runs.

One endpoint for open-weight models. Every model shows the region it runs in (CH, EU or US), and one header keeps a request in Switzerland or in Europe. Prepaid in USD, from SOKKAN, a Swiss company.

Base URL
https://router.sokkan.ch/v1
Data location
CH · EU · any
Billing
Prepaid USD, no subscription
from openai import OpenAI
import os

client = OpenAI(
    base_url="https://router.sokkan.ch/v1",  # the only change
    api_key=os.environ["SOKKAN_API_KEY"],
)
resp = client.chat.completions.create(
    model="qwen/qwen3.8-27b",
    messages=[{"role": "user", "content": "Hello"}],
    extra_headers={"X-Data-Location": "EU"},
)
print(resp.choices[0].message.content)
responseillustrative output
$ curl -sN -D - …/v1/chat/completions -H "X-Data-Location: CH"HTTP/2 200content-type: text/event-streamx-sokkan-region: CHx-request-id: gen-5f0c2a… data: {"choices":[{"delta":{"content":"Grüezi"}}]}data: {"choices":[{"delta":{"content":"! This"}}]}data: {"choices":[{"delta":{"content":" request"}}]}data: {"choices":[{"delta":{"content":" stayed in"}}]}data: {"choices":[{"delta":{"content":" Switzerland."}}]}data: [DONE]✓ first token 0.4 s · served in CH

Why SOKKAN Router

Know where every token runs. Keep the SDK you already use.

01 · location

Every model says where it runs

The catalogue lists the hosting region of each model: Switzerland, the EU or the US. Send X-Data-Location: CH or EU and the request only runs in that region; any is the default. Each response tells you where it ran.

# request
X-Data-Location: CH      # CH | EU (EEA + CH) | any

# response headers
x-sokkan-region: CH       # CH | EU | US

02 · failover

A request never hangs on a silent upstream

When a model runs in more than one place, we race them. If the first one has not started streaming after a short delay, the next one starts, and the first to send a token wins; the other is cancelled. The switch happens before the first byte reaches you, so an answer never mixes two upstreams. If nobody answers in time, you get a clear 504, not an open socket.

03 · company

A Swiss company, Swiss law

SOKKAN Router is operated by NINABOT Sàrl in Geneva, the company behind SOKKAN. Contracts under Swiss law, invoices in USD, and a data processing agreement written for the Swiss FADP (nLPD) and the GDPR.

04 · price

Low prices on the models we serve ourselves

Qwen3.8-27B at $0.10 input, $0.02 cached, $1.25 output per million tokens: below every OpenRouter provider's output price for this model as of Oct 6, 2026 (lowest listed: $1.49).

See all prices →

05 · drop-in

OpenAI-compatible, prepaid, no prompt storage

Keep the OpenAI SDK and change base_url. Top up a balance, no subscription. We meter tokens, not content: prompts and completions are not stored on our side, and a prompt that contains credentials is rejected before it leaves our servers.

Catalogue

Models, prices per million tokens, and where they run

Full pricing table →

Start

From sign-up to first token in three steps

  1. 1

    Sign in with your email

    We send a sign-in link. No password.

  2. 2

    Top up and create a key

    Prepaid balance in USD, paid by card. Keys start with skr_.

  3. 3

    Point your SDK at us

    Set base_url to https://router.sokkan.ch/v1. That's it.

Questions before you start? Write to [email protected].

Get an API key