Recheck a domain's DNS records
Re-checks the DNS records for a pending domain and updates both the domain's status and each record's status to match what is currently published.
Re-checks the DNS records for a pending domain and updates both the domain's status and each record's status to match what is currently published. When all required records resolve, the domain flips to verified, verifiedAt is set, and Dairo emits a domain.verified webhook event — but only on the transition into verified, so re-checking an already-verified domain is a no-op that never re-fires the event. Returns the single updated domain object with its refreshed records. Publish the records described in verify a domain before calling this; DNS can take time to propagate, so a first recheck often still reports pending. Requires domains:write and is rate-limited to 5 rechecks per 15 minutes; the included dairo.app domain always reports verified.
Scope: domains:write. Send the API key as a bearer token; Scopes lists what each one reaches.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | yes | The domain name, such as yourapp.com. |
Response
200 Success. Body: application/json, Domain.
| Field | Type | Required | Description |
|---|---|---|---|
object | "domain" | yes | |
id | string (uuid) | yes | |
domain | string | yes | |
status | "pending", "verified", "failed" | yes | |
verifiedAt | string (date-time) or null | no | |
region | string | yes | |
records | array of DnsRecord | yes | |
type | "custom", "included", "system" | no | |
isIncluded | boolean | no | |
isDeletable | boolean | no | |
isSystem | boolean | no | Only on the shared dairo.app system domain. |
isReadOnly | boolean | no | Only on the shared dairo.app system domain. |
receiving | "active", "pending" | no | Only on the verify response: whether the domain receives mail (it does exactly when verified). |
Errors
Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.
| Status | Meaning |
|---|---|
400 | The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch). |
401 | The API key is missing or invalid. |
403 | The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted). |
404 | No such resource in this account (resource_not_found). |
422 | The request is well-formed but a field failed validation (validation_failed). |
429 | Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached). |
500 | An unexpected error; retry with backoff, then contact support (internal_error). |