Void API — твои домены по REST.
Проверка доступности, регистрация и продление, смена nameservers, подключение домена к Cloudflare и управление его DNS, защитными переключателями и редиректами — из своего кода, на том же аккаунте и балансе, что и бот.
Cloudflare
один вызов на подключение, дальше полный контрольПодключённый домен получает зону Cloudflare из нашего пула: мы создаём её, переключаем nameservers в реестре и проксируем трафик. Все эндпоинты ниже требуют подключённый домен и иначе отвечают 409 CLOUDFLARE_NOT_CONNECTED. Сразу после подключения зона в статусе pending, пока смена nameservers не разъедется (от минут до часа); DNS-записи можно добавлять сразу, а кеш и настройки до этого могут ответить CLOUDFLARE_ZONE_PENDING.
Зона
Подключён ли домен и как далеко разъехалась смена nameservers.
{ "ok": true, "data": { "connected": true, "domainName": "example.org", "zoneId": "6a18…",
"nameservers": ["margo.ns.cloudflare.com", "mimi.ns.cloudflare.com"], "zoneStatus": "active", "nsApplied": true } }
// не подключён: { "connected": false, "domainName": "…", "zoneId": null, "nameservers": [], "zoneStatus": "none", "nsApplied": false }Создаёт зону и переключает nameservers в реестре на Cloudflare. Возвращает статус зоны (сначала pending). Записи с наших парковочных nameservers не переносятся — добавь нужные через POST /dns.
Удаляет зону и возвращает домен на наши nameservers (страница парковки). Записи, настройки и редиректы исчезают вместе с зоной.
Перечитывает статус и nameservers из Cloudflare и возвращает тот же объект, что и GET. Им удобно опрашивать zoneStatus после подключения.
DNS-записи
Все записи зоны.
{ "ok": true, "data": [ { "id": "fce74ed9…", "type": "A", "name": "api.example.org", "content": "185.225.191.222", "proxied": false, "priority": null }, … ] }Добавляет запись и возвращает её с id Cloudflare.
| тело | тип | |
|---|---|---|
typeобязательно | A AAAA CNAME TXT MX | |
nameобязательно | string | относительно домена (@ — сам домен, www, _dmarc) или полное имя |
contentобязательно | string | IP, хост или текст |
proxied | boolean | только A / AAAA / CNAME — трафик через Cloudflare, IP сервера скрыт |
priority | integer | только MX |
{ "type": "A", "name": "@", "content": "203.0.113.10", "proxied": true }
{ "type": "CNAME", "name": "www", "content": "example.org", "proxied": true }
{ "type": "MX", "name": "@", "content": "mail.example.org", "priority": 10 }
{ "type": "TXT", "name": "_dmarc", "content": "v=DMARC1; p=none" }Заменяет запись целиком — тело как при создании. Id берутся из GET /dns.
Удаляет запись. 404 DNS_NOT_FOUND, если её уже нет.
Настройки и кеш
Переключатели защиты и доставки зоны — тот же набор, что показывает бот.
{ "ok": true, "data": { "ssl": "full", "developmentMode": false, "underAttack": false, "alwaysOnline": true, "botFightMode": true, "regionBlock": false } }Меняет любое подмножество; в ответ полный набор после изменения. Пустое тело — 400.
| поле | значения | эффект |
|---|---|---|
ssl | off flexible full strict | шифрование Cloudflare ↔ сервер. flexible, если на сервере нет сертификата; full с самоподписанным; strict с валидным |
developmentMode | boolean | обход кеша на 3 часа (потом выключается сам) |
underAttack | boolean | JavaScript-проверка для каждого посетителя |
alwaysOnline | boolean | отдавать кешированную копию, пока сервер лежит |
botFightMode | boolean | проверка известных ботов |
regionBlock | boolean | правило файрвола, блокирующее посетителей из стран СНГ |
{ "ssl": "strict", "underAttack": true, "regionBlock": true }Очищает весь кеш зоны. Дёшево; можно дёргать после каждого деплоя.
{ "ok": true, "data": { "purged": true } }Редиректы
Правила редиректов зоны.
| тело | тип | |
|---|---|---|
matchобязательно | string | путь на домене (old-page, blog/*) или * для всего |
targetобязательно | URL | куда отправлять посетителей |
permanent | boolean · по умолчанию true | true → 301, false → 302 |
{ "match": "*", "target": "https://new-domain.com", "permanent": true }
{ "ok": true, "data": { "id": "3f2a…", "match": "*", "target": "https://new-domain.com", "permanent": true } }Удаляет правило по id из списка.