Domain Deliverability Checker SPF DKIM DMARC Blacklist Clay avatar

Domain Deliverability Checker SPF DKIM DMARC Blacklist Clay

Pricing

from $4.25 / 1,000 results

Go to Apify Store
Domain Deliverability Checker SPF DKIM DMARC Blacklist Clay

Domain Deliverability Checker SPF DKIM DMARC Blacklist Clay

Audit a domain's email deliverability: SPF, DKIM, DMARC and policy, MX and mail provider, catch-all and blacklist checks, domain age, and a 0 to 100 health score. Flat JSON, Clay ready.

Pricing

from $4.25 / 1,000 results

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Domain Deliverability Checker: SPF, DKIM, DMARC, MX, Blacklist

Audit a domain's email deliverability and DNS health in one call. Give it a domain and get back SPF, DKIM, and DMARC authentication with policy, MX records and mail provider, DNS blacklist status, catch-all detection, domain age, and a single 0 to 100 health score. Flat JSON, one row per domain, ready to drop into a Clay table. Pure DNS and SMTP: no browser, no proxy, no paid third-party APIs.

Built for outbound agencies, sales operations teams, and Clay users who need to check domain health before sending cold email. Where most Apify actors check only one slice (just DNS, or just blacklists, or just DMARC), this one returns the complete deliverability verdict in a single flat row.

Features

  • Full email authentication audit. SPF record and qualifier policy, DMARC record and policy (none, quarantine, reject), and DKIM presence across the common provider selectors.
  • Mail provider detection. Identifies Google Workspace, Microsoft 365, Zoho, Proofpoint, Mimecast, Amazon SES, and more from the MX records.
  • DNS blacklist checks. Tests the domain's mail server IP against a curated set of DNSBL zones and reports listed, clean, or unknown.
  • Catch-all detection. SMTP RCPT probe to flag accept-all domains. Off by default because the Apify platform blocks outbound port 25; see Limitations.
  • Domain age. Registration date via RDAP, the modern registry protocol that survives GDPR redaction, with a DNS SOA fallback.
  • Spam-trap risk heuristics. Advisory flags for young domains, mail without authentication, and blacklisted infrastructure.
  • 0 to 100 deliverability score. A single transparent verdict with a low, medium, or high risk level.
  • Batch and cache. Pass a domains array for bulk runs; results are cached for 24 hours to make repeat lookups free.

Input

FieldTypeRequiredDefaultDescription
domainstringnostripe.comBare domain without https:// or trailing slash.
domainsarraynononeList of bare domains for batch processing. Takes precedence over domain. One output row per domain.
batchSizeintegerno5Domains audited concurrently per wave in batch mode. Maximum 10.
skipCachebooleannofalseForce a fresh audit and ignore any cached result.
attempt_catch_allbooleannofalseRun the SMTP catch-all probe. Off by default because the Apify platform blocks port 25; enable only on a runner that allows port 25 egress.

Provide either domain or domains.

Output

One flat row per domain. Every field is always present; absent values are null.

FieldTypeDescriptionExample
domainstringNormalized input domainstripe.com
spf_recordstringRaw SPF TXT record, or nullv=spf1 include:_spf.google.com ~all
spf_validbooleanA valid v=spf1 record is presenttrue
spf_policystringQualifier on all: fail, softfail, neutral, pass, or nullsoftfail
dkim_selectors_foundarrayCommon selectors that returned a key["google","s1","s2"]
dkim_presentbooleanAt least one common selector foundtrue
dmarc_recordstringRaw DMARC TXT record, or nullv=DMARC1; p=reject;
dmarc_policystringnone, quarantine, reject, or nullreject
dmarc_validbooleanA valid v=DMARC1 record is presenttrue
mx_recordsarrayMX hosts with priority[{"host":"aspmx.l.google.com","priority":10}]
has_mxbooleanDomain has at least one MXtrue
mail_providerstringDetected provider, or nullGoogle Workspace
catch_allbooleanSMTP accepts a random address, or null when unknownnull
catch_all_statusstringcatch_all, not_catch_all, or unknownunknown
blacklistedbooleanListed on any checked DNSBLfalse
blacklists_listedarrayZones that returned a listing[]
blacklists_checkedarrayZones queried this run["bl.spamcop.net", ...]
blacklist_statusstringlisted, clean, or unknownclean
spam_trap_riskstringlow, medium, or high heuristiclow
spam_trap_flagsarrayTriggered heuristics[]
domain_age_daysintegerDays since registration, or null11238
domain_age_sourcestringrdap, soa, or nullrdap
has_websitebooleanDomain has an A or AAAA recordtrue
deliverability_scoreinteger0 to 100 composite verdict95
risk_levelstringlow, medium, or highlow
run_datestringISO timestamp of the run2026-06-19T08:10:59Z

Score model: has MX +20; valid SPF +20 (hard -all +5); DKIM present +15; valid DMARC +15 (quarantine +5, reject +10); blacklist clean +15 (unknown +7); catch-all not detected +5 (detected -10). Capped 0 to 100. Risk: 80 or more low, 50 to 79 medium, under 50 high.

Pricing

TierDiscountPer resultPer 1K results
Free (no plan)0%$0.005$5.00
Starter (Bronze)~5%$0.00475$4.75
Scale (Silver)~10%$0.0045$4.50
Business (Gold)~15%$0.00425$4.25

Free tier: 50 results per month included, resets monthly. Cached repeat lookups within 24 hours are free.

Usage Examples

Apify Console / API

curl -X POST "https://api.apify.com/v2/acts/0tVgxI7A6o9jMlxmc/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain":"stripe.com"}'

Batch:

{ "domains": ["stripe.com", "github.com", "mailchimp.com"], "batchSize": 5 }

Clay Integration

  1. Add an Enrichment column of type HTTP API, or use the Apify integration.
  2. Call this actor with domain mapped to your domain column.
  3. Map the returned fields to columns: deliverability_score, risk_level, spf_valid, dmarc_policy, blacklist_status, mail_provider.
  4. Gate downstream sends on a formula like deliverability_score >= 70 to skip risky domains before they enter a sequence.

The output is flat and one row per domain, so every field maps directly to a Clay column with no JSON unwrapping.

MCP Integration

$npm install @mambalabsdev/mcp-domain-deliverability-checker
{
"mcpServers": {
"domain-deliverability": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-domain-deliverability-checker"],
"env": { "APIFY_TOKEN": "YOUR_TOKEN" }
}
}
}

Tool: check_domain_deliverability with { "domain": "stripe.com" }.

Error Handling

ConditionBehaviorOutput
Empty or invalid domainEmpty record pushed, run continuesall checks null or false, score 0
No MX or NXDOMAINRow emitted, blacklist and SMTP skippedhas_mx:false, not treated as an error
Port 25 blocked or SMTP timeoutCatch-all reported as unknowncatch_all:null, catch_all_status:"unknown"
DNSBL zone blocks or errorsThat zone dropped to unknown, others continueblacklist_status may be unknown
RDAP unavailableFalls back to SOA serial, then nulldomain_age_source:"soa" or null
One domain throws in a batchCaught per domain, empty record pushedother rows unaffected

Limitations

  • Catch-all is off by default. The Apify platform blocks outbound SMTP on port 25, so the catch-all probe returns unknown here. Enable attempt_catch_all only when running this actor on infrastructure that permits port 25 egress.
  • DNS blacklist coverage is best-effort. Spamhaus and Barracuda block queries from cloud IPs and public resolvers without a paid data-query key, so some zones return unknown. A clean result means clean on the zones that answered, not an authoritative all-clear.
  • DKIM uses common-selector probing. DKIM selectors cannot be enumerated from DNS, so the actor checks a fixed list of provider selectors. An empty result means not found on a common selector, not a guarantee that DKIM is absent.
  • Domain age depends on the registry. RDAP returns the registration date for most TLDs; some registries omit or redact it, in which case the value is null or an approximate SOA-based fallback.
  • Data freshness. Results are cached for 24 hours. Pass skipCache: true for a live audit.

Part of the Mamba Labs GTM Intelligence Suite

ActorActor ID
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Tech Stack Signal Enrichmentqyd7nNyqFPelQViBx
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
ICP Fit ScorerW161DT8W4kW55dMFh

npm: @mambalabsdev/ats-scrapers

Built by Mamba Labs.