API Documentation
staik offers an OpenAI-compatible REST API. Just change the base_url.
Authentication
Authorization: Bearer sk-st-your-key-hereBase URL
https://api.staik.se/v1Chat Completions
curl https://api.staik.se/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-st-your-key" \
-d '{
"model": "qwen3.5:35b-a3b",
"messages": [{"role": "user", "content": "Hello!"}]
}'Models
| Model | Plan | Tokens/day |
|---|---|---|
| qwen3.5:9b | Hobby | 50 000 |
| qwen3.5:35b-a3b | Early Adopter, Agent | 300 000 |
Pricing
| Plan | Price |
|---|---|
| Early Adopter | Free (max 25) |
| Hobby | 99 SEK/mo (49 SEK first month) |
| Agent | 499 SEK/mo (249 SEK first month) |
Quickstart with AI agents
staik works out of the box with popular agent frameworks. Just change the base_url and API key.
JSONOpenClaw / Claude Code
// openclaw.json
{
"models": {
"providers": {
"staik": {
"baseUrl": "https://api.staik.se/v1",
"apiKey": "sk-st-your-key",
"api": "openai-completions",
"models": [{
"id": "qwen3.5:35b-a3b",
"name": "Qwen3.5 35B via staik"
}]
}
}
}
}PythonOpenAI SDK
from openai import OpenAI
client = OpenAI(
base_url="https://api.staik.se/v1",
api_key="sk-st-your-key",
)
response = client.chat.completions.create(
model="qwen3.5:35b-a3b",
messages=[
{"role": "system", "content": "Du är en hjälpsam assistent."},
{"role": "user", "content": "Förklara GDPR kort."}
],
temperature=0.7,
max_tokens=500,
)
print(response.choices[0].message.content)PythonCrewAI
from crewai import Agent, Task, Crew, LLM
llm = LLM(
model="openai/qwen3.5:35b-a3b",
base_url="https://api.staik.se/v1",
api_key="sk-st-your-key",
)
researcher = Agent(
role="Researcher",
goal="Find relevant information",
backstory="You are an expert researcher.",
llm=llm,
)
task = Task(
description="Research the latest trends in Swedish AI policy.",
expected_output="A summary of key findings.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()
print(result)PythonLangChain
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
llm = ChatOpenAI(
model="qwen3.5:35b-a3b",
base_url="https://api.staik.se/v1",
api_key="sk-st-your-key",
)
response = llm.invoke([
HumanMessage(content="Skriv en haiku om Stockholm")
])
print(response.content)TypeScriptVercel AI SDK
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";
const staik = createOpenAI({
baseURL: "https://api.staik.se/v1",
apiKey: "sk-st-your-key",
});
const { text } = await generateText({
model: staik("qwen3.5:35b-a3b"),
prompt: "Explain GDPR in simple terms.",
});
console.log(text);Node.jsOpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.staik.se/v1",
apiKey: "sk-st-your-key",
});
const response = await client.chat.completions.create({
model: "qwen3.5:35b-a3b",
messages: [
{ role: "user", content: "Hello from Node.js!" }
],
});
console.log(response.choices[0].message.content);Error codes
| Code | Description |
|---|---|
| 401 | Invalid or missing API key |
| 429 | Daily token limit exceeded or all slots busy |
| 503 | Model temporarily unavailable |