// developer documentation

Corevia VPS REST API

6 endpoint'ов для управления выделенным VPS из любого скрипта или AI-агента (Claude Code, Cursor, custom code). Bearer-аутентификация, JSON-ответы, идемпотентные операции.

База URL: https://app.sl-claw.tech
Версия: v1 (стабильная с 2026-06-01)
SLA: 99.9% uptime (тот же что для cabinet)
OpenAPI 3.1 spec: app.sl-claw.tech/api/box/openapi — импорт в Postman / Bruno / Insomnia, генерация SDK
MCP server для Claude Code: github.com/coreviaflow/sl-claw-mcp (zero-dep, single-file)

Быстрый старт

  1. Зарегистрируй аккаунт на app.sl-claw.tech (если еще нет)
  2. Купи Corevia VPS на sl-claw.tech/box
  3. Зайди в кабинет → API ключи → создай ключ (формат cv_xxxxx)
  4. Используй ключ в Authorization header:
curl -H "Authorization: Bearer cv_..." https://app.sl-claw.tech/api/box

Аутентификация

API поддерживает два режима:

  • Bearer token — для скриптов, Claude Code, MCP, CI. Создается в кабинете /portal/api-keys, хранится hashed в БД (scrypt), показывается один раз.
  • Cabinet session cookie — автоматически при вызовах из UI кабинета. Не используется внешними клиентами.
⚠️ Безопасность. Никогда не коммить ключ в публичные репозитории. Храни в .env / 1Password / GitHub Secrets. При утечке — DELETE /api/account/api-key и сгенерируй новый.

Endpoints

GET/api/box

Список всех VPS-боксов, принадлежащих твоему tenant'у. Не делает живых запросов к Contabo (быстро).
curl -H "Authorization: Bearer cv_..." https://app.sl-claw.tech/api/box
{
  "ok": true,
  "count": 2,
  "boxes": [
    { "id": "cl_xyz", "domain_slug": "cafemario", "bot_url": "https://cafemario.bot.sl-claw.tech", "status": "ACTIVE", "tier": {...}, "mrr_usd": 29, ... }
  ]
}

GET/api/box/:id/status

:id = либо Prisma id (cl_xxx), либо domain_slug (cafemario) — что удобнее. Делает живой запрос к Contabo (200-500ms latency).
curl -H "Authorization: Bearer cv_..." \
  https://app.sl-claw.tech/api/box/cafemario/status

POST/api/box/:id/restart

Soft reboot VPS. Бот будет недоступен 30-60 секунд. Только для ACTIVE / GRACE статуса (409 для остальных).
curl -X POST -H "Authorization: Bearer cv_..." \
  https://app.sl-claw.tech/api/box/cafemario/restart

POST/api/box/:id/cancel

Отменяет подписку, Contabo VPS останавливается. В течение 30 дней после покупки — eligible для refund (написать на support@sl-claw.tech).
curl -X POST -H "Authorization: Bearer cv_..." \
  https://app.sl-claw.tech/api/box/cafemario/cancel

POST/api/box/:id/upgrade

Меняет тариф (Starter → Growth → Scale). Тело: {"catalogProductId": "V70"}. V1: записывает intent, наш ops мигрирует за 24h (данные сохраняются).
curl -X POST -H "Authorization: Bearer cv_..." \
  -H "Content-Type: application/json" \
  -d '{"catalogProductId":"V70"}' \
  https://app.sl-claw.tech/api/box/cafemario/upgrade
Доступные productId: V68 (4 vCPU, $19), V69 (6 vCPU, $29), V70 (8 vCPU, $59). Больше — Custom через support.

GET/api/box/:id/logs?lines=200

Последние N строк логов бот-контейнера на VPS (SSH-tail). Cap: 2000. Auth — твой Bearer-токен, SSH-ключ — наш (на server-side, ты не видишь).
curl -H "Authorization: Bearer cv_..." \
  "https://app.sl-claw.tech/api/box/cafemario/logs?lines=500"

Использование в Claude Code

Сохрани ключ в env, затем просто говори Claude Code человеческим языком:

export COREVIA_TOKEN=cv_...
# в Claude Code:
"покажи статус моего vps cafemario"
"перезагрузи cafemario"
"покажи последние 500 строк логов cafemario"
"апгрейдь cafemario на тариф Scale"

Claude Code сам соберет правильный curl с твоим токеном из env.

Errors

HTTPКогдаЧто делать
401Нет / неверный Bearer токенПроверь header. Сгенерируй новый ключ.
404Бокс не найден (или не твой)Проверь slug. Список через GET /api/box.
409Операция не применима в текущем статусеСмотри current_status в ответе.
502Contabo API / SSH unreachableПодожди 1-2 мин, повтори. Если повторяется — support.

Rate limits

V1: nежесткий лимит, но мы логируем каждый вызов (audit-log BoxOperation). Если шкваль (>100 вызовов/мин) — поговорим. Будущая версия: 60 read / 10 write на минуту на токен.


Вопросы: support@sl-claw.tech или консультант в Telegram