DocsDomain Health
Documentation

Domain Health API

One call that answers: is this domain actually working? Delegation, web reachability, mail routing, and sender posture, checked live against the public DNS tree.

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.

Auth header
-H "x-api-key: <YOUR_API_KEY>"

Run health checks

GET/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.

Request
curl https://api.reinterface.com/api/v1/dns/health/company.com \
  -H "x-api-key: <YOUR_API_KEY>"
Response
{
  "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.

idWhat it verifiesHow to fix a warn/fail
delegationThe public DNS tree serves your domain through Reinterface nameserversUpdate the nameservers at your registrar; propagation can take 24-48h
apex_addressThe zone has an A or AAAA record on the root domainCreate an A (or AAAA) record with name @
apex_resolutionPublic DNS answers for the root match the zone's A recordsUsually propagation; recheck later
wwwwww resolves (CNAME, A, or AAAA record on www)Create a CNAME record www → your root domain
mxThe domain can receive mail (MX records exist and match live DNS)Create MX records, or use Email Forwarding's fix endpoint
spfA TXT record starting v=spf1 exists on the rootCreate a TXT record like v=spf1 include:… ~all
dmarcA TXT record starting v=DMARC1 exists at _dmarcCreate a TXT record on _dmarc like v=DMARC1; p=none; rua=mailto:…
Mail-related warns matter even for web-only domains: without SPF and DMARC, anyone can spoof mail from your domain and receivers have no policy telling them to reject it. If the domain should receive mail too, pair this with the Email Forwarding API.

Statuses

Each check reports one of four statuses, and overall is the worst of them (severity order: ok < pending < warn < fail).

StatusMeaning
okVerified working
pendingCannot be evaluated yet, typically a live check waiting for delegation to complete
warnWorking overall, but something is missing or still propagating
failBroken 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" } }.

StatusCodeMeaning
401invalid_api_keyMissing or invalid x-api-key
400invalid_requestDomain is not a valid domain name
404domain_not_foundDomain is not attached to your account
502cloudns_errorUpstream DNS provider unreachable
503dns_not_configuredDNS management is disabled on this server

Endpoint summary

MethodPathPurpose
GET/api/v1/dns/health/{domain}Run all checks and return the report