← На главную

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

Быстрый старт: пошаговые инструкции

Выберите ваш инструмент и следуйте шагам. Подробные гайды — в разделе Инструкции. Все инструменты подключаются одинаково: Base URL и API-ключ из личного кабинета.

Base URL: https://kupiapi.ru/v1Эндпоинт: /v1/chat/completionsКлюч: rk_live_…

Доступные модели

Один ключ — все провайдеры. Укажите id в поле model. Полный список: GET https://kupiapi.ru/v1/models

OpenAI

  • gpt-5.4-miniGPT-5.4 mini
  • gpt-5.4GPT-5.4
  • gpt-5.5GPT-5.5
  • gpt-5.4-nanoGPT-5.4 nano
  • gpt-4o-miniGPT-4o Mini
  • gpt-4oGPT-4o

Anthropic

  • claude-haiku-4.5Claude Haiku 4.5
  • claude-sonnet-4.6Claude Sonnet 4.6
  • claude-opus-4.7Claude Opus 4.7
  • claude-haikuClaude Haiku
  • claude-sonnetClaude Sonnet
  • claude-opusClaude Opus

DeepSeek

  • deepseek-chatDeepSeek V3
  • deepseek-reasonerDeepSeek R1

Cursor Agent (BYOK)

Для Agent в Cursor добавьте custom model с id kupi-* — они обходят баг Cursor с именами gpt-5.5-* и мапятся на те же модели на нашей стороне.

  • kupi-gpt55-highGPT-5.5, high effort (Agent)
  • kupi-gpt55-mediumGPT-5.5, medium effort
  • kupi-gpt55-lowGPT-5.5, low effort
  • kupi-gpt54-miniGPT-5.4 mini (быстро и дёшево)
  • kupi-gpt54GPT-5.4
  • kupi-claude-sonnetClaude Sonnet
  • kupi-deepseek-chatDeepSeek V3

🖥️ Cursor IDE

  1. Требуется Cursor Pro (или выше) — на Free / Hobby плане Override Base URL заблокирован, BYOK невозможен.
  2. Откройте Cursor → Settings (Ctrl+, / Cmd+,) → Models.
  3. Раскройте API Keys: включите OpenAI API Key и Override OpenAI Base URL.
  4. Base URL: https://kupiapi.ru/v1 · API Key: rk_live_… из кабинета.
  5. Для 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 на таких именах.
  6. В Agent выберите добавленную модель (например kupi-gpt55-high). В Chat можно gpt-5.4-mini, claude-sonnet, deepseek-chat.
  7. Подробнее со скриншотами: /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 (автоматизации)

  1. Credentials → OpenAI API: Base URL со /v1, ключ rk_live_…
  2. Для Claude через Anthropic-ноду: Base URL без /v1 (origin).
  3. В ноде укажите model: gpt-5.4-mini, claude-sonnet или deepseek-chat.
  4. Альтернатива: 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)

  1. pip install openai — создайте клиент с base_url KupiAPI.
  2. model: gpt-5.4-mini (или claude-sonnet, deepseek-chat).
  3. Ключ 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

  1. pip install aider-chat
  2. Задайте OPENAI_API_BASE и OPENAI_API_KEY.
  3. 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)

  1. Extensions → Cline → API Provider: OpenAI Compatible.
  2. Base URL: https://kupiapi.ru/v1, API Key: rk_live_…
  3. 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)

  1. pip install openai / npm install openai
  2. base_url / baseURL = KupiAPI, api_key = rk_live_…
  3. 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)
OpenAIgpt-5.5kupi-gpt55-high
OpenAIgpt-5.4kupi-gpt54
OpenAIgpt-5.4-minikupi-gpt54-mini
OpenAIgpt-5.4-nanokupi-gpt54-nano
OpenAIgpt-4okupi-gpt4o
OpenAIgpt-4o-minikupi-gpt4o-mini
Anthropicclaude-sonnetkupi-claude-sonnetclaude-sonnet
Anthropicclaude-opuskupi-claude-opusclaude-opus
Anthropicclaude-haikukupi-claude-haikuclaude-haiku
DeepSeekdeepseek-chatkupi-deepseek-chat
DeepSeekdeepseek-reasonerkupi-deepseek-reasoner

Полный actual список с пометками о доступности — GET https://kupiapi.ru/v1/models. Для Cursor: подписка Pro обязательна (BYOK на Free / Hobby плане заблокирован).

Полный каталог моделей (по сценариям)

СценарийПровайдерМодельID
API для приложенийOpenAIGPT-5.4 minigpt-5.4-mini
API для приложенийOpenAIGPT-5.4gpt-5.4
API для приложенийOpenAIGPT-5.5gpt-5.5
API для приложенийOpenAIGPT-5.4 nanogpt-5.4-nano
API для приложенийAnthropicClaude Haiku 4.5claude-haiku-4.5
API для приложенийAnthropicClaude Sonnet 4.6claude-sonnet-4.6
API для приложенийAnthropicClaude Opus 4.7claude-opus-4.7
Cursor / Claude CodeOpenAIGPT-5.4 minigpt-5.4-mini
Cursor / Claude CodeOpenAIGPT-5.4gpt-5.4
Cursor / Claude CodeOpenAIGPT-5.5gpt-5.5
Cursor / Claude CodeOpenAIGPT-5.4 nanogpt-5.4-nano
Cursor / Claude CodeAnthropicClaude Haiku 4.5claude-haiku-4.5
Cursor / Claude CodeAnthropicClaude Sonnet 4.6claude-sonnet-4.6
Cursor / Claude CodeAnthropicClaude Opus 4.7claude-opus-4.7
ДополнительноOpenAIGPT-4o Minigpt-4o-mini
ДополнительноOpenAIGPT-4ogpt-4o
ДополнительноAnthropicClaude Haikuclaude-haiku
ДополнительноAnthropicClaude Sonnetclaude-sonnet
ДополнительноAnthropicClaude Opusclaude-opus
ДополнительноDeepSeekDeepSeek V3deepseek-chat
ДополнительноDeepSeekDeepSeek R1deepseek-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/completions

Legacy URL https://kupiapi.ru/api/v1/chat по-прежнему работает.

POST https://kupiapi.ru/v1/messages

Anthropic 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
  }'

Тело запроса

ПолеТипОбязательноОписание
modelstringДаId модели из GET /v1/models — например gpt-5.4-mini, claude-sonnet, deepseek-chat
messagesarrayДаМассив сообщений с полями role и content
temperaturenumberНетОт 0 до 2. По умолчанию 1.
max_tokensnumberНетМаксимальное количество токенов в ответе.

Пример ответа

{
  "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_key

API-ключ не найден или некорректен.

Что делать: Скопируйте ключ из кабинета целиком (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_error

AI-провайдер вернул ошибку.

Что делать: Повторите запрос. В 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.