One domain, one lookup
A refresh, an API call, or auto-warm the moment a new address is ingested — every path lands on one getOrFetch. If a snapshot under 24 hours old already exists we hand it back instantly: no DNS, no credit.
SPF · DKIM · DMARC · MX — scored, cached, surfaced on every record.
In-house DNS authentication checker. Every domain that touches your workspace — sender or recipient — gets a 0–100 score that lands as a per-record badge so weak senders surface before they cause deliverability damage. DNS lookups run against our own resolver — the per-domain credit weight is a fair-share guard against runaway use, not a pass-through cost.
SPF record + policy qualifier, DKIM selectors discovered automatically, DMARC status + pct enforcement, MX hosts ranked by priority — all in one record per domain.
The 0–100 score lands on every email record in your console + records browser. Spot mismatched / unprotected senders the moment they show up in a list, not weeks later.
One DNS round-trip per domain per 24 hours (or shorter, if their TTL is). 10,000 @gmail.com signups share one lookup — costs scale with unique domains, not row volume.
Follow acme.co through the real checker — four parallel DNS probes, a composite 0–100 score, and the per-record badge your team reads at a glance.
A refresh, an API call, or auto-warm the moment a new address is ingested — every path lands on one getOrFetch. If a snapshot under 24 hours old already exists we hand it back instantly: no DNS, no credit.
Against our own high-limit resolver we pull SPF (the v=spf1 TXT + its -all/~all qualifier), DMARC, and MX. DKIM has no directory, so we blind-probe ~40 known selectors — google, selector1, amazonses — in batches of 6.
No MX means the domain can’t receive mail — score 0, full stop. Otherwise SPF earns up to 30, DKIM up to 30 (bonus for 2+ selectors), DMARC up to 40. Strict policies win: softening SPF to ~all here leaves 5 points on the table.
The number maps to a band — 75+ excellent, 50–74 good, 25–49 mixed, under 25 poor — and lands as the traffic-light badge on every record and the domain detail page. Weak senders surface in a list the moment they show up, not weeks later.
One snapshot per domain per workspace, keyed on (tenant, domain) — 10,000 @gmail.com signups share a single lookup. Cost scales with unique domains, not row volume, until you force a rate-limited refresh.
If a re-check drops a domain into a lower band, domain_health.score_changed fires; if it lands on a blacklist, domain.blacklisted fires. Both only on the transition, and score changes only downward — your integrations hear about problems, not noise.
Every billable action draws from one credit pool — no per-feature slider to manage. The cost for this feature is fixed by the platform's credit table; mix and match against the other features however you like.
Pro plans grant 30,000–300,000 credits per month — pick a tier on the pricing page, or top up mid-month with a credit pack.
| Action | Credits |
|---|---|
Bot Anomaly Detection + Email Verification per signup screening — always coupled | 5 |
Domain Health per domain | 1 |
Blacklist check per domain | 15 |
Inbox placement test per test | 150 |
Phone verification per lookup | 3 |
DNS lookups run in-house against our own resolver — no external pass-through cost. The credit weight shown in the Pricing section above is a fair-share guard against runaway use: each fresh lookup consumes it, cache hits within the 24h TTL are free. Pro plans grant enough monthly credits to cover tens of thousands of fresh lookups, so for most workspaces the weight is invisible in practice.
The lookup is cached for the shortest TTL we saw, capped at 24 hours. If a domain's SPF record changes, the score refreshes within that window. You can also force a refresh from /app/domains/health/:domain.
Yes — POST a comma-separated list to GET /v1/domain-health/bulk?domains=a.com,b.com,…. Returns cached snapshots only (no refresh).
Inbox Placement uses the sender's Domain Health snapshot to enrich the placement test detail (so a poor SPF/DMARC posture shows up next to a poor inbox-share). Warmup shows both our own score and an independent second domain check side-by-side on the per-inbox detail page so you can cross-reference both reads.
Spin up a workspace, plug in your data, see results — no card required to start.