NetGrid Host
REST · JSON · Bearer

API для разработчиков

Управляйте серверами программно: создавайте, переустанавливайте, перезагружайте VPS, получайте список тарифов, ОС и дата-центров — всё по простому REST API.

Список методов
Bearer-токен
Ключи создаются в кабинете, с привязкой к разрешённым IP.
IP allowlist
Каждый ключ работает только с заданных IP-адресов.
Мгновенный заказ
Создание VPS списывает баланс и сразу отдаёт root-пароль.
Полный цикл
Заказ, питание, переустановка, смена пароля — из кода.

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

Базовый адрес и авторизация. Передавайте ключ в заголовке каждого запроса.

БАЗОВЫЙ АДРЕС
https://billing.netgrid.host/api/v1/ext
ПРИМЕР ЗАПРОСА (cURL)
curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://billing.netgrid.host/api/v1/ext/whoami

Методы API

Аккаунт
GET/whoami

Проверить ключ и узнать, какому аккаунту он принадлежит.

ОТВЕТ
{
  "account_id": 4406,
  "key_id": 12,
  "label": "production"
}
Серверы
GET/vps

Список ваших серверов. Фильтр по IP: ?ip=1.2.3.4

ОТВЕТ
{
  "vps": {
    "items": [
      { "id": 24402, "name": "web-1",
        "ip": "151.247.25.10",
        "status": "active" }
    ],
    "total": 1
  }
}
GET/vps/{id}

Полная информация о сервере, включая root-пароль.

ОТВЕТ
{
  "id": 24402, "name": "web-1",
  "ip": "151.247.25.10",
  "plan": "Business", "os": "AlmaLinux 9",
  "root_password": "••••••••"
}
POST/vps

Заказать новый VPS. Списывает баланс, создаёт асинхронно, сразу возвращает root-пароль.

ТЕЛО ЗАПРОСА
{
  "plan_id": 3,
  "dc_id": 1,
  "os_family_slug": "almalinux",
  "os_item_id": "almalinux-9",
  "hostname": "web-1",
  "period": 1,
  "autorenew": true
}
ОТВЕТ
{
  "item_id": 24403,
  "root_password": "Ng7xK2..."
}
POST/vps/{id}/power/{action}

Управление питанием: start, stop или reboot.

ОТВЕТ
{ "ok": true, "action": "reboot" }
POST/vps/{id}/reinstall

Переустановить ОС. Можно задать root-пароль.

ТЕЛО ЗАПРОСА
{
  "os_id": "ubuntu-24.04",
  "password": "optional"
}
ОТВЕТ
{ "ok": true }
POST/vps/{id}/reset-password

Сбросить root-пароль (генерируется, если не задан).

ОТВЕТ
{ "ok": true, "password": "Ng9..." }
Каталог
GET/plans

Доступные тарифы (id, cpu, ram, disk, цена) для заказа.

ОТВЕТ
{
  "plans": [
    { "id": 3, "name": "Business",
      "cpu": 2, "ram": 2048,
      "disk": 50, "price": 7.0 }
  ]
}
GET/os

Устанавливаемые образы ОС (семейства + версии).

ОТВЕТ
{
  "families": [
    { "slug": "almalinux",
      "items": [{ "id": "almalinux-9" }] }
  ]
}
GET/datacenters

Дата-центры, доступные для заказа. id используйте как dc_id.

ОТВЕТ
{
  "datacenters": [
    { "id": 1, "city": "Meppel",
      "country_code": "nl" }
  ]
}

Ошибки

Ошибки возвращаются с соответствующим HTTP-кодом и полем detail.

400
Неверный запрос (например, недостаточно баланса)
401
Ключ не передан или неверный
403
IP не в списке разрешённых
404
Ресурс не найден на этом аккаунте
ПРИМЕР ОШИБКИ
{
  "detail": "insufficient_balance"
}

Готовы автоматизировать?

Создайте API-ключ в кабинете, добавьте разрешённые IP — и управляйте инфраструктурой из кода.