Less boo. More booked. Halloween offer: 30 days free on any paid plan. Claim 30 days freeEvery new account gets one free mailbox for warmup and replies. No domain to buy. See how it works

Skip to content

Domain health (records + blocklists in one call)

API referenceAccounts

From the Accounts API reference. Requests use the base URL https://app.warmerly.com/api/v1 and an API key, see Authentication.

text
GET  /accounts/{id}/domain-health
POST /accounts/{id}/domain-health

The single call behind the domain-health card in the dashboard, and the one to reach for first: it returns the record checks and the blocklist checks for the sending domain and its sending IP together, with per-record advisories rather than a bare pass/fail. GET reads the latest stored results; it does not run a new check. Any of dns, domainBlocklist and ipBlocklist is null when there is no stored result for it yet.

json
{
  "domain": "yourdomain.com",
  "providerManaged": false,
  "dns": {
    "spfStatus": "pass",
    "dkimStatus": "none",
    "dmarcStatus": "pass",
    "mxStatus": "pass",
    "findings": [{ "record": "dkim", "severity": "warn", "title": "No DKIM record found" }],
    "checkedAt": "2026-09-12T08:14:00.000Z"
  },
  "domainBlocklist": { "subject": "yourdomain.com", "status": "clean", "listings": [], "zonesQueried": ["dbl.spamhaus.org"], "zonesErrored": [], "checkedAt": "2026-09-12T08:14:00.000Z" },
  "ipBlocklist": { "subject": "203.0.113.10", "via": "smtp.yourprovider.com", "status": "clean", "listings": [], "zonesQueried": [], "zonesErrored": [], "checkedAt": "2026-09-12T08:14:00.000Z" },
  "ipSkippedReason": null
}
FieldDescription
providerManagedtrue for gmail.com, outlook.com and the like: the records belong to the provider, so a DKIM reading of them is unreliable and nothing here is your responsibility to fix.
dns.findingsAdvisories beyond presence, SPF's all qualifier and its 10-lookup budget, DKIM key length and test mode, DMARC policy/pct/rua.
domainBlocklist / ipBlocklistListings on public blocklists, with the zones actually queried and any that errored, so a partial answer is visible as partial.
ipSkippedReasonWhy there is no IP section (a provider-shared host, an unresolvable SMTP host). A hole with no reason reads as something silently broken.

POST re-runs the DNS check and returns the same payload. It is rate-limited internally: a blocklist re-check inside the minimum interval (6 hours) reuses the stored result rather than re-querying third-party blocklist zones, so holding down a refresh button cannot multiply Warmerly's query volume across them.

The two endpoints below remain, and are the narrower views of the same data.

Was this page helpful?