Документация API
Быстрый старт: пошаговые инструкции
Выберите ваш инструмент и следуйте шагам. Подробные гайды — в разделе Инструкции. Все инструменты подключаются одинаково: Base URL и API-ключ из личного кабинета.
https://kupiapi.ru/v1Эндпоинт: /v1/chat/completionsКлюч: rk_live_…Доступные модели
Один ключ — все провайдеры. Укажите id в поле model. Полный список: GET https://kupiapi.ru/v1/models
OpenAI
gpt-5.4-mini— GPT-5.4 minigpt-5.4— GPT-5.4gpt-5.5— GPT-5.5gpt-5.4-nano— GPT-5.4 nanogpt-4o-mini— GPT-4o Minigpt-4o— GPT-4o
Anthropic
claude-haiku-4.5— Claude Haiku 4.5claude-sonnet-4.6— Claude Sonnet 4.6claude-opus-4.7— Claude Opus 4.7claude-haiku— Claude Haikuclaude-sonnet— Claude Sonnetclaude-opus— Claude Opus
DeepSeek
deepseek-chat— DeepSeek V3deepseek-reasoner— DeepSeek R1
Cursor Agent (BYOK)
Для Agent в Cursor добавьте custom model с id kupi-* — они обходят баг Cursor с именами gpt-5.5-* и мапятся на те же модели на нашей стороне.
kupi-gpt55-high— GPT-5.5, high effort (Agent)kupi-gpt55-medium— GPT-5.5, medium effortkupi-gpt55-low— GPT-5.5, low effortkupi-gpt54-mini— GPT-5.4 mini (быстро и дёшево)kupi-gpt54— GPT-5.4kupi-claude-sonnet— Claude Sonnetkupi-deepseek-chat— DeepSeek V3
🖥️ Cursor IDE
- Требуется Cursor Pro (или выше) — на Free / Hobby плане Override Base URL заблокирован, BYOK невозможен.
- Откройте Cursor → Settings (Ctrl+, / Cmd+,) → Models.
- Раскройте API Keys: включите OpenAI API Key и Override OpenAI Base URL.
- Base URL: https://kupiapi.ru/v1 · API Key: rk_live_… из кабинета.
- Для Agent (BYOK): Settings → Models → Add custom model — id kupi-* (kupi-gpt55-high, kupi-gpt55-medium, kupi-gpt55-low, kupi-gpt54-mini, kupi-gpt54, kupi-claude-sonnet, kupi-deepseek-chat). Не используйте gpt-5.5-high в Agent — Cursor ломает BYOK на таких именах.
- В Agent выберите добавленную модель (например kupi-gpt55-high). В Chat можно gpt-5.4-mini, claude-sonnet, deepseek-chat.
- Подробнее со скриншотами: /instructions/cursor
# Cursor Settings → Models → API Keys Base URL: https://kupiapi.ru/v1 API Key: rk_live_xxxxxxxx # Agent (Add custom model): Model: kupi-gpt55-high # или: kupi-gpt54-mini, kupi-claude-sonnet, kupi-deepseek-chat
Частые ошибки
- Без подписки Cursor Pro поля OpenAI API Key и Override Base URL заблокированы — это ограничение Cursor, не KupiAPI.
- Base URL — https://kupiapi.ru/v1 без слеша в конце.
- Composer / Auto / thinking-модели Cursor не работают с BYOK — только custom kupi-* или стандартные id.
- Ошибка routing_unsupported на gpt-5.5-* → замените на kupi-gpt55-high.
- Баланс кошелька > 0, ключ rk_live_… (не sk-… OpenAI).
🔗 n8n (автоматизации)
- Credentials → OpenAI API: Base URL со /v1, ключ rk_live_…
- Для Claude через Anthropic-ноду: Base URL без /v1 (origin).
- В ноде укажите model: gpt-5.4-mini, claude-sonnet или deepseek-chat.
- Альтернатива: HTTP Request → POST /v1/chat/completions.
# OpenAI API credential: Base URL: https://kupiapi.ru/v1 API Key: rk_live_xxxxxxxx Model: gpt-5.4-mini # Anthropic credential (Claude Sonnet): Base URL: https://kupiapi.ru API Key: rk_live_xxxxxxxx Model: claude-sonnet
Частые ошибки
- OpenAI credential: Base URL с /v1. Anthropic credential: origin без /v1 (иначе /v1/v1/messages).
- Тест credential в n8n может быть красным — сохраните и проверьте запуском workflow.
- Один ключ rk_live_… для всех провайдеров — меняется только model.
🤖 Telegram-бот (Python)
- pip install openai — создайте клиент с base_url KupiAPI.
- model: gpt-5.4-mini (или claude-sonnet, deepseek-chat).
- Ключ KupiAPI — только на сервере, не в клиенте бота.
from openai import OpenAI
client = OpenAI(
api_key="rk_live_xxxxxxxx",
base_url="https://kupiapi.ru/v1",
)
response = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)Частые ошибки
- openai SDK >= 1.0. Поле model — id из GET /v1/models.
- TELEGRAM_BOT_TOKEN и KUPIAPI_KEY — разные секреты.
- Оборачивайте вызов в try/except — при нулевом балансе будет payment_required.
🛠️ Aider
- pip install aider-chat
- Задайте OPENAI_API_BASE и OPENAI_API_KEY.
- aider --model gpt-5.4-mini (или claude-sonnet, deepseek-chat).
export OPENAI_API_BASE=https://kupiapi.ru/v1 export OPENAI_API_KEY=rk_live_xxxxxxxx aider --model gpt-5.4-mini
Частые ошибки
- Модель указывается без префикса openai/ — например gpt-5.4-mini.
- Переменные окружения — до запуска aider.
- Список моделей: GET /v1/models.
🧩 Cline (VS Code)
- Extensions → Cline → API Provider: OpenAI Compatible.
- Base URL: https://kupiapi.ru/v1, API Key: rk_live_…
- Model: gpt-5.4-mini, claude-sonnet или deepseek-chat (вручную).
Provider: OpenAI Compatible Base URL: https://kupiapi.ru/v1 API Key: rk_live_xxxxxxxx Model: gpt-5.4-mini
Частые ошибки
- Провайдер OpenAI Compatible, не OpenAI.
- Модель может не быть в выпадающем списке — введите id вручную.
- Перезагрузите VS Code, если настройки не применились.
📦 OpenAI SDK (Python / Node.js)
- pip install openai / npm install openai
- base_url / baseURL = KupiAPI, api_key = rk_live_…
- chat.completions.create с полем model из каталога.
# Python
from openai import OpenAI
client = OpenAI(api_key="rk_live_…", base_url="https://kupiapi.ru/v1")
client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Привет!"}],
)
// Node.js
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "rk_live_…", baseURL: "https://kupiapi.ru/v1" });Частые ошибки
- Python: base_url. Node.js: baseURL. SDK >= 1.0 / >= 4.0.
- Поле model обязательно — gpt-5.4-mini, claude-sonnet, deepseek-chat и др.
- Актуальный список: GET /v1/models.
Идентификаторы моделей в разных клиентах
Одна и та же модель в API, Cursor и Claude Code пишется по-разному. Это единая таблица соответствий — без неё легко запутаться, особенно из-за того, что Cursor BYOK ломается на именах с подстрокой gpt-5.5 и для него мы держим kupi-* алиасы.
| Провайдер | В API / OpenAI SDK | В Cursor (Add custom model) | В Claude Code (/model) |
|---|---|---|---|
| OpenAI | gpt-5.5 | kupi-gpt55-high | — |
| OpenAI | gpt-5.4 | kupi-gpt54 | — |
| OpenAI | gpt-5.4-mini | kupi-gpt54-mini | — |
| OpenAI | gpt-5.4-nano | kupi-gpt54-nano | — |
| OpenAI | gpt-4o | kupi-gpt4o | — |
| OpenAI | gpt-4o-mini | kupi-gpt4o-mini | — |
| Anthropic | claude-sonnet | kupi-claude-sonnet | claude-sonnet |
| Anthropic | claude-opus | kupi-claude-opus | claude-opus |
| Anthropic | claude-haiku | kupi-claude-haiku | claude-haiku |
| DeepSeek | deepseek-chat | kupi-deepseek-chat | — |
| DeepSeek | deepseek-reasoner | kupi-deepseek-reasoner | — |
Полный actual список с пометками о доступности — GET https://kupiapi.ru/v1/models. Для Cursor: подписка Pro обязательна (BYOK на Free / Hobby плане заблокирован).
Полный каталог моделей (по сценариям)
| Сценарий | Провайдер | Модель | 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 |
| Дополнительно | OpenAI | GPT-4o Mini | gpt-4o-mini |
| Дополнительно | OpenAI | GPT-4o | gpt-4o |
| Дополнительно | Anthropic | Claude Haiku | claude-haiku |
| Дополнительно | Anthropic | Claude Sonnet | claude-sonnet |
| Дополнительно | Anthropic | Claude Opus | claude-opus |
| Дополнительно | DeepSeek | DeepSeek V3 | deepseek-chat |
| Дополнительно | DeepSeek | DeepSeek R1 | deepseek-reasoner |
Сценарии использования
API для приложений
Подходит для сайтов, Telegram-ботов, SaaS, backend-сервисов и автоматизаций.
API для Cursor / Claude Code
Подходит для AI-кодинга в IDE. Расход выше из‑за длинного контекста — следите за балансом в кабинете.
Биллинг pay-as-you-go: с баланса в рублях списывается стоимость input- и output-токенов. Один ключ — все провайдеры. При нулевом балансе пополните кабинет — ключ продолжит работать.
Эндпоинты
API совместим с OpenAI Chat Completions и Anthropic Messages. Используйте Cursor, n8n, OpenAI SDK, Claude Code — один ключ rk_live_…, провайдер выбирается полем model (GPT, Claude, DeepSeek).
POST https://kupiapi.ru/v1/chat/completionsLegacy URL https://kupiapi.ru/api/v1/chat по-прежнему работает.
POST https://kupiapi.ru/v1/messagesAnthropic Messages API (Claude Code, Anthropic SDK). Тот же ключ rk_live_…, модели claude-sonnet, claude-opus, claude-haiku (и версии 4.x).
GET https://kupiapi.ru/v1/modelsПубличный список моделей в OpenAI-формате ({ object: "list", data: [...] }). Если передан валидный ключ, у привязанной к нему модели будет default: true.
Streaming
Эндпоинт /v1/chat/completions поддерживает stream: true — для OpenAI-совместимых моделей (GPT, DeepSeek и др.) ответ идёт как SSE. Заголовок x-kupiapi-stream-supported: true означает, что клиент может включать стриминг. Если upstream не отдал поток, возможен fallback на обычный JSON-ответ.
Частые ошибки интеграции
Проверьте эти пункты, если клиент (Cursor, n8n, SDK) не подключается с первого раза.
- Неверный Base URL. OpenAI-клиенты:
https://kupiapi.ru/v1— без слеша в конце. Anthropic в n8n:https://kupiapi.ru(без /v1). Неapi.openai.com. - Чужой ключ. Используйте только
rk_live_…из кабинета KupiAPI, неsk-…OpenAI. - Пробелы в ключе. Скопируйте ключ целиком, без пробелов и переносов строк.
- Нет поля model. Укажите модель явно или возьмите список через
GET https://kupiapi.ru/v1/models. - Legacy-ключ. Старые пакетные ключи работают только с одним провайдером — для всех моделей пополните кошелёк в кабинете.
- Нулевой баланс. Ошибка
payment_required(HTTP 402) — пополните кабинет, ключ менять не нужно.
Формат ошибок
Все ошибки возвращаются в OpenAI-совместимом формате с заголовкомx-request-id для сопоставления с логами поддержки.
{
"error": {
"message": "Недостаточно средств на кошельке.",
"type": "insufficient_quota",
"code": "payment_required",
"hint": "Пополните баланс в кабинете — API-ключ и Base URL менять не нужно."
}
}Возможные type: invalid_request_error, insufficient_quota, api_error, rate_limit_error, server_error.
Получить список моделей
curl https://kupiapi.ru/v1/models
Авторизация необязательна. Передача Authorization: Bearer … добавляет default: true к модели купленного ключа.
Баланс и пополнение
Основной способ — личный кабинет: /cabinet. Пополнение от 200 ₽ картой или СБП, списание по факту каждого запроса. API-ключ создаётся в кабинете и не меняется при пополнении.
1. Проверка баланса по API-ключу:
curl -X POST https://kupiapi.ru/api/keys/balance \
-H "Content-Type: application/json" \
-d '{"apiKey":"rk_live_…"}'Возвращает billingMode: wallet, balanceRub, status. Полный ключ в ответе не возвращается.
2. Пополнение кошелька (авторизованный кабинет):
curl -X POST https://kupiapi.ru/api/cabinet/wallet-deposit \
-H "Content-Type: application/json" \
-H "Cookie: kupiapi_cabinet_session=…" \
-d '{"amountRub":500}'3. Пополнение с сайта (без сессии, по email):
curl -X POST https://kupiapi.ru/api/public/wallet-deposit \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","amountRub":500}'Возвращает paymentUrl — ссылку на Robokassa. После оплаты webhook зачислит рубли на кошелёк email; при первом пополнении выдаётся API-ключ. Legacy POST /api/checkout и /api/checkout/topup отключены (410).
Аутентификация
Передайте 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 '{
"model": "gpt-5.4-mini",
"messages": [
{"role": "user", "content": "Привет!"}
],
"temperature": 0.7,
"max_tokens": 500
}'Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| model | string | Да | Id модели из GET /v1/models — например gpt-5.4-mini, claude-sonnet, deepseek-chat |
| messages | array | Да | Массив сообщений с полями role и content |
| temperature | number | Нет | От 0 до 2. По умолчанию 1. |
| max_tokens | number | Нет | Максимальное количество токенов в ответе. |
Пример ответа
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1710000000,
"model": "gpt-5.4-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Привет! Чем могу помочь?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}Ошибки API
Поле hint подсказывает, что исправить. В поддержку передавайте x-request-id из заголовка ответа.
invalid_auth_formatНеверный формат заголовка Authorization.
Что делать: Используйте ровно: Authorization: Bearer rk_live_ваш_ключ (слово Bearer, пробел, ключ без кавычек).
invalid_api_keyAPI-ключ не найден или некорректен.
Что делать: Скопируйте ключ из кабинета целиком (rk_live_…), без пробелов. Base URL: https://kupiapi.ru/v1, не api.openai.com.
trial_key_expiredПробный ключ истёк (72 часа).
Что делать: Пополните баланс от 200 ₽ в кабинете https://kupiapi.ru/cabinet — получите постоянный ключ.
payment_requiredНедостаточно средств на кошельке.
Что делать: Пополните баланс в кабинете https://kupiapi.ru/cabinet — API-ключ и Base URL менять не нужно.
invalid_requestНекорректный запрос.
Что делать: Проверьте JSON: поле messages (массив), model (строка). Список моделей: GET https://kupiapi.ru/v1/models
model_provider_mismatchМодель не поддерживается.
Что делать: Укажите model из списка GET https://kupiapi.ru/v1/models (gpt-5.4-mini, claude-sonnet, deepseek-chat).
provider_unavailableВыбранный провайдер временно недоступен.
Что делать: Попробуйте другую модель (например gpt-5.4-mini или claude-sonnet) или повторите позже.
upstream_errorAI-провайдер вернул ошибку.
Что делать: Повторите запрос. В Cursor Agent с BYOK для GPT-5.5 используйте custom model kupi-gpt55-high (не gpt-5.5-high). Альтернатива: gpt-5.4-mini или claude-sonnet.
key_rate_limitedСлишком много запросов по этому API-ключу.
Что делать: Снизьте частоту или распределите нагрузку. Смотрите Retry-After в заголовке ответа.
Важно
- Один API-ключ на все модели (GPT, Claude, DeepSeek) — укажите нужную в поле
model. - Баланс в рублях в личном кабинете. При нуле API вернёт
payment_required— пополните кошелёк. - Списание по input- и output-токенам — тарифы на /pricing.
- Короткие имена Claude (
claude-sonnet) и id Cursor (kupi-gpt55-high) — алиасы, мапятся на актуальные модели. - По вопросам ошибок и интеграции пишите на Morozov.stepan.dme@yandex.ru.