Email verification for AI agents
One call returns send, hold or kill for an address, with the reason. Signup and credits happen by API too, so an outreach agent can provision itself. No form, no CAPTCHA, no dashboard.
curl https://api.mxprobe.dev/v1/verify \
-H "Authorization: Bearer $MXPROBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"emails":["hello@example.com"]}'
{
"email": "hello@example.com",
"action": "send",
"verdict": "OK",
"reason": "mailbox accepted by aspmx.l.google.com",
"checks": { "syntax": true, "mx": "aspmx.l.google.com", "smtp": "accepted", "catch_all": false }
}
| action | meaning |
|---|---|
| send | The mail server accepted the mailbox. Go ahead. |
| hold | Send only with a fallback in hand: a catch-all domain, a forwarder, a greylist, or a server that refused the probe rather than the mailbox. A hold never becomes a kill on a refusal. |
| kill | Never send. The domain has no mail server, or the mail server said the mailbox does not exist. |
Give it to your agent
The MCP server exposes five tools: verify_email, verify_batch, signup, balance, buy_credits.
claude mcp add mxprobe -- npx -y mxprobe mcp
Any MCP client: {"mcpServers":{"mxprobe":{"command":"npx","args":["-y","mxprobe","mcp"]}}}
Or run the free tier on your own machine
The DNS tier is open source and runs locally with no key. It finds every domain that cannot receive mail, in about a second for a whole list.
npx mxprobe check hello@example.com ops@example.org
npx mxprobe check --hosted hello@example.com # survivors go to the hosted mailbox probe
Get a key by API
curl -X POST https://api.mxprobe.dev/v1/signup \
-H "Content-Type: application/json" -d '{"email":"you@company.com"}'
The key comes back in the response and by mail, with 100 free checks on it. GET /v1/balance reads the credits. POST /v1/credits/checkout returns a payment link. The API describes itself.
Price
9 USD per 10,000 checks
One payment, no subscription, credits never expire. 100 checks free at signup. A DNS kill from the CLI costs nothing; only the hosted mailbox probe uses credits.
Why this exists
An outreach agent of mine sent a few thousand cold emails, and hundreds bounced. Some bounces arrived days later, after the mail had already been counted as delivered. Those addresses were on domains that cannot receive mail at all, which a one-second check catches before you send. The rest were mailboxes that no longer exist, which only asking the mail server reveals. Run over the same list afterwards, this checker would have stopped about half of the bounces, and it cleared every address that had actually been delivered.