Управляйте виртуальными серверами программно через REST API: создавайте и удаляйте серверы, управляйте питанием, образами, снимками, бэкапами и консолью, проверяйте баланс.
API построено по принципам REST, принимает и возвращает JSON. Базовый URL:
https://mycloudbird.com/api/v1
Все методы (кроме публичного каталога GET /api/v1) требуют API-ключ в заголовке:
Authorization: Bearer <ваш-ключ>
Ключ имеет вид cb_live_…. Создать, посмотреть и отозвать ключи можно в кабинете на странице «API-ключи». Полный ключ показывается только один раз при создании — сохраните его сразу; на сервере хранится лишь его хеш, восстановить ключ нельзя. Лимит — 10 ключей на аккаунт.
Пример запроса с ключом:
curl https://mycloudbird.com/api/v1/account \ -H "Authorization: Bearer cb_live_xxxxxxxxxxxxxxxxxxxxxxxx"
При превышении возвращается HTTP 429 с кодом rate_limited — сделайте паузу и повторите запрос.
Любая ошибка возвращается с соответствующим HTTP-статусом и телом:
{
"error": {
"message": "Человекочитаемое описание",
"code": "machine_code"
}
}Основные коды:
| HTTP | code | Когда |
|---|---|---|
| 401 | unauthorized | Нет заголовка Authorization или он некорректен |
| 401 | invalid_key | Ключ не найден или отозван |
| 403 | project_unavailable | Проект недоступен — обратитесь в поддержку |
| 429 | rate_limited | Превышен лимит запросов |
| 400 | bad_id | Некорректный идентификатор сервера в пути |
| 402 | insufficient_funds | Недостаточно средств на балансе |
| 402 | insufficient_runway | Не хватает запаса баланса на 24 ч для создания сервера |
| 409 | server_limit | Достигнут лимит серверов (10) на аккаунт |
| 409 | vcpu_limit | Достигнут лимит vCPU (16) на аккаунт |
| 409 | snapshot_limit | Достигнут лимит снимков (60) на аккаунт |
| 409 | config_unavailable | Конфигурация недоступна в локации / нет ресурсов — выберите другую |
| 409 | delete_protected | Сервер защищён от удаления |
| 409 | server_not_off | Для изменения конфигурации сервер должен быть выключен |
| 400 | invalid_public_key / ip_required | Некорректный публичный ключ / не указан IP |
| 422 | name_required / name_invalid / type_required / image_required | Ошибки валидации параметров создания |
| 404 | (от облака) | Сервер или ресурс не найден |
| 423 | (от облака) | Сервер занят другой операцией (заблокирован) |
| 503 | cloud_unavailable | Облако временно недоступно, повторите позже |
| 500 | internal | Внутренняя ошибка |
Методы списка, получения и создания сервера возвращают объект сервера со следующими полями:
| Поле | Тип | Описание |
|---|---|---|
| id | number | Идентификатор сервера |
| name | string | Имя сервера |
| status | string | running, off, initializing, rebuilding, deleting и др. |
| created | string | Дата создания (ISO-8601) |
| ipv4 | string | null | Публичный IPv4 |
| ipv6 | string | null | Публичный IPv6 |
| type | string | null | Конфигурация, напр. cx22 |
| cores | number | null | vCPU |
| memory_gb | number | null | ОЗУ, ГБ |
| disk_gb | number | null | Диск, ГБ |
| location | string | null | Локация, напр. fsn1 |
| image | string | null | Образ ОС, напр. ubuntu-24.04 |
| backups_enabled | boolean | Включены ли авто-бэкапы |
| rescue_enabled | boolean | Включён ли режим восстановления (на след. загрузку) |
| delete_protected | boolean | Включена ли защита от удаления |
| rdns_ipv4 | string | null | Обратная DNS-запись (PTR) для IPv4 |
Сводка аккаунта: баланс, расход и текущая ставка проекта (₸).
curl https://mycloudbird.com/api/v1/account \ -H "Authorization: Bearer cb_live_xxx"
{
"email": "customer@example.com",
"balance_kzt": 14250.5,
"spent_kzt": 8320.75,
"hourly_rate_kzt": 9.86,
"suspended": false,
"exempt": false,
"servers": 2
}hourly_rate_kzt — текущая суммарная стоимость проекта в час по всем ресурсам. servers — число активных серверов. Обращение к этому методу обновляет начисления за прошедшее время.
Список всех серверов проекта.
curl https://mycloudbird.com/api/v1/servers \ -H "Authorization: Bearer cb_live_xxx"
{
"servers": [
{
"id": 52481234,
"name": "web-01",
"status": "running",
"created": "2026-06-20T09:14:52+00:00",
"ipv4": "91.99.12.34",
"ipv6": "2a01:4f8:c012:abcd::1",
"type": "cx22",
"cores": 2,
"memory_gb": 4,
"disk_gb": 40,
"location": "fsn1",
"image": "ubuntu-24.04",
"backups_enabled": false,
"rescue_enabled": false,
"delete_protected": false,
"rdns_ipv4": "static.91.99.12.34.clients.example.com"
}
]
}Создать новый сервер. Параметры тела:
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| name | string | да | Имя: латиница/цифры, дефис или точка внутри (без пробелов) |
| server_type | string | да | Конфигурация (см. GET /server-types), напр. cx22 |
| image | string | да | Образ ОС, напр. ubuntu-24.04 |
| location | string | нет | Локация; по умолчанию fsn1 |
| ssh_keys | (string | number)[] | нет | id или имена SSH-ключей. Если задан хотя бы один — root-пароль не возвращается |
| user_data | string | нет | cloud-init скрипт первичной настройки |
curl -X POST https://mycloudbird.com/api/v1/servers \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"name":"web-02","server_type":"cx22","image":"ubuntu-24.04"}'{
"server": {
"id": 52481299,
"name": "web-02",
"status": "initializing",
"created": "2026-06-24T10:15:00+00:00",
"ipv4": "91.99.55.66",
"ipv6": "2a01:4f8:c012:abcd::1",
"type": "cx22",
"cores": 2,
"memory_gb": 4,
"disk_gb": 40,
"location": "fsn1",
"image": "ubuntu-24.04",
"backups_enabled": false,
"rescue_enabled": false,
"delete_protected": false,
"rdns_ipv4": null
},
"root_password": "aB3xY7qLmN2pQ9"
}Ответ — HTTP 201. Поле root_password возвращается только один раз и только если SSH-ключи не передавались (иначе null — вход по ключу). Для создания нужен запас баланса минимум на 24 часа работы проекта; максимум 10 серверов на аккаунт.
Получить один сервер по id.
curl https://mycloudbird.com/api/v1/servers/52481234 \ -H "Authorization: Bearer cb_live_xxx"
Переименовать сервер. Тело: name (латиница/цифры, дефис или точка внутри). Возвращает обновлённый объект сервера.
curl -X PATCH https://mycloudbird.com/api/v1/servers/52481234 \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"name":"web-prod"}'Удалить сервер. Перед удалением списывается плата за фактическое время работы. Сервер с включённой защитой от удаления удалить нельзя (код delete_protected).
curl -X DELETE https://mycloudbird.com/api/v1/servers/52481234 \ -H "Authorization: Bearer cb_live_xxx"
{ "deleted": true, "id": 52481234 }Все действия — метод POST на путь /servers/{id}/actions/<действие>.
Управление питанием. Тело: action — одно из poweron, poweroff, reboot, shutdown, reset. Включение (poweron) недоступно при нулевом балансе.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/power \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"action":"reboot"}'{ "ok": true, "id": 52481234, "action": "reboot" }Сбросить root-пароль. Тело не требуется. Возвращает новый пароль.
{ "ok": true, "root_password": "vT3xQ9kLpZ2mWbN7" }Переустановить ОС (диск будет очищен). Тело: image — имя системного образа или id снимка. Возвращает новый root-пароль (или null, если использовался SSH-ключ).
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/rebuild \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"image":"ubuntu-24.04"}'{ "ok": true, "root_password": "aB9cD2eF5gH8jK1m" }Изменить конфигурацию (тип) сервера. Тело: server_type — имя новой конфигурации; upgrade_disk (необязательно, булево) — увеличить ли диск. Сервер должен быть выключен (иначе код server_not_off). Новый диск не может быть меньше текущего. upgrade_disk: true необратимо (после этого тип нельзя понизить). Увеличение конфигурации требует запаса баланса на 24 часа.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/resize \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"server_type":"cpx31","upgrade_disk":false}'{ "ok": true, "id": 52481234, "server_type": "cpx31", "upgrade_disk": false }Режим восстановления. Тело: enabled — булево; ssh_keys (необязательно) — массив id SSH-ключей. При включении возвращает одноразовый root_password (или null, если переданы ключи) и вступает в силу после перезагрузки — выполните reboot, чтобы войти в среду восстановления.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/rescue \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"enabled":true}'{
"ok": true,
"id": 52481234,
"rescue_enabled": true,
"root_password": "rT9xQ2kLpZ7m",
"note": "Перезагрузите сервер (reboot), чтобы войти в режим восстановления."
}Обратная DNS-запись (PTR). Тело: ip — адрес сервера (IPv4 или один полный IPv6); dns_ptr — имя хоста, либо null (или пустая строка) для сброса к значению по умолчанию.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/rdns \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"ip":"91.99.12.34","dns_ptr":"mail.example.com"}'{ "ok": true, "id": 52481234, "ip": "91.99.12.34", "dns_ptr": "mail.example.com" }Защита от удаления/переустановки. Тело: delete и/или rebuild (булевы). Для сервера обе защиты задаются одним значением (требование провайдера): передайте любой из флагов — будет установлено единое состояние. При включённой защите удаление и переустановка (rebuild) сервера запрещены.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/protection \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"delete":true}'{ "ok": true, "id": 52481234, "delete": true, "rebuild": true }Создать снимок сервера. Тело: description (необязательно). Снимок увеличивает стоимость проекта (хранилище), поэтому требует положительного баланса. Ответ — HTTP 201.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/snapshot \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"description":"pre-upgrade"}'{
"ok": true,
"image": { "id": 98765432, "description": "pre-upgrade", "status": "creating" }
}Получить доступ к VNC-консоли. Тело не требуется. Возвращает WebSocket-URL и одноразовый пароль консоли.
{
"wss_url": "wss://…/?server_id=52481234&token=…",
"password": "Qx7mZ2pL9kVn"
}Включить или выключить автоматические бэкапы. Тело: enabled — булево (true/false). Включение добавляет надбавку к стоимости и требует положительного баланса; выключение доступно всегда.
curl -X POST https://mycloudbird.com/api/v1/servers/52481234/actions/backup \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"enabled":true}'{ "ok": true, "backups_enabled": true }Временные ряды нагрузки. Параметры запроса: type — повторяемый параметр, одно или несколько из cpu, disk, network (например ?type=cpu&type=network; по умолчанию все три); start и end — метки времени ISO-8601; step — разрешение в секундах (необязательно). Без start/end берутся последние 30 минут.
curl "https://mycloudbird.com/api/v1/servers/52481234/metrics?type=cpu&type=network" \ -H "Authorization: Bearer cb_live_xxx"
{
"metrics": {
"start": "2026-06-24T09:30:00Z",
"end": "2026-06-24T10:00:00Z",
"step": 60,
"time_series": {
"cpu": { "values": [[1750758600, "1.5"], [1750758660, "2.1"]] },
"network.0.bandwidth.in": { "values": [[1750758600, "1024.0"]] },
"network.0.bandwidth.out": { "values": [[1750758600, "512.0"]] }
}
}
}В каждой паре [метка_времени, значение] метка времени — число (Unix-секунды), а значение — строка. Набор рядов в time_series зависит от запрошенных типов — перебирайте ключи, не полагайтесь на фиксированный список.
Доступные конфигурации и цена в ₸ (за час и за месяц) для локации fsn1.
{
"location": "fsn1",
"server_types": [
{
"name": "cx22",
"description": "CX22",
"cores": 2,
"memory_gb": 4,
"disk_gb": 40,
"cpu_type": "shared",
"architecture": "x86",
"price_hourly_kzt": 6.59,
"price_monthly_kzt": 4290,
"available": true
}
]
}Сервер создаётся по полю name (например cx22).
Образы. Параметр запроса type: system (системные ОС, по умолчанию), snapshot (ваши снимки) или backup (автоматические бэкапы).
curl "https://mycloudbird.com/api/v1/images?type=system" \ -H "Authorization: Bearer cb_live_xxx"
{
"type": "system",
"images": [
{
"id": 114690387,
"name": "ubuntu-24.04",
"description": "Ubuntu 24.04",
"os_flavor": "ubuntu",
"os_version": "24.04",
"architecture": "x86",
"type": "system",
"status": "available",
"image_size_gb": null
}
]
}SSH-ключи, зарегистрированные в вашем проекте.
{
"ssh_keys": [
{ "id": 18452301, "name": "laptop", "fingerprint": "3c:9a:1f:7e:…" }
]
}Добавить публичный SSH-ключ в проект. Тело: name и public_key (строка ключа в формате OpenSSH). Затем его можно передавать при создании сервера в поле ssh_keys.
curl -X POST https://mycloudbird.com/api/v1/ssh-keys \
-H "Authorization: Bearer cb_live_xxx" \
-H "Content-Type: application/json" \
-d '{"name":"laptop","public_key":"ssh-ed25519 AAAA... user@host"}'{ "ssh_key": { "id": 18452301, "name": "laptop", "fingerprint": "3c:9a:1f:7e:…" } }Удалить SSH-ключ. На уже созданные серверы это не влияет (ключ был внедрён при создании).
curl -X DELETE https://mycloudbird.com/api/v1/ssh-keys/18452301 \ -H "Authorization: Bearer cb_live_xxx"
{ "deleted": true, "id": 18452301 }Публичный каталог — машиночитаемый список всех методов. Без авторизации.
curl https://mycloudbird.com/api/v1
Управление администратора через API не предоставляется. Вопросы по интеграции — см. раздел «Контакты».