Getting started
Quickstart
From sign-up to your first chat completion in under five minutes.
Last updated: 2026-05-19
Quickstart
Five minutes to your first response from a Swiss-hosted LLM.
1. Create an account
Go to my.siati.ai/register. Email + password, no credit card. The Free plan gives you 100k tokens per day on the slow tier.
2. Get an API key
Dashboard → API keys → Create new key. Copy it once — it starts with sk-siati- and is shown only at creation time.
export SIATI_API_KEY="sk-siati-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
3. List available models
curl https://api.siati.ai/v1/models \
-H "Authorization: Bearer $SIATI_API_KEY"
You'll see at least Apertus 70B and Qwen 2.5 7B. See Models for the live catalog.
4. First chat completion
curl https://api.siati.ai/v1/chat/completions \
-H "Authorization: Bearer $SIATI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "apertus-70b-instruct",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain Swiss data sovereignty in 3 bullet points."}
],
"max_tokens": 200
}'
Response is OpenAI-compatible: { id, choices: [...], usage: {...} }.
5. Streaming (SSE)
Add "stream": true. Lines start with data: , terminated by data: [DONE].
curl -N https://api.siati.ai/v1/chat/completions \
-H "Authorization: Bearer $SIATI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "apertus-70b-instruct",
"stream": true,
"messages": [{"role": "user", "content": "Tell me a Swiss joke."}]
}'
6. Use the OpenAI SDK (drop-in)
Already using openai-python or openai-node? Change two lines:
from openai import OpenAI
client = OpenAI(
base_url="https://api.siati.ai/v1",
api_key=os.environ["SIATI_API_KEY"],
)
resp = client.chat.completions.create(
model="apertus-70b-instruct",
messages=[{"role": "user", "content": "Hello from siati.ai!"}],
)
print(resp.choices[0].message.content)
See OpenAI SDK migration for LangChain, LlamaIndex, function calling.