Skip to main content
GET /api/zones/:name is the one streaming endpoint. It yields server-sent events so the provider can be on screen before the publishing estimate is known.

The frames

Two events, always in this order, and the second may be the last thing you get.
event
Who answers for the name, and which provider that is.
event
How long publishing is likely to take. Either number may be null when the zone does not say.
provider is one of cloudflare, route53, godaddy, namecheap, google-domains, vercel or other. Treat other as a normal answer — it means the nameservers are not one we recognise, not that the read failed.

Consuming it

EventSource will reconnect on its own when the stream ends, which for this endpoint means re-reading the zone forever. Use fetch or the Eden client, both of which treat the end of the stream as the end.

Cancelling

The server stops work when the request is aborted, so cancelling a read that is no longer on screen actually saves the lookup.

Failures do not arrive as frames

If the read fails, it fails as an HTTP status with the normal error envelope — 400, 404 or 502, per Reading a zone. The stream never carries a half-read zone, and there is no error event to handle inside the loop.
404
unresolvable and rate_limited are worth retrying; invalid_domain and no_delegation are not — nothing about retrying will change the answer.