api v1

Void API — your domains, servers and hosting, over REST.

Register and renew domains, put them behind Cloudflare and manage DNS, order and run VPS servers and web hosting — from your own code, on the same account and balance as the bot.

https://api.void.cd/v1 Bearer void_… JSON · UTC · USD strings

Objects & statuses

Domain

{
  "id": "0a797218-8ec5-45d5-aa23-cb85c28a7d3b",
  "domainName": "example.org",
  "status": "ACTIVE",                      // PENDING · ACTIVE · EXPIRED · FAILED
  "nameservers": ["ns1.voidhosting.org", "ns2.voidhosting.org"],
  "price": "16.00",                        // paid for the current term
  "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"
}

Domain status

PENDINGregistration in flight (seconds)
ACTIVEyours, resolving
EXPIREDpast expiry; renewable for 30 days
FAILEDregistry refused; refunded

Zone status

nonenot connected
pendingwaiting for the nameserver switch
activeCloudflare is serving the zone
movednameservers point elsewhere — reconnect or disconnect

Server

{
  "id": "3b0c6f1e-9d2a-4c55-8e0b-2f7a9c1d4e60",
  "label": "vm-4f2a9c",                    // our name; also the default hostname
  "alias": "api-prod",                     // yours, or 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", // renewal term and what each renewal costs
  "autoRenew": false,
  "expiresAt": "2026-12-01T10:00:00.000Z",
  "graceEndsAt": null,                     // set while SUSPENDED: the server is deleted after it
  "createdAt": "2026-11-01T10:00:00.000Z",
  "proxy": { "enabled": false, "address": null },  // front-proxy add-on and its address
  "sshKeys": 1,                            // keys installed at first boot
  "passwordLogin": true,
  "app": null                              // or { code, name, state, url?, note? }; secrets via /credentials
}

Hosting

{
  "id": "c41e2a7b-5f30-4d8e-9a61-0b7d3e9f2c18",
  "label": "wh3f9a1c",
  "status": "ACTIVE",                      // PENDING · ACTIVE · SUSPENDED · FAILED
  "primaryDomain": "example.org",
  "panelUrl": "https://…", "login": "wh3f9a1c",
  "ip": "…",                               // for A records and FTP
  "nameservers": ["…", "…"],
  "specs": { "sites": 1, "diskMb": 3072, "bandwidthGb": 0 },
  "planId": "8d2f…",                       // catalogue 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"
}

Server status

PENDINGpaid, waiting in the provisioning queue
PROVISIONINGbeing created (Windows: password being set)
ACTIVEyours, manageable
SUSPENDEDexpired unpaid: stopped, data kept until graceEndsAt; renew to resume
FAILEDprovisioning gave up; first term refunded

Hosting status

PENDINGbeing created (seconds)
ACTIVEyours, panel open
SUSPENDEDexpired unpaid: panel user suspended until graceEndsAt; renew to resume
FAILEDthe panel refused; refunded

After graceEndsAt an unpaid server or hosting account is deleted and drops out of the lists.

Notifications

Events that concern a domain — registration, renewal (manual or automatic), expiry reminders at 7/3/1 days, blocklist hits — are delivered to the account in the Telegram bot regardless of which client caused them, and to your webhooks if you registered any. Server and hosting events — ready, renewed, upgraded, expiry reminders, suspended — reach the bot; webhooks carry domain events only for now.

Scope & changes

v1 covers domains, Cloudflare, servers and web hosting. A few things stay in the bot for now: topping up the balance, deleting a server or a hosting account, managing saved SSH keys and switching the proxy add-on on an existing server. Additive changes (new fields, new endpoints) happen without notice; anything breaking ships as /v2 with v1 kept alive.

Machine-readable description: openapi.json (OpenAPI 3.0). Questions and bugs — @void_sup_bot.