Skip to content
AdminKit
Live Updated

SPF validator: does this record's syntax and lookup count hold up?

AdminKit's SPF validator checks a pasted SPF TXT record's syntax, counts its DNS-lookup-causing terms against RFC 7208's limit of 10, and explains its qualifiers — entirely offline, with no DNS queries performed. It never follows include or redirect chains; for a live, fully-resolved check against your domain's actual DNS, use AdminKit's SPF check instead.

Part of the Email authentication cluster — more tools, guides and terms on email authentication.

Paste the record's text — this does not look up your domain's actual DNS.

What the result means

This is a static syntax and lookup-count check of the record text you paste, not proof that your domain's published record matches it or that any particular mail source would pass. For the fully-resolved, live check against your domain's actual DNS, see the SPF check.

Next step

Run the live SPF check against your own domain to follow every include/redirect chain over real DNS, or check your DMARC policy next.

Keep this result

Copy a link to this check so you can share it or run it again later. Want a heads-up if something changes? That's early access, not a live feature yet — tell us and we'll set it up by hand.

How it works and limits

Paste an SPF TXT record below and AdminKit checks its syntax, counts the DNS-lookup-causing terms it contains against RFC 7208’s limit of 10, and explains its qualifiers — entirely offline. It never queries DNS or follows an include/redirect chain, which is why it reports the lookup count in this record only; a record that looks fine here can still exceed the limit once nested includes are resolved.

What it checks

  • Version tag — whether the record starts with the required v=spf1 term, as RFC 7208 §4.5 requires.
  • Lookup-causing term count — how many include, a, mx, ptr, exists and redirect terms appear in this record, against RFC 7208 §4.6.4’s hard cap of 10, counted the same way Microsoft documents in its own SPF setup guide.
  • Qualifiers and flags — the +, -, ~ and ? qualifier on each mechanism, and the trailing all term’s effect (fail, softfail, neutral or pass).
  • Syntax findings — a severity-ranked list of specific issues found (for example a missing version tag, a malformed term, or too many lookup-causing terms), each citing the offending term where one exists.

Why “this record only” matters

Six mechanism types cost a DNS lookup under RFC 7208 §4.6.4: include, a, mx, ptr, exists and redirect — and include/redirect can each point at another record with its own lookup-causing terms nested inside. Because this tool never resolves DNS, it counts only the terms visible in the text you paste; it has no way to see what a nested include adds. Microsoft’s own guidance on this exact limit puts it plainly: “having fewer than 10 include: statements doesn’t guarantee fewer than 10 DNS lookups.” A record this check marks valid can still fail in production once every include is followed — that fully-resolved count is what the live SPF check reports instead.

Limits

  • No DNS lookups are performed, ever — this reads the record text only, so it cannot confirm the record you paste is what a domain actually publishes, or that an include/redirect target even exists.
  • The lookup-term count is for this record alone; see the SPF check for the fully-resolved count after every nested include and redirect is followed.
  • It does not evaluate whether any specific sending IP address would pass or fail against the record.

See what an SPF check result actually means for how a fully-resolved result is interpreted, fixing SPF “too many DNS lookups” (PermError) for what to do if a record is over budget, and the glossary entry for SPF for the short definition. SPF is one of three records mail authentication relies on — see SPF, DKIM and DMARC explained for how it combines with the other two, and how AdminKit’s checkers compare to other free options in the free SPF/DMARC checker roundup.

Frequently asked questions

Does this tool query DNS?

No — paste the record's text and it is checked entirely offline: syntax, the DNS-lookup-causing term count against RFC 7208's limit, and qualifiers. It never resolves the record against a real domain or follows an include/redirect chain; for that, use AdminKit's live SPF check.

Why does the lookup count only cover "this record only"?

Because the check never performs a DNS lookup, it can only see the include, a, mx, ptr, exists and redirect terms written in the text you paste — it cannot see the terms inside a nested include it never resolved. A record that looks fine here can still exceed RFC 7208's 10-lookup cap once its includes are followed; the live SPF check reports that fully-resolved count.

What's the difference between this and AdminKit's SPF check?

This validator is a static syntax/structure check of text you paste, with no DNS involved. The SPF check instead looks up a domain's actual published SPF record and resolves every include and redirect it finds over real DNS, so it reports the true, fully-resolved lookup count and an overall pass/fail against that domain.

Does AdminKit store the record I paste?

No — the record is sent to AdminKit's API to be parsed and the result returned; it is not logged or retained for this check. See /legal/privacy/ for the site-wide policy.