API и MCP
Домены и DNS через API — примеры
Примеры запросов к API ZRAZU: список доменов, мониторинг, чтение зоны DNS, изменение записей, новая зона и проверка делегирования.
Во всех примерах ключ-заглушка zr_live_.... Подставьте свой ключ из кабинета. Общие правила (вход, повтор, ошибки, лимиты) — в обзоре API.
Список доменов
Нужно право domain.read.
curl -H "Authorization: Bearer zr_live_..." "https://api.zrazu.com/v1/domains?limit=100"В ответе для каждого домена: name, expires_at, autorenew, transfer_lock, contact_lock, frozen. Если страниц больше, передайте next из ответа как after.
Мониторинг
Права monitor.read и monitor.edit.
# состояние мониторинга
curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/monitoring
# поставить под наблюдение до 100 имён за вызов
curl -X POST https://api.zrazu.com/v1/monitoring \
-H "Authorization: Bearer zr_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"names": ["example.com.ua", "example.net"]}'
# снять с наблюдения
curl -X DELETE https://api.zrazu.com/v1/monitoring/example.net \
-H "Authorization: Bearer zr_live_..." \
-H "Idempotency-Key: $(uuidgen)"В ответе на добавление поле skipped перечисляет строки, которые не удалось принять, с причиной: опечатка не пропадает молча.
Прочитать зону DNS
Нужно право dns.read.
# список зон
curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/dns/zones
# записи одной зоны
curl -H "Authorization: Bearer zr_live_..." https://api.zrazu.com/v1/dns/zones/example.com.uaОтвет на второй запрос:
{
"name": "example.com.ua",
"serial": 12,
"records": [
{ "name": "@", "type": "A", "ttl": 300, "content": "203.0.113.10", "prio": null },
{ "name": "www", "type": "CNAME", "ttl": 300, "content": "example.com.ua.", "prio": null }
]
}Имена записей — относительно зоны: @ для самой зоны, www для www.example.com.ua. serial понадобится для изменения.
Изменить записи зоны
Нужно право dns.edit. Порядок: прочитали зону, изменили список, отправили его целиком вместе с base_serial — номером, который вы прочитали.
curl -X PUT https://api.zrazu.com/v1/dns/zones/example.com.ua \
-H "Authorization: Bearer zr_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"base_serial": 12,
"summary": "новый сервер сайта",
"records": [
{ "name": "@", "type": "A", "ttl": 300, "content": "203.0.113.20" },
{ "name": "www", "type": "CNAME", "ttl": 300, "content": "example.com.ua." }
]
}'- В списке должны быть все записи зоны, а не только изменённые: что не отправлено, будет удалено.
- Записей в зоне — до 500.
- Если зону изменили между вашим чтением и записью, ответ
409: прочитайте зону снова и повторите. - Перед записью зона проверяется так же, как в кабинете: ошибка в записи —
409без изменений, предупреждения возвращаются в полеwarnings. - После изменения владельцам и администраторам приходит письмо, а изменение остаётся в истории зоны с названием ключа. Не более 60 изменений в час на ключ.
Новая зона и проверка делегирования
Нужно право dns.zone_create — только для ключа на все зоны организации.
curl -X POST https://api.zrazu.com/v1/dns/zones \
-H "Authorization: Bearer zr_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "example.com.ua", "import_current": true}'- Для домена, зарегистрированного в ZRAZU, зона включается на наших серверах имён. С
import_current: trueзаписи, которые сейчас отвечают у прежнего провайдера, переносятся. - Для домена у другого регистратора создаётся заявка. Укажите у регистратора серверы имён из ответа, затем запустите проверку:
curl -X POST https://api.zrazu.com/v1/dns/zones/example.com.ua/verify \
-H "Authorization: Bearer zr_live_..." \
-H "Idempotency-Key: $(uuidgen)"Ответ 202 означает, что проверка запущена. Запросите GET /v1/dns/zones позже, чтобы увидеть статус.
Если не получилось
- `403 right_missing`. У ключа нет нужного права — см. ключи API.
- `403 out_of_scope`. Домен вне списка доменов ключа.
- `404 not_found`. Зоны нет, она не ваша или не входит в домены ключа — ответ одинаковый.
- `409` при `PUT`. Зону изменили после вашего чтения или запись содержит ошибку. Прочитайте зону снова и повторите с новым
base_serial. - `503 dns_closed`. DNS ZRAZU временно не принимает изменений; повторите позже.
- `409 zone_exists`. Зона для этого домена уже создана.
- `429`. Слишком много изменений: подождите
Retry-Afterсекунд.