hosting

GET /v1/sites/{siteId}/domain-pointing

Does this site's domain actually reach us?

All hosting endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the sites.view permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/sites/{siteId}/domain-pointing \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

The measured answer, composed from the domain's public NS and A/AAAA records, a docroot nonce fetched through the public name, and whether we host a site on that name at all — never from a flag anybody set. Carries the exact next step for the customer and what to set where. A site we have not measured yet answers unknown with a null measured_at rather than a 404: "we have not looked" is a real answer and must not read as "fine". Requires sites.view.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Response

NameTypeRequiredWhat it is
hostnamestringYes—
statestring<moving_in, serving, serving_via_other_dns, propagating, awaiting_record, awaiting_pointing, pointed_elsewhere, zone_expired, unknown>Yesserving reaches us on our nameservers. serving_via_other_dns is PROVEN to reach us through DNS the customer runs — never show it a nameserver instruction, that would take a…
reasonstringYesA stable machine code for the leg that decided the state.
next_actionstring<set_nameservers_at_registrar, add_record_at_your_dns_provider, recreate_dns_zone, >YesThe step the customer takes, or empty when there is none. A stable code, never a sentence — the words are localized on the surface.
measured_atstringYesWhen the VERDICT was reached. Null means never measured. Deliberately not the delegation row's checked_at, which moves on every reading including one that established nothing.
observedobjectYes—
setobjectYesWhat the customer must set. Empty lists mean "not applicable".
moveobjectNoPresent when a partner moved (or is moving) the site in: who holds the zone, the records pointing at us, proxied or not, the SSL mode and the certificate state.

Errors this endpoint can return

401 · 403 · 404 · 429