Overview
The health endpoint runs a battery of checks for a domain connected through the DNS API and returns them as a flat list your code (or the dashboard) can render directly. Two kinds of checks run: zone checks read the records hosted on our nameservers and work even before delegation, while live checks query the public DNS tree (Google’s 8.8.8.8 resolver) and compare what the world sees with what the zone says.
Base URL: https://api.reinterface.com/api/v1. All responses are JSON. Last updated: 2026-08-08.
Authentication
Identical to every other Reinterface API: send your personal API key in the x-api-key header. Find it under Dashboard → Settings → API key. You can only check domains connected to your account.
-H "x-api-key: <YOUR_API_KEY>"Run health checks
/api/v1/dns/health/{domain}Run all checks and return the report
Checks run on demand; there is nothing to configure. The call also refreshes the domain’s stored delegation status (the same update the delegation check performs), so it doubles as a poll while you wait for nameservers to propagate.
curl https://api.reinterface.com/api/v1/dns/health/company.com \
-H "x-api-key: <YOUR_API_KEY>"{
"domain": "company.com",
"status": "active",
"overall": "warn",
"checked_at": "2026-08-08T16:02:11Z",
"checks": [
{ "id": "delegation", "label": "Nameserver delegation", "status": "ok",
"detail": "Domain resolves through ns1.reinterfacens.com, ns2.reinterfacens.com, ns3.reinterfacens.com" },
{ "id": "apex_address", "label": "Root domain address", "status": "ok",
"detail": "Zone has 203.0.113.10" },
{ "id": "apex_resolution", "label": "Root domain resolution", "status": "ok",
"detail": "Public DNS answers match the zone: 203.0.113.10" },
{ "id": "www", "label": "www subdomain", "status": "ok",
"detail": "www points at company.com" },
{ "id": "mx", "label": "Mail routing (MX)", "status": "ok",
"detail": "Mail routes to mx1.company.com" },
{ "id": "spf", "label": "SPF policy", "status": "warn",
"detail": "No SPF record; receivers may junk mail sent from this domain" },
{ "id": "dmarc", "label": "DMARC policy", "status": "warn",
"detail": "No DMARC record at _dmarc; add one to tell receivers how to treat spoofed mail" }
]
}The checks
Every report contains these seven checks, in this order. Fixes are one record away in the DNS API unless noted.
| id | What it verifies | How to fix a warn/fail |
|---|---|---|
| delegation | The public DNS tree serves your domain through Reinterface nameservers | Update the nameservers at your registrar; propagation can take 24-48h |
| apex_address | The zone has an A or AAAA record on the root domain | Create an A (or AAAA) record with name @ |
| apex_resolution | Public DNS answers for the root match the zone's A records | Usually propagation; recheck later |
| www | www resolves (CNAME, A, or AAAA record on www) | Create a CNAME record www → your root domain |
| mx | The domain can receive mail (MX records exist and match live DNS) | Create MX records, or use Email Forwarding's fix endpoint |
| spf | A TXT record starting v=spf1 exists on the root | Create a TXT record like v=spf1 include:… ~all |
| dmarc | A TXT record starting v=DMARC1 exists at _dmarc | Create a TXT record on _dmarc like v=DMARC1; p=none; rua=mailto:… |
Statuses
Each check reports one of four statuses, and overall is the worst of them (severity order: ok < pending < warn < fail).
| Status | Meaning |
|---|---|
| ok | Verified working |
| pending | Cannot be evaluated yet, typically a live check waiting for delegation to complete |
| warn | Working overall, but something is missing or still propagating |
| fail | Broken and needs action (currently only failed delegation) |
Polling and monitoring
Checks hit the live DNS tree, so a call takes a few seconds and reflects the world at that moment. Two patterns work well:
After connecting a domain, poll every few minutes until delegation flips to ok, then surface the remaining warns to your user as a setup checklist. For ongoing monitoring, a periodic call (hourly is plenty; DNS rarely changes under you) with an alert on overall == "fail" catches expired delegations and registrar mishaps before your users do.
Errors
Errors return { "success": false, "error": { "code", "message" } }.
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Missing or invalid x-api-key |
| 400 | invalid_request | Domain is not a valid domain name |
| 404 | domain_not_found | Domain is not attached to your account |
| 502 | cloudns_error | Upstream DNS provider unreachable |
| 503 | dns_not_configured | DNS management is disabled on this server |
Endpoint summary
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/dns/health/{domain} | Run all checks and return the report |