Подключение за пять минут
Endpoint совместим с форматом OpenAI. Если ваш клиент умеет работать с OpenAI, он уже умеет работать с нами — нужно поменять две настройки.
Быстрый старт
Зарегистрируйтесь, скопируйте ключ в кабинете и укажите в клиенте два значения:
| Base URL | https://api.shugg.ru/v1 |
|---|---|
| API Key | sh_live_… |
# pip install openai
from openai import OpenAI
client = OpenAI(
base_url="https://api.shugg.ru/v1",
api_key="sh_live_ваш_ключ",
)
answer = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Привет!"}],
)
print(answer.choices[0].message.content)
// npm i openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.shugg.ru/v1",
apiKey: process.env.SHUGG_KEY,
});
const answer = await client.chat.completions.create({
model: "gpt-5.6-terra",
messages: [{ role: "user", content: "Привет!" }],
});
console.log(answer.choices[0].message.content);
curl https://api.shugg.ru/v1/chat/completions \
-H "Authorization: Bearer sh_live_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Привет!"}],
"stream": true
}'
# Cursor → Settings → Models → OpenAI API
Base URL: https://api.shugg.ru/v1
API Key: sh_live_ваш_ключ
# Затем добавьте нужные модели из каталога:
claude-sonnet-5
claude-opus-5
gpt-5.6-terra
gpt-5.6-luna
grok-4.6
grok-4.5
grok-image
# Так же настраиваются Cline, Continue, n8n
# и любой клиент с поддержкой OpenAI API.
Ключи и доступ
Ключ передаётся в заголовке Authorization: Bearer sh_live_…. На аккаунт — до 10 активных ключей, все они тратят один общий баланс.
- Полный ключ показывается один раз при создании — дальше в кабинете видны только последние символы.
- Отзыв ключа действует мгновенно: запросы с ним начинают получать
invalid_api_key. - Ключ не должен попадать в браузерный код: запросы к API отправляйте со своего сервера или бота.
Endpoints
| Метод | Путь | Назначение |
|---|---|---|
| POST | /v1/chat/completions | Основной запрос к текстовым моделям |
| GET | /v1/models | Список доступных моделей и их коэффициентов |
| POST | /v1/images/generations | Генерация изображений |
Поддерживаются поля messages, temperature, top_p, max_tokens, stop, stream, а также tools и tool_choice у моделей, где вызов инструментов доступен.
Потоковый ответ
Передайте "stream": true — ответ придёт server-sent событиями в том же формате, что и у OpenAI. Последнее событие перед [DONE] содержит блок usage с фактическим расходом:
{
"choices": [{ "delta": {}, "finish_reason": "stop" }],
"usage": {
"prompt_tokens": 812,
"completion_tokens": 1104,
"cost_tokens": 6332
}
}
Учёт токенов
Баланс хранится в токенах. Стоимость запроса считается по формуле:
токены = токены_запроса × коэффициент_входа + токены_ответа × коэффициент_выхода
Коэффициенты каждой модели возвращает GET /v1/models и показывает страница тарифов. Перед дорогим запросом резервируется прогноз по max_tokens, после ответа выполняется финальный расчёт и неиспользованная часть резерва возвращается.
Ошибки
Ошибка приходит одним объектом и сразу отвечает на три вопроса: что случилось, списаны ли токены и можно ли повторить запрос.
{
"error": {
"type": "insufficient_quota",
"origin": "billing",
"title": "Не хватает токенов",
"message": "На балансе меньше токенов, чем нужно для запроса.",
"action": "Пополните баланс через FunPay: 1 штука = 1 млн токенов.",
"billing": "Токены не списаны.",
"retryable": false,
"request_id": "62d51aa1ac009cd0"
}
}
| Код | Когда возникает | Повтор |
|---|---|---|
invalid_api_key | Ключ не найден, отозван или скопирован не полностью | нет |
insufficient_quota | На общем балансе аккаунта не хватает токенов | нет |
model_not_found | Указан идентификатор, которого нет в каталоге | нет |
rate_limit_exceeded | Слишком много запросов в минуту | да |
upstream_error | Ошибка на стороне поставщика модели | да |
upstream_timeout | Модель не ответила за отведённое время | да |
Заголовок X-Request-ID есть в каждом ответе. С ним поддержка поднимает карточку запроса за минуту.
Лимиты
По умолчанию действует ограничение 60 запросов в минуту на ключ. Баланс при этом общий: расход любого ключа уменьшает пул всего аккаунта. Если запросов в минуту нужно больше — напишите в поддержку.
Готовые интеграции
| Инструмент | Что указать |
|---|---|
| Cursor | Settings → Models → OpenAI API: Base URL и ключ, затем добавить нужные id моделей |
| Cline / Continue | Провайдер «OpenAI Compatible», тот же Base URL и ключ |
| n8n, Make | Нода OpenAI с пользовательским Base URL |
| Свой бот | Любой SDK OpenAI: достаточно заменить base_url |
Пришлите request id, модель, endpoint и время запроса — этого хватает, чтобы найти причину.
Написать в поддержку