Real-time email verification API

Stop bounces before they happen. Verify emails before you send.

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 to start.

No credit card. No sales call. Live key in under a minute.

~200ms
Median response time
97-99%
Hard bounces caught on real lists
100
Free checks on signup
POST /api/public/v1/verify
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
}

Try it free, no signup

Check a single address on the homepage, or upload a CSV for a free list audit.

Run a free list audit

Verifying signups and campaign lists for teams like:

The three things bad data is costing you right now

Hard bounces wreck your sender reputation

A 5% bounce rate is enough for mailbox providers to start throttling. Once the inbox placement drops, even your good emails stop landing.

Live MX resolution rejects dead domains and typo'd addresses before they ever enter your ESP.

Spam traps and role inboxes get you blocklisted

One recycled trap or a batch of info@ addresses can put your sending domain on a blocklist for weeks.

Role-account and disposable detection flags the addresses that never should have been mailed.

You pay your ESP to email people who don't exist

Most lists carry 15-30% junk. You pay per contact, run campaigns against ghosts, and report inflated funnel numbers.

One bulk call cleans the list up front, so you only pay for contacts that are actually reachable.

Stop bad data before it costs you money

Start with 100 free checks to start. No credit card required.

Start free now — 100 free checks

Live in three steps

  1. 1

    Get your API key

    Create a free account, copy your key from the dashboard. No credit card, no sales call.

  2. 2

    Send a request

    POST the address to /api/public/v1/verify, or send up to 100 at once to /verify/bulk.

  3. 3

    Get results instantly

    Status, 0-100 score and per-check detail come back in a single JSON body — block, flag, or allow on your side.

request / response
// 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 }
  ]
}

Try the API in under 5 minutes

Create your free account, copy your key and send your first request.

Start free now — 100 free checks

Built for production, priced for prototypes

Real-time and bulk

Sub-second single checks for signup forms, plus batches of 100 processed in parallel for list cleaning.

Disposable and role detection

Continuously updated throwaway-domain lists and role-inbox patterns, returned as explicit booleans.

Built for uptime

Stateless edge deployment with no cold starts. Median response around 200ms, worldwide.

One endpoint to integrate

Plain HTTP with a bearer token. No SDK lock-in, works from any language or no-code tool.

Scores, not verdicts

Every result carries a 0-100 score and the raw checks, so you set the threshold your funnel can live with.

Transparent pricing

One credit per check. 100 free to start, then $29 for 1,000. No seat fees or hidden overage.

Built for production, free to try

Every feature is available on the free plan. Upgrade only when you grow.

Start free now — 100 free checks

Where teams put this to work

The same endpoint, four very different jobs — and the outcome each one moves.

Email marketing & campaign hygiene

Clean the list before it hits your ESP so your sends land in the inbox instead of the spam folder.

  • Lower bounce rate
  • Better sender reputation
  • Higher open rates
  • Smaller ESP bill

Signup & account creation

Verify at the form, in real time, so fake and throwaway addresses never make it into your user table.

  • Block disposable inboxes
  • Fewer fake accounts
  • Cleaner activation metrics
  • Less support spam

Lead generation & CRM quality

Score inbound and purchased leads on arrival so reps spend their day on contacts that actually reply.

  • Qualify leads instantly
  • Save rep hours
  • Accurate CRM data
  • Prioritise reachable prospects

Database maintenance

Re-verify dormant contacts on a schedule — roughly a third of addresses go stale every year.

  • Remove dead contacts
  • Cut storage and seat costs
  • Trustworthy reporting
  • Fewer complaints

See what clean data does for your funnel

Create a free account and run your first checks in the next two minutes.

Start free now — 100 free checks

Industries that rely on it

E-commerce

Order confirmations and campaigns that reach real buyers.

SaaS platforms

Clean signups and reliable onboarding email.

Agencies

Deliverability guarantees across every client list.

Fintech

Contactability checks as part of onboarding.

Technical specifications

Median response
~200ms
Checks performed
Syntax, MX/DNS, disposable, role, free provider
Bulk batch size
Up to 100 per call
Auth
Bearer API key
Output
Status + 0-100 score + raw checks
Coverage
Any domain, worldwide

Pricing

Simple credits. No surprises.

Pick a plan. Monthly or annual (2 months free). 1 credit = 1 verification. 100 free checks to start, no credit card required.

Annual subscription

Growth

10,000 credits refilled every month · cancel anytime · billed yearly

$99/mo
$82.50/mo
$990 billed yearly · save $198 (2 months free)
Free10,000 credits / moEnterprise
Start Growth planPrices in USD · applicable taxes calculated at checkoutRefundable within 7 days of payment · after 7 days the purchase is final. Refund terms

Top-Up · 250 credits

One-time purchase · no subscription · credits never expire

Questions developers actually ask

Clean your next campaign before you press send.

Set up in 5 minutes. Your first 100 checks are free.