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секунд.