Catch typos, dead domains, disposable inboxes and role accounts in about 200ms per address — real-time at signup or in bulk batches of 100. One endpoint, JSON in, JSON out, 100 free checks every month.
No credit card. No sales call. Live key in under a minute.
curl -X POST https://fishymails.com/api/public/v1/verify \
-H "Authorization: Bearer fm_live_xxx" \
-H "Content-Type: application/json" \
-d '{"kind":"email","value":"jane@acme.io"}'
{
"kind": "email",
"value": "jane@acme.io",
"status": "valid",
"score": 95,
"checks": {
"has_mx": true,
"disposable": false,
"role_account": false,
"free_provider": false
},
"latency_ms": 184
}A 5% bounce rate is enough for mailbox providers to start throttling. Once the inbox placement drops, even your good emails stop landing.
One recycled trap or a batch of info@ addresses can put your sending domain on a blocklist for weeks.
Most lists carry 15-30% junk. You pay per contact, run campaigns against ghosts, and report inflated funnel numbers.
Create a free account, copy your key from the dashboard. No credit card, no sales call.
POST the address to /api/public/v1/verify, or send up to 100 at once to /verify/bulk.
Status, 0-100 score and per-check detail come back in a single JSON body — block, flag, or allow on your side.
// Bulk: up to 100 addresses in one call
await fetch("https://fishymails.com/api/public/v1/verify/bulk", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FISHYMAILS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
emails: ["jane@acme.io", "info@acme.io", "bob@mailinator.com"],
}),
});
{
"count": 3,
"credits_remaining": 97,
"results": [
{ "value": "jane@acme.io", "status": "valid", "score": 95 },
{ "value": "info@acme.io", "status": "risky", "score": 75 },
{ "value": "bob@mailinator.com", "status": "invalid", "score": 30 }
]
}Sub-second single checks for signup forms, plus batches of 100 processed in parallel for list cleaning.
Continuously updated throwaway-domain lists and role-inbox patterns, returned as explicit booleans.
Stateless edge deployment with no cold starts. Median response around 200ms, worldwide.
Plain HTTP with a bearer token. No SDK lock-in, works from any language or no-code tool.
Every result carries a 0-100 score and the raw checks, so you set the threshold your funnel can live with.
One credit per check. 100 free every month, then $29 for 1,000. No seat fees or hidden overage.
Set up in 5 minutes. Your first 100 checks are free.
Verifying signups and campaign lists for teams like: