Three of these four need a session the app issues, and there are no public keys yet. Only the
first one answers anyone. What is open today.
@ownsi/sdk, which is typed off the server’s own routes
— a renamed route is a compile error, not a runtime surprise. The curl side shows what it does
underneath.
1
Read the zone before you sign anyone in
This is the only public endpoint. It streams, so the provider lands on screen before the
publishing estimate does.Knowing the provider is what lets the next screen say “in Cloudflare, go to DNS → Records”
instead of “add a TXT record somewhere”.
Two events, in this order
2
Claim the domain
Now a session is required. The response carries the record to create.Over HTTP the claim carries
Two resources, not one: a domain is a name on your account, and a claim is one attempt at
proving it.
@ownsi/sdk recomposes them into a sentence; over HTTP it is two calls, and
the claim comes back with a verificationId — the process that will do the reading.records, an array, empty once the claim has ended. The SDK narrows
it to record, one object or null.3
Create the record in the DNS panel
Render
record.host, never record.name: a copy button that hands over the fully qualified
name is how people end up with
domain_appended.4
Read the verification back
ownsi runs on its own. Poll the verification, or force a run with
While it is not proved you get one of two blocks, never both empty:
POST /api/verifications/:id/runs.diagnosis— something about the record is wrong, andfixsays what to change.waitEstimate— nothing is wrong, DNS has not caught up yet.secondsRemainingis how long.
proved the moment the verification does; read it back at
GET /api/claims/:id for the date the proof is dated by.Next
Diagnosis Payload
The field shapes behind the thirteen codes, and how to narrow on them.
Claim Flow
How the product’s own polling, states and copy are put together.