REST API: GPU и SSH-ключи
REST API: GPU и SSH-ключи
Помимо OpenAI-совместимого инференса (/chat/completions, /models), тот же базовый адрес /api/v1 и тот же API-ключ cc-… позволяют управлять GPU-серверами и SSH-ключами из скриптов и CI.
Требования
- Положительный баланс команды (как для инференса)
- API-ключ, созданный в разделе API-доступ — ключи, созданные только в старом разделе «API-модели», тоже работают; для SSH через API рекомендуется создать ключ заново в API-доступ (привязка к пользователю)
Базовый адрес
https://app.cloudcompute.ru/api/v1
Авторизация: Authorization: Bearer cc-…
Эндпоинты (MVP)
| Метод | Путь | Описание |
|---|---|---|
GET |
/offers |
Каталог GPU-предложений (фильтры: gpu_name, num_gpus, min_vram, max_price_rub, sort, limit, offset) |
GET |
/instances |
Список инстансов команды |
POST |
/instances |
Создать инстанс (ask_id, template_image, disk_gb, ssh_key_ids, …) |
GET |
/instances/{id} |
Детали инстанса |
PATCH |
/instances/{id} |
Обновить метку (label, name) |
DELETE |
/instances/{id} |
Удалить инстанс |
GET |
/ssh-keys |
SSH-ключи владельца ключа |
POST |
/ssh-keys |
Добавить ключ (name, public_key) |
DELETE |
/ssh-keys/{id} |
Удалить ключ |
Полное описание полей и примеры ответов — в справочнике API (генерируется автоматически).
Пример: список инстансов
curl https://app.cloudcompute.ru/api/v1/instances \
-H "Authorization: Bearer cc-..."
Пример: создать инстанс
Минимальный набор полей совпадает с формой в панели: type, ask_id, образ (template_image или template_hash_id), при необходимости disk_gb и ssh_key_ids.
curl -X POST https://app.cloudcompute.ru/api/v1/instances \
-H "Authorization: Bearer cc-..." \
-H "Content-Type: application/json" \
-d '{
"type": 0,
"ask_id": 12345678,
"name": "training-1",
"template_image": "nvidia/cuda:12.1-devel-ubuntu22.04",
"offer_disk_space": 50,
"disk_gb": 32
}'
Цена (price_hour) пересчитывается на сервере — не передавайте её из клиента.
Ошибки
REST-эндпоинты возвращают JSON вида:
{ "error": { "message": "…", "code": "insufficient_balance" } }
Инференс (/chat/completions) по-прежнему использует OpenAI-совместимый формат ошибок.