Документация API
Всё, что нужно для интеграции с нашим API. Если чего-то не хватает — напишите на support@kupiapi.ru.
Доступные модели
| Сценарий | Провайдер | Модель | ID |
|---|---|---|---|
| API для приложений | OpenAI | GPT-5.4 mini | gpt-5.4-mini |
| API для приложений | OpenAI | GPT-5.4 | gpt-5.4 |
| API для приложений | OpenAI | GPT-5.5 | gpt-5.5 |
| API для приложений | OpenAI | GPT-5.4 nano | gpt-5.4-nano |
| API для приложений | Anthropic | Claude Haiku 4.5 | claude-haiku-4.5 |
| API для приложений | Anthropic | Claude Sonnet 4.6 | claude-sonnet-4.6 |
| API для приложений | Anthropic | Claude Opus 4.7 | claude-opus-4.7 |
| Cursor / Claude Code | OpenAI | GPT-5.4 mini | gpt-5.4-mini |
| Cursor / Claude Code | OpenAI | GPT-5.4 | gpt-5.4 |
| Cursor / Claude Code | OpenAI | GPT-5.5 | gpt-5.5 |
| Cursor / Claude Code | OpenAI | GPT-5.4 nano | gpt-5.4-nano |
| Cursor / Claude Code | Anthropic | Claude Haiku 4.5 | claude-haiku-4.5 |
| Cursor / Claude Code | Anthropic | Claude Sonnet 4.6 | claude-sonnet-4.6 |
| Cursor / Claude Code | Anthropic | Claude Opus 4.7 | claude-opus-4.7 |
Сценарии использования
API для приложений
Подходит для сайтов, Telegram-ботов, SaaS, backend-сервисов и автоматизаций.
API для Cursor / Claude Code
Подходит для AI-кодинга, работы с проектами в IDE, рефакторинга и генерации кода. Эти тарифы рассчитаны на более высокий расход токенов.
Каждый ключ имеет лимит токенов. После исчерпания лимита нужен новый ключ, а списание идёт по фактическим prompt- и completion-токенам. Тарифы для Cursor / Claude Code дороже из-за другого характера нагрузки: IDE чаще отправляет длинный контекст проекта и генерирует более объёмные ответы.
Эндпоинты
API совместим с OpenAI Chat Completions. Используйте любой клиент для OpenAI (Cursor, n8n, OpenAI SDK, LangChain, Claude Code) — он будет работать «из коробки».
POST https://kupiapi.ru/v1/chat/completionsLegacy URL https://kupiapi.ru/api/v1/chat по-прежнему работает.
GET https://kupiapi.ru/v1/modelsПубличный список моделей в OpenAI-формате ({ object: "list", data: [...] }). Если передан валидный ключ, у привязанной к нему модели будет default: true.
Streaming
Запрос с stream: true сейчас обрабатывается как обычный non-stream запрос: ответ возвращается целиком, а в заголовке отдаётся x-kupiapi-stream-fallback: non_stream. Это сделано для совместимости с клиентами, которые включают стриминг по умолчанию (Cursor, n8n, OpenAI SDK ≥ 1.x). В каждом ответе также есть x-kupiapi-stream-supported: false, чтобы клиенты могли надёжно детектировать поддержку реального SSE.
Полноценный SSE-стриминг — отдельный roadmap-пункт; до его релиза список выше остаётся стабильным контрактом.
Формат ошибок
Все ошибки возвращаются в OpenAI-совместимом формате с заголовкомx-request-id для сопоставления с логами поддержки.
{
"error": {
"message": "Баланс токенов по этому ключу закончился…",
"type": "insufficient_quota",
"code": "tokens_exhausted"
}
}Возможные type: invalid_request_error, insufficient_quota, api_error, rate_limit_error, server_error.
Получить список моделей
curl https://kupiapi.ru/v1/models
Авторизация необязательна. Передача Authorization: Bearer … добавляет default: true к модели купленного ключа.
Пополнение существующего ключа
Можно пополнить уже выпущенный ключ через тот же T-Bank без создания нового ключа. Сам ключ не меняется — увеличивается только баланс токенов. Коэффициент списания (billingMultiplier) остаётся таким, каким был в момент покупки или последнего ручного изменения.
1. Превью пополнения (без оплаты):
curl -X POST https://kupiapi.ru/api/keys/topup-preview \
-H "Content-Type: application/json" \
-d '{"apiKey":"rk_live_…","amountRub":150}'Возвращает providerName, tokens.remainingEffective, tokensToAdd, balanceAfterTopup. Полный ключ в ответе не возвращается — только keyPrefix.
2. Запуск платежа:
curl -X POST https://kupiapi.ru/api/checkout/topup \
-H "Content-Type: application/json" \
-d '{"apiKey":"rk_live_…","amountRub":150}'Возвращает paymentUrl — ссылку на T-Bank. После успешной оплаты webhook увеличит tokensPurchased у этого же ключа и запишет строку в BalanceTransaction с уникальным orderId: дубликат webhook не сможет начислить токены повторно.
Аутентификация
Передайте API-ключ как Bearer-токен в заголовке Authorization.
Authorization: Bearer rk_live_xxxxxxxxПример запроса
curl https://kupiapi.ru/v1/chat/completions \
-H "Authorization: Bearer rk_live_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "user", "content": "Привет!"}
],
"temperature": 0.7,
"max_tokens": 500
}'Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| messages | array | Да | Массив сообщений с полями role и content |
| temperature | number | Нет | От 0 до 2. По умолчанию 1. |
| max_tokens | number | Нет | Максимальное количество токенов в ответе. |
Пример ответа
{
"id": "chatcmpl-abc123",
"provider": "openai",
"model": "gpt-5.4-mini",
"content": "Привет! Чем могу помочь?",
"finishReason": "stop",
"usage": {
"promptTokens": 9,
"completionTokens": 12,
"totalTokens": 21
}
}Ошибки
invalid_api_keyAPI-ключ отсутствует, некорректен или не найден.
tokens_exhaustedВсе токены по этому ключу израсходованы. Купите новый ключ.
invalid_requestТело запроса некорректно (проверьте массив messages).
upstream_errorAI-провайдер вернул ошибку. Попробуйте позже.
Важно
- Каждый API-ключ привязан к конкретной модели, выбранной при покупке.
- Расход токенов отслеживается по ключу. Когда лимит исчерпан, ключ деактивируется.
- Учитываются и prompt-, и completion-токены.
- Купите новый ключ в любой момент, чтобы получить свежий лимит токенов.
- По вопросам ошибок и интеграции пишите на support@kupiapi.ru.