Domain health (records + blocklists in one call)
From the Accounts API reference. Requests use the base URL https://app.warmerly.com/api/v1 and an API key, see Authentication.
GET /accounts/{id}/domain-health
POST /accounts/{id}/domain-healthThe 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.
{
"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
}| Field | Description |
|---|---|
providerManaged | true 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.findings | Advisories beyond presence, SPF's all qualifier and its 10-lookup budget, DKIM key length and test mode, DMARC policy/pct/rua. |
domainBlocklist / ipBlocklist | Listings on public blocklists, with the zones actually queried and any that errored, so a partial answer is visible as partial. |
ipSkippedReason | Why 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.