api v1

Void API — твои домены, серверы и хостинг по REST.

Регистрация и продление доменов, Cloudflare и DNS, заказ и управление VPS-серверами и веб-хостингом — из своего кода, на том же аккаунте и балансе, что и бот.

https://api.void.cd/v1 Bearer void_… JSON · UTC · USD строками

Объекты и статусы

Domain

{
  "id": "0a797218-8ec5-45d5-aa23-cb85c28a7d3b",
  "domainName": "example.org",
  "status": "ACTIVE",                      // PENDING · ACTIVE · EXPIRED · FAILED
  "nameservers": ["n1.void.cd", "n2.void.cd"],
  "price": "16.00",                        // оплачено за текущий срок
  "renewalPrice": "16.00", "renewalYears": 1,
  "autoRenew": false,
  "expiresAt": "2027-08-28T17:04:38.000Z",
  "createdAt": "2026-08-28T17:04:40.113Z",
  "blockFlags": []                         // "google" · "metamask" · "blockaid" · "registrar"
}

Статус домена

PENDINGрегистрация в процессе (секунды)
ACTIVEтвой, резолвится
EXPIREDсрок истёк; продлевается ещё 30 дней
FAILEDреестр отказал; деньги возвращены

Статус зоны

noneне подключён
pendingждём смены nameservers
activeCloudflare обслуживает зону
movednameservers смотрят в другое место — переподключи или отключи

Server

{
  "id": "3b0c6f1e-9d2a-4c55-8e0b-2f7a9c1d4e60",
  "label": "vm-4f2a9c",                    // наше имя; оно же hostname по умолчанию
  "alias": "api-prod",                     // твоё имя или null
  "hostname": "vm-4f2a9c",
  "status": "ACTIVE",                      // PENDING · PROVISIONING · ACTIVE · SUSPENDED · FAILED
  "power": "RUNNING",                      // RUNNING · STOPPED · UNKNOWN
  "ip": "203.0.113.25",
  "os": "Ubuntu 24.04", "osCode": "ubuntu-24",
  "specs": { "vcpu": 2, "ramMb": 4096, "diskGb": 80 },
  "region": "PL",
  "period": "MONTH", "periodPrice": "13.50", // срок продления и цена каждого продления
  "autoRenew": false,
  "expiresAt": "2026-12-01T10:00:00.000Z",
  "graceEndsAt": null,                     // задано, пока SUSPENDED: после этой даты сервер удаляется
  "createdAt": "2026-11-01T10:00:00.000Z",
  "proxy": { "enabled": false, "address": null },  // фронт-прокси и его адрес
  "sshKeys": 1,                            // ключи, поставленные при первой загрузке
  "passwordLogin": true,
  "app": null                              // или { code, name, state, url?, note? }; секреты — через /credentials
}

Hosting

{
  "id": "c41e2a7b-5f30-4d8e-9a61-0b7d3e9f2c18",
  "label": "wh3f9a1c",
  "status": "ACTIVE",                      // PENDING · ACTIVE · SUSPENDED · FAILED
  "primaryDomain": "example.org",
  "panelUrl": "https://…", "login": "wh3f9a1c",
  "ip": "…",                               // для A-записей и FTP
  "nameservers": ["…", "…"],
  "specs": { "sites": 1, "diskMb": 3072, "bandwidthGb": 0 },
  "planId": "8d2f…",                       // plans[].id из каталога
  "period": "MONTH", "periodPrice": "10.00",
  "autoRenew": false,
  "expiresAt": "2026-12-01T10:00:00.000Z",
  "graceEndsAt": null,
  "createdAt": "2026-11-01T10:00:00.000Z"
}

Статус сервера

PENDINGоплачен, ждёт в очереди на создание
PROVISIONINGсоздаётся (Windows: ставится пароль)
ACTIVEтвой, управляется
SUSPENDEDсрок истёк без оплаты: остановлен, данные хранятся до graceEndsAt; продли, чтобы вернуть
FAILEDсоздать не удалось; первый срок возвращён

Статус хостинга

PENDINGсоздаётся (секунды)
ACTIVEтвой, панель открыта
SUSPENDEDсрок истёк без оплаты: пользователь панели заблокирован до graceEndsAt; продли, чтобы вернуть
FAILEDпанель отказала; деньги возвращены

После graceEndsAt неоплаченный сервер или хостинг-аккаунт удаляется и пропадает из списков.

Уведомления

События по домену — регистрация, продление (ручное или авто), напоминания за 7/3/1 день, попадание в блок-листы — приходят в Telegram-бот на аккаунт независимо от того, какой клиент их вызвал, а также на твои вебхуки, если они настроены. События серверов и хостинга — готов, продлён, апгрейд, напоминания об истечении, приостановка — приходят в бот; вебхуки пока несут только события доменов.

Область и изменения

v1 покрывает домены, Cloudflare, серверы и веб-хостинг. Кое-что пока остаётся только в боте: пополнение баланса, удаление сервера или хостинг-аккаунта, управление сохранёнными SSH-ключами и включение прокси на уже работающем сервере. Аддитивные изменения (новые поля, новые эндпоинты) выходят без предупреждения; всё ломающее выйдет как /v2 при живом v1.

Машиночитаемое описание: openapi.json (OpenAPI 3.0). Вопросы и баги — @void_sup_bot.