The document
The API is not open yet. A generated client works today only against the zone read and the
public proof page; every other route wants a session the app issues, and there are no public keys
to stand in for one. See Authentication.
Generating a client
By hand
The whole API is JSON over HTTP with a cookie. There is nothing to install.Two things to get right in any language
Narrow on the discriminant before reading the payload
Narrow on the discriminant before reading the payload
diagnosis.observed has a different shape for each of the thirteen code values, and a zone
frame’s data has a different shape per step. In a language without unions, that is a switch
on the tag before you touch the rest.fix is always safe: every diagnosis has one.Retry only what is worth retrying
Retry only what is worth retrying
unresolvable (502) and rate_limited (429) are worth a backoff. Nothing else is — see
the table.On 429, honour Retry-After. Forcing runs in a loop does not make DNS answer faster; the
verification’s own waitEstimate.secondsRemaining is the honest interval.