SPF Record Checker - Validate SPF & Count DNS Lookups
Pricing
from $0.64 / 1,000 spf-checked domains
SPF Record Checker - Validate SPF & Count DNS Lookups
Validate SPF for up to 200 domains per run: parsed mechanisms, DNS lookup count vs the RFC 7208 limit of 10, all-qualifier and plain-English issues. $0.0008 per domain, no start fee, failures never charged — cheaper than measured incumbents ($0.001+/item). For deliverability and security audits.
Pricing
from $0.64 / 1,000 spf-checked domains
Rating
0.0
(0)
Developer
Broke to Built
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
SPF Record Checker
Validate any domain's SPF record and catch the failure everyone misses: the 10-DNS-lookup limit. Check one domain or up to 200 per run, online, by API, or as an agent tool via Apify MCP.
This actor fetches the v=spf1 TXT record, parses every mechanism, counts DNS lookups against RFC 7208's hard limit of 10 (exceed it and receivers return PermError — your SPF silently stops working), and flags permissive or missing all qualifiers. Useful for deliverability audits, cold-email domain setup, security reviews, and lead generation (find domains with broken SPF).
What you get
- hasSpf — is a
v=spf1record published? - record — the raw SPF string
- mechanisms — every term parsed: qualifier (
+/-/~/?), type (ip4,include,mx, …), value, and whether it costs a DNS lookup - lookupCount — total DNS lookups vs the RFC 7208 limit of 10
- allQualifier — how unmatched senders are treated (
-allfail,~allsoftfail,?allneutral,+allopen) - issues — plain-English flags: no record, multiple records (an RFC error), over the lookup limit,
+all/?all, missingall - Fail-soft: an invalid domain or a DNS error never fails the run — it returns
{ok: false, error}and is never charged.
Input
{ "domains": ["github.com", "microsoft.com"], "maxDomains": 50 }
Or a single domain: { "domain": "google.com" }
Output (real run)
{"domain": "github.com","ok": true,"hasSpf": true,"record": "v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com include:_netblocks.google.com ... ~all","mechanisms": [{ "qualifier": "+", "type": "ip4", "value": "192.30.252.0/22", "lookup": false },{ "qualifier": "+", "type": "include", "value": "spf.protection.outlook.com", "lookup": true }],"lookupCount": 8,"allQualifier": "~","issues": []}
Pricing
$0.0008 per domain checked. No start fee. Invalid domains and DNS failures are never charged.
Measured against store incumbents (2026-08-07): andok/dmarc-spf-dkim-validator charges $0.001 per item, blackfalcondata/email-deliverability-checker $0.00005 start + $0.001 per item, davidbenittah/dmarc-rfc9989-auditor $0.005 start + $0.005 per item. A 100-domain sweep here costs $0.08.
Honest limits
- Lookup counting is static: it counts lookup-type mechanisms in the top-level record (
include,a,mx,ptr,exists,redirect). It does not recursively resolve nested includes, so a record that nests its way over the limit can pass here — the top-level count is what most audits need first. - DNS-only: no test emails are sent; this validates the published record, not your mail server's behavior.
- One record per domain: when multiple SPF records exist (an RFC violation, flagged in issues), the first is parsed.
FAQ
Why does the 10-lookup limit matter? RFC 7208 caps SPF evaluation at 10 DNS lookups. Past that, receivers return PermError and your SPF effectively fails — a very common silent misconfiguration after adding several SaaS senders.
What's the difference between ~all and -all?
-all tells receivers to fail unmatched senders outright; ~all marks them suspicious (softfail). ?all and especially +all provide no real protection and are flagged.
Does it check DKIM or DMARC too? No — this is a focused SPF tool. Pair it with our DMARC Record Checker and MX Record Checker for the full email-auth picture.
Can I paste full URLs?
Yes. https://www.example.com/path is cleaned to example.com automatically; duplicates are removed.
Why did some rows come back ok: false?
Those inputs were not valid domains or their DNS lookup failed transiently. They are recorded for completeness and never charged.
Use from code or AI agents
curl -s "https://api.apify.com/v2/acts/EliAI~spf-record-checker/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-X POST -H 'Content-Type: application/json' \-d '{"domains": ["yourdomain.com", "competitor.com"]}'
Agents: connect Apify MCP and call the EliAI/spf-record-checker tool.
- Capability: fetch, parse and lint the SPF record of one or many domains, returned as JSON
- Required input:
domain(string) ordomains(array) - Returns: one JSON record per domain;
lookupCount+issuessummarize the verdict - Bounded:
maxDomainscaps the run; failures isolate per domain - Side effects: none