Справка
Примеры вызовов API
API совпадает с официальными форматами OpenAI и Anthropic. В существующем коде достаточно заменить base_url и ключ — остальную логику менять не нужно.
Один ключ работает со всеми моделями. Ключ хранится только в вашем браузере и никуда не отправляется.
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| POST | /v1/messages | Anthropic Messages (нативный формат Claude) |
| POST | /v1/chat/completions | OpenAI Chat Completions |
| POST | /v1/responses | OpenAI Responses (используется Codex) |
| GET | /v1/models | Список моделей, доступных для текущего ключа |
Аутентификация: в формате OpenAI используется Authorization: Bearer sk-..., в формате Anthropic — x-api-key: sk-...; распознаются оба заголовка.
Формат OpenAI
Terminal
pip install openaimain.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.tokilabs.xyz/v1",
api_key="sk-your-key",
)
resp = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "Расскажи о себе в одном предложении"}],
)
print(resp.choices[0].message.content)Terminal
npm install openaiindex.mjs
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.tokilabs.xyz/v1",
apiKey: "sk-your-key",
});
const resp = await client.chat.completions.create({
model: "gpt-6.1-sol",
messages: [{ role: "user", content: "Расскажи о себе в одном предложении" }],
});
console.log(resp.choices[0].message.content);Terminal (macOS / Linux / Git Bash)
curl https://api.tokilabs.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Расскажи о себе в одном предложении"}]
}'Формат Anthropic
base_url для Anthropic SDK указывается без
/v1.Terminal
pip install anthropicmain.py
import anthropic
client = anthropic.Anthropic(
base_url="https://api.tokilabs.xyz",
api_key="sk-your-key",
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Расскажи о себе в одном предложении"}],
)
print(msg.content[0].text)Terminal
npm install @anthropic-ai/sdkindex.mjs
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://api.tokilabs.xyz",
apiKey: "sk-your-key",
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Расскажи о себе в одном предложении" }],
});
console.log(msg.content[0].text);Terminal (macOS / Linux / Git Bash)
curl https://api.tokilabs.xyz/v1/messages \
-H "x-api-key: sk-your-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Расскажи о себе в одном предложении"}]
}'Чтение из переменных среды
Оба официальных SDK автоматически читают переменные среды. Если задать OPENAI_BASE_URL (значение https://api.tokilabs.xyz/v1) и OPENAI_API_KEY, адрес и ключ в коде указывать не нужно:
Python
from openai import OpenAI
client = OpenAI() # Автоматически используются OPENAI_BASE_URL и OPENAI_API_KEYAnthropic SDK читает ключ из переменной
ANTHROPIC_API_KEY, а Claude Code — из ANTHROPIC_AUTH_TOKEN. При использовании Anthropic SDK в коде дополнительно задайте ANTHROPIC_API_KEY.