Автентифікація
Надсилайте ключ API як токен Bearer. Створюйте ключі та керуйте ними в налаштуваннях облікового запису — повний ключ показується лише один раз під час створення, тож зберігайте його в надійному місці.
Authorization: Bearer dpk_live_<selector>_<secret>
Ключі мають вигляд dpk_<env>_<selector>_<secret>, де env — це live або test.
Активна сесія в браузері може викликати ті самі ендпоінти; для операцій запису з автентифікацією через сесію додатково потрібен заголовок X-CSRF-Token. Для запитів із токеном Bearer він не потрібен.
Області доступу та ліміти запитів
Кожен ключ має набір областей доступу. Виклик має здійснюватися ключем, що містить потрібну для ендпоінта область. Ліміти запитів застосовуються окремо для кожної області та кожного ключа.
| Область доступу | Надає доступ до | Ліміт запитів | Рівень |
|---|---|---|---|
domain.check |
Check a single .pay domain — availability + pricing | 50/sec | Публічний |
catalog.search |
AI keyword search against the curated catalog | 30/min | Публічний |
orders.read |
List + read the account's own orders | 60/min | Публічний |
orders.write |
Create a pre-order against a saved payment method | 10/min | Публічний |
payment_methods.read |
List saved cards (Stripe payment methods) | 20/min | Публічний |
payment_methods.write |
Add (SetupIntent) + remove saved cards | 20/min | Публічний |
account.read |
Read account profile: email, role, vip_tier, granted scopes | 60/min | Публічний |
webhooks.read |
List configured webhook endpoints | 20/min | Публічний |
webhooks.write |
Create + delete webhook endpoints | 10/min | Публічний |
zone_file.download |
Download the full daily .pay DNS zone-file snapshot | 24/day | Обмежений |
premium.list |
Paginated registry premium catalogue (incl. reserved/blocked) | 60/min | Обмежений |
registered.list |
Paginated registered .pay names (from the DNS zone file) + AI brand context | 60/min | Обмежений |
Обмежені області доступу мають подвійний захист: ключ може містити область, але виклики спрацюють лише після того, як адміністратор надасть її вашому обліковому запису. Подайте запит у налаштуваннях облікового запису.
Підтримувані доменні зони
Один акаунт і один API-ключ працюють у всіх зонах нижче — зону визначає базовий URL, який ви викликаєте.
.pay |
https://domain.pay/api/v1 |
.latino |
https://domain.latino/api/v1 |
.dot |
https://domain.dot/api/v1 |
Швидкий старт
Два швидкі виклики для початку:
# Перевірити назву
curl -s https://domain.dot/api/v1/check-domain \
-H "Authorization: Bearer dpk_live_…" \
-H "Content-Type: application/json" \
-d '{"domain":"acme.dot"}'
# Хто я і що я можу робити
curl -s https://domain.dot/api/v1/account \
-H "Authorization: Bearer dpk_live_…"
Ендпоінти
Усі ендпоінти активні. Схеми запитів і відповідей, параметри та коди станів повністю описані в документі OpenAPI.
Account
| GET | /account |
account.read |
Your profile + the scopes effective for this key. |
Domains
| POST | /check-domain |
domain.check |
Availability + pricing for one name in a supported zone. Fast DB-only lookup (no live registry call) — POST /orders re-verifies live. |
Catalog
| POST | /catalog/search |
catalog.search |
Keyword search over the curated catalogue. |
Orders
| GET | /orders |
orders.read |
List your orders, newest first. |
| GET | /orders/{id} |
orders.read |
One order + its customer message thread. |
| POST | /orders |
orders.write |
Create a pre-order + charge a saved card (send an Idempotency-Key). |
Payment methods
| GET | /account/payment-methods |
payment_methods.read |
List saved cards. |
| POST | /account/payment-methods |
payment_methods.write |
Start a Stripe SetupIntent to add a card. |
| DELETE | /account/payment-methods/{id} |
payment_methods.write |
Remove a saved card. |
Webhooks
| GET | /webhooks |
webhooks.read |
List webhook endpoints. |
| POST | /webhooks |
webhooks.write |
Register an endpoint (signing secret shown once). |
| DELETE | /webhooks/{id} |
webhooks.write |
Delete an endpoint. |
Restricted
| GET | /zone-file |
zone_file.download |
Daily DNS zone-file snapshot for the zone of the host you call. |
| GET | /premium |
premium.list |
Registry premium catalogue. |
| GET | /registered |
registered.list |
Registered names in the called zone + AI brand context. |
Щоб отримати повний контракт запитів/відповідей, імпортуйте специфікацію OpenAPI: Завантажити OpenAPI (JSON).
Вебхуки
Зареєструйте HTTPS-ендпоінт, і ми надсилатимемо підписані події в міру їх виникнення. Секрет для підпису показується один раз під час створення.
| Подія | Опис |
|---|---|
order.created | A new order (pre-order) was created on the account |
order.status_changed | An order changed payment status |
payment.succeeded | A payment for an order succeeded |
payment.failed | A payment for an order failed or was canceled |
payment.refunded | A charge for an order was refunded |
appraisal.completed | A domain appraisal for an order finished |
Ми надсилаємо конверт події методом POST у форматі JSON:
{
"id": "evt_…",
"event": "payment.succeeded",
"created": "2026-05-28T12:00:00+00:00",
"data": { "order": { … } }
}
Перевіряйте кожну доставку, повторно обчислюючи HMAC-SHA256 для сирого тіла запиту за допомогою вашого секрету для підпису та порівнюючи його за сталий час:
X-Domain-Pay-Signature: sha256=<HMAC_SHA256(raw_body, signing_secret)>
Відповіді, відмінні від 2xx (або тайм-аути), повторюються з експоненційною затримкою (1 min to 24 h) до 6 спроб. Після 5 поспіль невдалих доставок ендпоінт автоматично вимикається, а власника сповіщають.
Помилки
Усі помилки мають єдину структуру. request_id повертається в кожній помилці — зазначайте його у зверненнях до підтримки.
{ "error": "scope_required", "message": "…", "request_id": "req_ab12…", "scope": "orders.read" }
| HTTP | error | Значення |
|---|---|---|
| 400 | invalid_request | Malformed or missing parameters. |
| 401 | unauthorized / invalid_key | No or invalid credential. |
| 402 | card_declined / authentication_required | Payment failed or needs SCA. |
| 403 | scope_required | The key lacks the endpoint's scope. |
| 403 | access_not_granted | Restricted scope not yet approved for this account. |
| 403 | csrf_required | Session write without a valid X-CSRF-Token. |
| 404 | not_found | No such endpoint or resource. |
| 405 | method_not_allowed | Wrong HTTP verb. |
| 409 | request_in_progress | An idempotency key's first request is still in flight. |
| 422 | idempotency_key_reused | Same idempotency key, different parameters. |
| 422 | contact_incomplete | GA zones: add a registrant contact under /account/contacts first. |
| 423 | account_locked | Account is locked — contact support. |
| 429 | rate_limited | Slow down; see the Retry-After header. |
| 500 | server_error | Our fault. |
Обмежений доступ
Ендпоінти zone-file, premium і registered потребують схваленого дозволу на додаток до області доступу:
- Створіть (або майте наявний) ключ API, що містить обмежену область доступу.
- У налаштуваннях облікового запису відкрийте розділ «Обмежений доступ до API», виберіть область і поясніть, як ви використовуватимете дані.
- Наша команда розгляне запит і надішле вам рішення електронною поштою.
- Після схвалення будь-який ключ вашого облікового запису, що містить цю область, зможе одразу її використовувати. Жодного платного рівня — схвалення надається для кожного облікового запису.