Документация
API за пять минут
Один адрес, один ключ, формат OpenAI Chat Completions. Меняете base_url в существующем коде — и работаете с DeepSeek, Qwen, GLM, Kimi, Claude, GPT, Gemini и Grok из России.
Быстрый старт
Зарегистрируйтесь
Аккаунт создаётся на app.kitai-api.ru. Подтверждение почты не требуется: ключи выпускаются сразу после регистрации.
Создайте API-ключ
В кабинете, раздел «Ключи». Ключ начинается с sk-kitai- и показывается один раз — сохраните его в менеджере секретов. Для разных сервисов лучше выпускать разные ключи.
Отправьте запрос
На адрес https://api.kitai-api.ru/v1/chat/completions с заголовком Authorization: Bearer и идентификатором модели из каталога.
curl https://api.kitai-api.ru/v1/chat/completions \
-H "Authorization: Bearer sk-kitai-•••" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"Привет"}]}'
from openai import OpenAI
client = OpenAI(base_url="https://api.kitai-api.ru/v1",
api_key="sk-kitai-•••")
answer = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Привет"}],
)
print(answer.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.kitai-api.ru/v1",
apiKey: "sk-kitai-•••",
});
const answer = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "Привет" }],
});
console.log(answer.choices[0].message.content);
Аутентификация
Ключ передаётся в заголовке Authorization:
Authorization: Bearer sk-kitai-•••
- Ключи выпускаются и отзываются в кабинете. Отозванный ключ перестаёт работать сразу.
- Держите ключ на сервере. Не вставляйте его в код фронтенда, мобильного приложения или публичный репозиторий.
- Если ключ попал в чужие руки, отзовите его в кабинете и выпустите новый. Запросы по старому ключу после отзыва не проходят.
- Один аккаунт может иметь несколько ключей: удобно развести по проектам и по-разному ограничить расход.
Запрос к модели
POST https://api.kitai-api.ru/v1/chat/completions
| Поле | Тип | Что делает |
|---|---|---|
| model | строка, обязательно | ID модели из каталога. Регистр и дефисы важны. |
| messages | массив, обязательно | История диалога: объекты с role (system, user, assistant) и content. |
| temperature | число, необязательно | Разброс ответов. Ниже значение — предсказуемее, выше — разнообразнее. |
| max_tokens | целое, необязательно | Предел длины ответа в токенах. |
| top_p | число, необязательно | Альтернатива температуре: отбор вероятностной массы. Обычно меняют что-то одно. |
| stream | логическое, необязательно | Ответ потоком, см. раздел Стриминг. |
Ответ приходит в формате OpenAI: choices[0].message.content — текст, usage — сколько токенов ушло на вход и выход. Эти же цифры попадают в биллинг и в журнал кабинета.
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "deepseek-v4-flash",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "Здравствуйте!" },
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20
}
}
Примеры
Перенос с OpenAI в Python. Ключ читается из переменной окружения, а не хранится в коде:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.kitai-api.ru/v1",
api_key=os.environ["KITAI_API_KEY"],
)
answer = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "Отвечай коротко и по делу."},
{"role": "user", "content": "Сравни два тарифа на доставку."},
],
temperature=0.3,
max_tokens=800,
)
print(answer.choices[0].message.content)
Смена модели — это одна строка. Тот же код работает с qwen3.8-max, glm-5.3, kimi-k3, claude-sonnet-5 и остальными ID из каталога.
Стриминг
С stream: true ответ приходит по частям, как в OpenAI. Это удобно для чатов: пользователь видит текст, не дожидаясь конца генерации.
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Короткий план запуска"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
На уровне HTTP это поток text/event-stream: строки data: {...} с кусками ответа и завершающая строка data: [DONE]. В curl добавьте -N, чтобы отключить буферизацию.
Ошибки
Коды стандартные для HTTP и OpenAI-совместимых клиентов. В теле ошибки приходит JSON с полем error.message — по нему видно причину.
| Код | Что значит | Что делать |
|---|---|---|
| 400 | Ошибка в запросе: неверный JSON, пустой messages, неизвестный ID модели | Проверить тело запроса и ID по каталогу |
| 401 | Ключ не передан, неверный или отозван | Проверить заголовок Authorization, выпустить новый ключ |
| 402 / 403 | Недостаточно средств или доступ к модели ограничен | Пополнить баланс, проверить лимиты ключа |
| 404 | Неверный адрес запроса | Проверить base_url и /chat/completions |
| 429 | Слишком много запросов | Снизить параллельность, повторить с паузой |
| 500–504 | Сбой на стороне провайдера модели | Повторить позже; доступность — на странице статуса |
При повторных отправках используйте нарастающую паузу и не дублируйте уже оплаченный запрос без необходимости.
Лимиты и бюджеты
- Лимит расходов задаётся на каждый ключ в кабинете. Когда потолок достигнут, запросы по этому ключу останавливаются, остальные ключи работают.
- Баланс общий на аккаунт. Пополнение — картой РФ или через СБП; для юрлиц — счёт с НДС от 5 000 ₽.
- Расход виден в кабинете по каждому запросу: модель, токены, стоимость, дата и время. Содержание запросов в журнал не пишется.
- Если нужен лимит выше или отдельные условия по нагрузке, напишите в Telegram — обсудим.
Идентификаторы моделей
Полный список — на странице каталога: 62 идентификатора, семейства и цены. ID чувствительны к регистру и дефисам: deepseek-v4-flash и deepseek-v4-pro — разные модели.
Если модель не отвечает, проверьте живой статус и попробуйте другую из того же семейства. На время сбоя у провайдера запрос можно повторить позже или переключить на резервную модель.
Поддержка
Вопросы по подключению, счёту и документам — в Telegram-бот @SkynetAIbiz_bot или на sale@tdmm.pro. По безопасности и обработке данных — страница «Безопасность и 152-ФЗ».
Текстовая версия ключевых страниц для LLM и поисковых агентов: llms.txt.
Готовы попробовать? Регистрация занимает минуту, ключ выпускается сразу.
Создать аккаунт