Integrate in five minutes
OpenAI, Anthropic Messages, Responses and Gemini compatible. Change only the API key, base URL and model name.
Send your first request
Create an API key in the dashboard, then run:
curl https://api.kimiseek.app/v1/chat/completions \
-H "Authorization: Bearer $KIMISEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [{"role":"user","content":"Hello"}],
"stream": true
}'Authentication
Use a Bearer token for every request. Keys start with ks- and can be copied from the dashboard key list.
Never expose an API key in browser code or a public repository.
Use the official OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KIMISEEK_API_KEY,
baseURL: "https://api.kimiseek.app/v1",
});
const response = await client.chat.completions.create({
model: "qwen3.7-plus",
messages: [{ role: "user", content: "Analyze this code" }],
});Change only model to switch providers. Every request routes through Alibaba Cloud Model Studio.
Claude Code and Codex
Claude Code uses the Anthropic Messages compatibility endpoint.
export ANTHROPIC_BASE_URL="https://api.kimiseek.app"
export ANTHROPIC_AUTH_TOKEN="ks-your-key"
export ANTHROPIC_MODEL="deepseek-v4-pro"
claudeCodex uses the Responses API and reads KIMISEEK_API_KEY from the environment.
model = "qwen3.7-max"
model_provider = "kimiseek"
[model_providers.kimiseek]
name = "KimiSeek"
base_url = "https://api.kimiseek.app/v1"
env_key = "KIMISEEK_API_KEY"
wire_api = "responses"generateContent and streamGenerateContent are supported; pass the key with x-goog-api-key.
Streaming
Set stream: true for standard SSE. Usage is read when the stream ends.
Error codes
400Invalid request or model name401Invalid API key or exhausted quota402Insufficient CNY balance503Model channel unavailableCNY billing
Input, cached input and output tokens are multiplied by their rates and settled entirely in CNY.