The API is not open yet. There are no public keys, so the routes that belong to an account
answer only the app’s own session. This reference is complete anyway: the shape it documents is
the shape it will have when it opens, so anything you design against it now stays valid.
Everything else — domains, claims, verifications, proof links — needs a session, and the session is
issued to the product’s own front end.
The reference under Endpoints is generated from the running server: every route declares its
params, body and response schemas, and the OpenAPI document is emitted from those. A route
that changes shape changes this reference in the same commit.
Base URL
Conventions
Errors are always the same shape
Errors are always the same shape
code. message is written for a person to read and may be reworded without notice.
docsUrl resolves to the entry on this site.Outcomes are tagged unions
Outcomes are tagged unions
A field that can be one of several shapes always carries a discriminant —
step on a zone
frame, code on a diagnosis, reason on a wait estimate. There is no shape where a value you
should not read is merely undefined; if you can reach it, it is there.Timestamps are ISO 8601, UTC
Timestamps are ISO 8601, UTC
"2026-08-24T12:00:00.000Z". Durations are integer seconds in a field named …Seconds, or
integer minutes in a field named …Minutes.Nullable means known-to-be-absent
Nullable means known-to-be-absent
diagnosis: null means the check ran and found nothing wrong, not that nothing is known.
Fields are present and null rather than omitted.Rate limits
Enforced at the edge, per IP, on the two public surfaces:
Over the limit you get
429 with rate_limited and a Retry-After
header in seconds.
POST /api/verifications/:id/runs is limited per verification as well as per account, because
forcing runs in a loop does not make DNS answer faster.
Stability
What is safe to depend on:- Error
codevalues, and diagnosiscodevalues. These are identifiers and will not be reworded. - The
recordsblock on a claim, and the immutability oftokenacross the lifecycle. - The event names on the zone stream (
delegation,publishing).
messagestrings, and thecause/fixsentences on a diagnosis. They are product copy and are improved regularly. Render them; do not match on them.- The absolute set of endpoints. New ones are added; existing shapes are not silently changed.