Everyone can spot a typo. Catch-alls are the hard part
A lot of business domains accept mail addressed to anyone, which is how a verifier hands back a page of valids that still bounces. We ask the server about a mailbox that cannot exist first — and what it says to that decides what we tell you.
- Nothing is ever delivered
- One probe per domain, cached a day
- Six answers, not two
- Daily checks on every plan
Everyone can spot a typo. Catch-alls are the hard part
A lot of business domains accept mail addressed to anyone, which is how a verifier hands back a page of valids that still bounces. Before we believe what a server says about your contact, we ask it about a mailbox that cannot exist — and what it says to that decides what we tell you.
Two domains, one file
live SMTP · RCPT TO only · nothing deliveredMX aspmx.l.google.com
→ RCPT TO:<no-such-mailbox-8f3ka20b@foldguide.com>
550 5.1.1 The email account you tried to reach does not exist
→ RCPT TO:<dana.whitfield@foldguide.com>
250 2.1.5 OK
This server turns away a mailbox that cannot exist, so its yes to a real one means something. The address is deliverable.
MX mail.northbay-partners.com
→ RCPT TO:<no-such-mailbox-p2k9dl3xqv@northbay-partners.com>
250 2.1.5 Recipient ok
It said yes to a mailbox nobody has, so it will say yes to anything — including a name that was guessed. We never ask about the real address, because the answer carries no information. You get catch-all, not a valid you cannot rely on.
One probe per domain, not per address
Whether a domain accepts everything is a fact about the domain, so it is tested once and cached for a day. Forty thousand addresses across twelve hundred domains costs twelve hundred conversations.
The providers that accept everyone are known
Yahoo, AOL, ymail and rocketmail answer 250 to every recipient, invented or not. Calling every address at them catch-all would be true and useless, so they are answered from classification instead.
Unknown stays unknown
A greylist deferral, a timeout, a server that will not hold a conversation — those come back unknown, never rounded up to valid. Full mailbox, disabled account and role address each get their own answer too.
Nothing is ever delivered
The probe opens the conversation and quits before the message body, from our own pool of verification IPs on a per-IP daily budget. Your sending addresses are never involved.
The same verifier runs wherever you reach it — a file pasted into the dashboard, POST /verify for a single address inside your own request, or verify_list from an agent. Every plan comes with a daily allowance of instant checks.
Six verdicts, not a coin flip
Most verifiers collapse the world into valid and invalid. The interesting answers live between those two, so each gets its own verdict.
The server turned away a mailbox that cannot exist, then said yes to your contact. That yes means something — the address is deliverable.
The domain says yes to anyone, invented or not, so its yes carries no information. You get catch-all — never a valid you cannot rely on.
A greylist deferral, a timeout, a server that will not hold a conversation. Unknown stays unknown and is never rounded up to valid.
sales@, info@, support@ — addresses that belong to a function rather than a person get their own answer, so you can treat them differently.
The mailbox exists but cannot take mail right now. Its own answer, instead of a bounce your sender reputation has to absorb.
The account is gone or switched off. There is no version of a campaign where this address should be sent to.
The same verifier, wherever you need it
One engine behind the dashboard, the REST API and the MCP server — so the answer never depends on which door you came through.
Paste a file in the dashboard
Drop a CSV or paste the list. Verification runs on upload, and the bad rows never make it into a campaign.
POST /verify inside your own flow
A single address, answered synchronously inside your own request — a signup form, a CRM import, anywhere a decision is made.
verify_list from an agent
The same verifier is an MCP tool, so an agent can clean a list as one step in a longer job without you writing the glue.
POST /api/public/v1/verify
# one address, inside your own request
{ "address": "dana.whitfield@foldguide.com" }
{ "status": "valid", "catch_all": false, "source": "smtp_probe" }Instant checks, every day, on every plan
Every plan comes with a daily allowance of instant checks. Bulk list runs are separate — upload the whole file and it is worked through without touching the day's instant budget.
Starter
500
instant checks a day
one company getting outbound off the ground
Growth
1,500
instant checks a day
agencies and teams running several books
Scale
4,500
instant checks a day
high-volume senders with their own footprint
Need more headroom? Blocks of 500 instant checks a day stack onto any plan at $9.95/mo each.
Send to the list you actually have
Paste the file, watch the catch-alls surface, and keep the bounces off your sender reputation.