InputTestHub

SPF Record Checker

Checks an SPF record for the ten-lookup limit, a deprecated ptr, a missing all and other faults that silently break authentication.

Developer Nothing uploaded No sign-up Free, unlimited
Developer tool
Paste something on the left to see the result.
In short An SPF record may use at most 10 DNS lookups. Each include:, a, mx, ptr, exists and redirect costs one, and an include: also costs whatever it includes in turn — Google Workspace's _spf.google.com expands to about four. Going over the limit does not degrade SPF gracefully; receivers return a permanent error and SPF fails for every message you send, including from servers the record lists. ip4: and ip6: ranges cost nothing, which is why replacing an include: with the provider's published ranges is the usual fix. Paste a record into the SPF Record Checker on inputtesthub.com and it counts the lookups, flags a deprecated ptr, a missing all and an accidental +all, and does it entirely in your browser with no DNS query.

How to use the SPF Record Checker

  1. Paste the TXT value that starts with v=spf1.
  2. Read the lookup count against the limit of 10.
  3. Fix anything listed as an error before anything listed as a warning.

About the SPF Record Checker

The SPF Record Checker checks an SPF record for the ten-lookup limit, a deprecated ptr, a missing all and other faults that silently break authentication. It runs as plain JavaScript inside the page, which means there is no upload step, no queue and no size limit imposed by a server — the only limit is your own device.

What people use it for

  • Finding out why SPF suddenly fails after adding a provider.
  • Counting lookups before adding another include.
  • Checking a record inherited from someone who has left.

Details

Lookup limit10 — a hard failure, not a warning
Costs a lookupinclude, a, mx, ptr, exists, redirect
Costs nothingip4, ip6, all
Over the limitpermerror — SPF fails for every message
Records per domainExactly one; two is a permanent error
The lookup count here is computed from the record you paste plus published figures for how far well-known providers expand. Those figures change without notice when a provider restructures, so treat a count of 9 or 10 as needing confirmation from a resolver rather than as a safe margin.

Where this tool stops

No DNS is queried — the count is worked out from the record you paste, in your browser, so nothing about your domain is sent anywhere. An include: for a provider not in the built-in table is counted as one lookup when it may cost several.

Frequently asked questions

How many DNS lookups does SPF allow?
Ten. Each <code>include:</code>, <code>a</code>, <code>mx</code>, <code>ptr</code>, <code>exists</code> and <code>redirect</code> costs one, and an <code>include:</code> also costs whatever that record includes in turn. <code>ip4:</code> and <code>ip6:</code> cost nothing at all. The limit exists to stop SPF being used to amplify DNS traffic, and it is enforced strictly.
What happens if I go over ten lookups?
SPF fails completely. Receivers return a permanent error, and the result is the same as having no valid record — so mail from servers your record explicitly lists starts failing too. It is not a gradual degradation, which is why a record that worked for years breaks the day someone adds one more provider.
How do I get back under the limit?
Three ways, in order of preference. Replace an <code>include:</code> with the provider's published <code>ip4:</code> ranges, which cost nothing. Remove providers you no longer use — most records have at least one. Or move a service onto its own subdomain, which gets its own record and its own budget of ten.
Is ~all or -all better?
<code>~all</code> means softfail: accept but mark. <code>-all</code> means reject. Publish <code>~all</code> first, watch DMARC aggregate reports for a fortnight to find the services you forgot, then tighten to <code>-all</code>. Going straight to <code>-all</code> is how a company stops its own invoices arriving.
Is the SPF Record Checker free?
Free, unlimited, and no email address required. You can use it a hundred times a day and nothing changes.
Can you see what I put into this utility?
No. The SPF Record Checker runs entirely in your browser using JavaScript. Because the work happens locally, the utility also keeps working if your connection drops, and closing the tab is all it takes to discard everything.
What do people use the SPF Record Checker for most?
The jobs it is built for: finding out why SPF suddenly fails after adding a provider. Counting lookups before adding another include. Checking a record inherited from someone who has left. It is built for exactly those cases rather than being a general-purpose tool with this bolted on.
When is the SPF Record Checker not the right tool?
No DNS is queried — the count is worked out from the record you paste, in your browser, so nothing about your domain is sent anywhere. An include: for a provider not in the built-in table is counted as one lookup when it may cost several. Knowing where a tool stops being trustworthy matters more than the cases where it works.
Which values should I know?
Lookup limit is 10 — a hard failure, not a warning. Costs a lookup is include, a, mx, ptr, exists, redirect. Costs nothing is ip4, ip6, all. These are printed on the page itself, so you do not have to take them on trust.
Does the SPF Record Checker work on a phone?
Yes. The page is responsive and the utility works in Chrome, Safari, Firefox, Edge and Samsung Internet on both Android and iOS. There is no app to install and nothing to sign into.

Related developer tools

All 92
01

JSON Formatter

Formats, indents and validates JSON with precise error positions, key sorting and a…

02

JSON Validator

Checks whether JSON is valid and reports the exact line, column and reason for the first error…

03

JSON Minifier

Strips all whitespace from JSON to produce the smallest valid output, showing the bytes saved.

04

JSON to CSV Converter

Converts a JSON array of objects into CSV, flattening nested keys and handling missing fields…

05

CSV to JSON Converter

Turns CSV or TSV into a JSON array of objects, with type detection for numbers and booleans.

06

JSON to XML Converter

Converts JSON into well-formed XML with a configurable root element and array item naming.

07

XML to JSON Converter

Parses XML and converts it to JSON, preserving attributes and handling repeated elements as…

08

JSON to YAML Converter

Converts JSON to clean YAML with correct indentation, quoting and multi-line string handling.

09

YAML to JSON Converter

Parses YAML and outputs equivalent JSON, with support for anchors, lists and nested maps.

10

JSON Escape and Unescape

Escapes a string for safe embedding inside JSON, and unescapes a JSON string back to plain text.