ScalUP · API v1
API для разработчиков
Подключайте чат-модели ScalUP к своим приложениям и ботам по REST API. Один баланс с личным кабинетом, оплата в рублях, никаких отдельных подписок на провайдеров.
Ключ доступа
Создайте ключ в разделе Настройки → API. Ключ показывается один раз в момент создания — сохраните его сразу. Передавайте его в заголовке каждого запроса:
Authorization: Bearer scalup_live_...Список моделей
Доступные чат- и image-модели, а также их цены, возвращает:
GET /api/v1/modelscurl https://scalup.ru/api/v1/models \
-H "Authorization: Bearer scalup_live_..."Изображения
Генерация изображений асинхронная: сначала создайте задачу, затем опрашивайте её статус. Укажите id image-модели из GET /api/v1/models.
POST /api/v1/images/generations
Content-Type: application/json
{
"model": "your-image-model",
"prompt": "Editorial portrait of a red fox in a snowy forest",
"size": "3:4",
"output_format": "webp"
}Ответ 202 содержит id задачи. Получите её через GET /api/v1/images/{id}; после статуса succeeded в полеdata[0].url будет приватная ссылка на файл. Для скачивания передайте тот же заголовок Authorization.
Чат
Запрос к модели в совместимом с OpenAI формате. История диалога — на стороне вашего приложения: каждый запрос содержит полный список сообщений.
POST /api/v1/chat/completions
Content-Type: application/json
{
"model": "gpt-4o-mini",
"messages": [
{ "role": "user", "content": "Привет! Расскажи, что ты умеешь." }
]
}curl https://scalup.ru/api/v1/chat/completions \
-H "Authorization: Bearer scalup_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{ "role": "user", "content": "Привет!" }]
}'Ответ:
{
"id": "cku1a2b3...",
"object": "chat.completion",
"created": 1753350000,
"model": "gpt-4o-mini",
"choices": [{ "index": 0, "message": { "role": "assistant", "content": "Привет! Я..." }, "finish_reason": "stop" }],
"usage": { "prompt_tokens": 12, "completion_tokens": 48, "total_tokens": 60, "credits_charged": 3 }
}Параметр max_tokens (опционально, до 8000) ограничивает резерв кредитов под ответ — как и в веб-чате, фактическое списание считается по итоговым токенам, а не по резерву.
Также поддерживаются temperature,top_p,stop иresponse_format: { type: "json_object" }. JSON-режим следует использовать вместе с явной инструкцией модели вернуть валидный JSON.
Для потоковой выдачи передайте "stream": true. Ответ будет Server-Sent Events: чанки chat.completion.chunk, затем [DONE].
curl -N https://scalup.ru/api/v1/chat/completions \
-H "Authorization: Bearer scalup_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"stream": true,
"messages": [{ "role": "user", "content": "Привет!" }]
}'Биллинг
Каждый вызов списывает кредиты с общего баланса аккаунта — того же, что используется в веб-версии и Telegram-боте. Стоимость операции фиксируется по факту токенов ответа; при ошибке провайдера списанные кредиты возвращаются автоматически.
Лимиты
60 запросов в минуту на один ключ. При превышении — ответ 429 с заголовком Retry-After (секунды до сброса).
Ошибки
| HTTP | type | Причина |
|---|---|---|
| 401 | authentication_error | Ключ отсутствует, неверен или отозван |
| 402 | insufficient_balance | Недостаточно кредитов на балансе аккаунта |
| 404 | not_found_error | Модель с таким id недоступна |
| 429 | rate_limit_error | Превышен лимит запросов (60 в минуту на ключ) |
| 502 | provider_error | Ошибка провайдера модели. Кредиты возвращены на баланс |
Тело ответа при ошибке: { "error": { "message": "...", "type": "..." } }