domains
GET /v1/domains/{domainId}/delegation
Whether a domain's delegation actually points at us.
Autenticação
Envie uma chave de API como um token de portador. A chave deve ter a permissão sites.view; uma chave sem ela é recusada com 403, e não 404.
Este endpoint não requer um ID de organização. Sua chave já identifica a organização à qual pertence, e a resposta é delimitada a ela.
Experimente
Substitua qualquer item entre colchetes por seus próprios valores e o espaço reservado para a chave por uma chave do seu painel.
curl -X GET https://api.zinndigital.com/v1/domains/{domainId}/delegation \
-H "Authorization: Bearer zdk_live_…"Conectado? O console da API no seu painel preenche o ID da sua organização real e a sua própria chave, e executa a requisição contra a API de produção para que você possa ver a resposta real. Abra este endpoint no console da API
Detalhes
The honest answer to "is my domain live yet?". `expected` is the delegation we ask the customer to set, `nameservers` is where the domain **actually** delegates right now, and `detected` says whether those agree. ⛔ `detected` is resolved from a **public recursive resolver**, not from the DNS vendor. Bunny's own `NameserversDetected` flag was measured returning `true` for a domain that is not registered at all, so a surface keyed off it tells a customer their domain is served before they have touched their registrar (docs/72 D243). A lookup that FAILED is a `503`, never `detected: false`: "not live yet" and "we could not check" lead a customer to opposite actions. A domain whose authoritative DNS we do not host is a `404`. Requires `sites.view`, RLS-scoped. The answer is **recorded**, not recomputed per request, so this read is cheap enough to poll — a background backoff poller keeps it fresh (see `POST`). A live lookup that fails on a domain last seen delegated leaves the recorded state alone, so the `503` now means *we have never established this domain's delegation* rather than *this one lookup failed*.
Parâmetros
| Nome | Tipo | Obrigatório | O que é |
|---|---|---|---|
domainId (path) | Uuid | Sim | The domain's id. |
Resposta
| Nome | Tipo | Obrigatório | O que é |
|---|---|---|---|
expected | string[] | Sim | The delegation we ask the customer to set at their registrar. Resolved **per domain**, from the zone's own nameservers where the provider assigns them — Cloudflare issues each z… |
nameservers | string[] | Sim | Where the domain delegates right now, as the public internet sees it — which is what the customer compares against `expected` to know what to change. |
detected | boolean | Sim | Whether the domain's **public** NS records include the nameservers we asked for, resolved from a public recursive resolver. This — not our configuration and not the DNS vendor's… |
live | boolean | Sim | Whether the domain is being served by us right now. |
state | string<delegated, not_delegated, unknown> | Sim | The three-valued answer, and the field a client should render from. `delegated` — every nameserver we asked for is present. `not_delegated` — we got a real answer and ours are n… |
answered_by | string<resolver, registry, none> | Sim | Who answered. `resolver` is a public recursive resolver — what the internet sees. `registry` is the registry's own RDAP record, used as a fallback when the resolver says nothing… |
checked_at | string | Sim | When this reading was taken. |
last_delegated_at | string | Sim | When we last saw this domain delegated to us. Null means it never has been — which is what separates "waiting for you" from "this stopped working". |
next_check_at | string | Sim | When the background poller will look again, so a client can wait rather than poll blind. Null once the domain is live or the poller has given up. |
drifted | boolean | Sim | This domain was delegated to us and positively is not any more. A warning about something that broke, not a step still to do. |
Erros que este endpoint pode retornar
401 · 403 · 404 · 429 · 503