How it works
We ask Cloudflare DNS-over-HTTPS first (Accept: application/dns-json), then fall back to Google DNS JSON API. Responses are normalized to one internal shape before scoring.
MX shows whether the domain can receive mail. SPF is read from apex TXT (v=spf1): multiple records fail; +all fails; include/a/mx/ptr/exists/redirect each count toward the RFC 7208 limit of 10 lookups (estimate on the published record).
DMARC is read from _dmarc.<domain>. We surface p=, sp=, pct, rua, and basic syntax. Missing rua means you will not get aggregate reports — the monitoring hook for Pro.
DKIM probes common selectors unless you supply one; empty p= means the key was revoked. BIMI is read from default._bimi.<domain> and is marked warn unless DMARC is quarantine/reject with pct=100.
Budget: at most 20 DNS queries per analysis, concurrency 4, 4s timeout, 10-minute sessionStorage cache per domain+selector.