Документация

Klavo API совместим с OpenAI: меняете базовый адрес и ключ — и ваш код работает с десятками моделей. Базовый адрес: https://api.klavo.ru/v1.

Быстрый старт

  1. Зарегистрируйтесь и пополните баланс в разделе «Тариф».
  2. Создайте ключ в Ключах API. Ключ показывается один раз.
  3. Отправьте запрос любым SDK OpenAI:
from openai import OpenAI
client = OpenAI(
base_url="https://api.klavo.ru/v1",
api_key="kl-…"
)
response = client.chat.completions.create(
model="qwen-3.8-27b",
messages=[{"role": "user", "content": "Привет! Что ты умеешь?"}],
temperature=0.7,
max_tokens=2048
)
print(response.choices[0].message.content)
curl https://api.klavo.ru/v1/chat/completions \
-H "Authorization: Bearer kl-…" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-3.8-27b",
"messages": [
{
"role": "user",
"content": "Привет! Что ты умеешь?"
}
],
"temperature": 0.7,
"max_tokens": 2048,
"stream": true
}'

Авторизация

Передавайте ключ в заголовке Authorization: Bearer <ключ>. Ключ привязан к вашему аккаунту: все запросы по нему списываются с вашего баланса и видны в разделе «Использование». Храните ключ только на сервере. Скомпрометированный ключ перевыпустите или отзовите — старый перестанет работать сразу.

Эндпоинты

POST/v1/chat/completionsЧат-модели в формате OpenAI: стрим, инструменты, JSON-ответы
POST/v1/completionsДополнение текста (FIM, старый формат OpenAI)
POST/v1/embeddingsВекторные представления текста
POST/v1/messagesЧат в формате Anthropic Messages
GET/v1/modelsКаталог: окно контекста, режимы, уровни рассуждения

Для агентов и долгих диалогов передавайте заголовок x-klavo-session-id — шаги одной сессии попадут на сервер, где их префикс уже в кэше: быстрее и дешевле.

Режимы работы с данными

Поле routing_mode в теле запроса сужает, где обрабатываются данные: sovereign — только наши серверы в России, запросы не хранятся; national — серверы на территории России; extended — плюс внешние провайдеры, в том числе за пределами России. Режим по умолчанию задаётся в настройках. Режимы модели видны в каталоге. Сейчас все модели каталога работают только в режиме extended.

Стоимость и баланс

Перед запросом резервируется оценка: промпт по цене входа и ответ до max_tokens по цене выхода. После ответа списывается факт, остаток резерва возвращается. Без max_tokens резервируется ответ на 16 384 токена; если баланса меньше, ответ укорачивается до доступного. В объекте usage ответа есть поле credits — сколько стоил запрос, а заголовок X-Klavo-Balance-Remaining-Credits показывает остаток. Подробнее — на странице цен.

Ошибки

Тело ошибки: {"error":{"type","code","message","request_id"}}. Заголовок x-should-retry подсказывает, стоит ли повторять.

HTTPcodeЧто значит
401invalid_api_keyКлюч неверный, отозван или истёк
402insufficient_balanceНа балансе не хватает на запрос. В ответе есть affordable_tokens — сколько токенов ответа баланс оплатит
403policy_deniedМодель не работает в запрошенном режиме данных
404model_not_foundНет такой модели или она недоступна вашему аккаунту
400context_length_exceededПромпт больше окна контекста модели в этом режиме
429rate_limitedСлишком много запросов; ждите Retry-After секунд
503balance_unavailableБаланс временно нельзя проверить; повторите через Retry-After
503capacity_exhaustedВсе серверы модели заняты или недоступны