Void API — your domains, over REST.
Check availability, register and renew, switch nameservers, put a domain behind Cloudflare and manage its DNS, security switches and redirects — from your own code, on the same account and balance as the bot.
Account
who am I, what can I spendAccount id and available balance. Handy as a key-validity probe.
{ "ok": true, "data": { "id": "2c576de1-…", "balance": "25.07", "currency": "USD", "createdAt": "2026-08-26T12:59:46.538Z" } }Availability & prices
before you buyEvery zone we sell with its first-year registration price. Renewal prices can differ — see Renewal.
{ "ok": true, "data": [ { "tld": "com", "price": "14.50", "currency": "USD", "years": 1 }, { "tld": "xyz", "price": "5.50", … }, … ] }One exact name. We verify at the registry (RDAP / DNS delegation / whois), not just the registrar's word, so "available" here means you can actually buy it.
| query | type | |
|---|---|---|
domainrequired | string | full name, e.g. example.xyz |
{ "ok": true, "data": { "domain": "example.xyz", "available": true, "price": "5.50" } }
{ "ok": true, "data": { "domain": "taken.com", "available": false, "price": null } }
{ "ok": true, "data": { "domain": "x.co.uk", "available": false, "price": null, "reason": "UNSUPPORTED_TLD" } }
// "reason": "UNCERTAIN" — the registry could not be reached; try again shortlyA bare label (q=example) checked across every zone in one call. Available names first, then catalogue order. Same objects as /check.
Domains
the things you ownYour domains, newest first. Includes ACTIVE, EXPIRED (still renewable) and PENDING (registration in flight).
{ "ok": true, "data": { "items": [ Domain, … ], "total": 3, "offset": 0, "limit": 20 } }Registers the name for one term (two years for zones that require it) and returns the domain. It comes up on ns1/ns2.voidhosting.org with a parking page until you point it elsewhere.
| body | type | |
|---|---|---|
domainrequired | string | the name to register |
curl -X POST https://api.voidhosting.org/v1/domains \
-H "Authorization: Bearer $VOID_KEY" -H "Content-Type: application/json" \
-d '{"domain":"example.xyz"}'One domain by id. blockFlags lists blocklists the name currently appears on (google, metamask, registrar) — checked every 10 minutes.
Change nameservers and/or the auto-renew flag. Send only what you change; at least one field is required.
| body | type | |
|---|---|---|
nameservers | string[2..4] | applied at the registry immediately; propagation follows the zone's TTL |
autoRenew | boolean | renew from the balance 7 days before expiry |
{ "nameservers": ["ns1.example.net", "ns2.example.net"], "autoRenew": true }A domain connected to Cloudflare must keep Cloudflare's nameservers — disconnect first (DELETE /cloudflare) if you want your own.
Renewal
quote first, then payWhat a renewal costs right now and when the domain would expire afterwards. Always read this before renewing: promo zones (.xyz, .live, …) renew above their registration price because the registry charges more.
{ "ok": true, "data": { "domainId": "0a79…", "domainName": "example.org", "price": "16.00", "years": 1, "expiresAfter": "2028-08-28T17:04:38.000Z" } }Renews for one term at the quoted price and returns the updated domain. Works for ACTIVE domains and for EXPIRED ones within 30 days of expiry.