---
title: "Email Verification APIs: How to Verify Emails | ONEGTMLAB"
description: "Compare 9 tools for verifying emails on cost per email, unknown and catch-all billing, MCP access and limits. Prices checked 25 Oct 2026, plus our tests."
canonical: https://www.onegtmlab.dev/tool-directory/how-to/verify-emails
---

# Email Verification APIs: How to Verify Emails | ONEGTMLAB

[](/)

[

Book a call

](/book)

How-to guide

# How to verify email addresses before you send

Run every address through a verification API before it goes into your sequencer. The API returns a status such as valid, invalid, catch-all or unknown. Send the valid ones, drop the invalid ones and hold catch-alls for a second check. Entry packs cost $0.0039 per email at MillionVerifier (10,000 credits) and $0.0195 at ZeroBounce (2,000 credits).

Verified 25 Oct 2026 · 6 ways to do it · 9 tools compared

[

Cost at your volume

](#cost)[

Every way to do it

](#routes)

01

## Every way to do it

6 routes, from code to no-code: who each one suits and the tools that run it. Open a route for how it works and where it goes wrong.

1.  1
    
    ### A verifier API
    
    Code
    
    Cleaning a list you already have, and a last check on every address right before it goes into the sequencer.
    
    -   [![](/_astro/zerobounce.DMK7iQt0_Z4rXLd.webp)ZeroBounce](/tool-directory/verification/zerobounce "ZeroBounce")
    -   [![](/_astro/bouncer.36eXjmET_1gHAAn.webp)Bouncer](/tool-directory/verification/bouncer "Bouncer")
    -   [![](/_astro/millionverifier.CykZd8HV_UbjAk.webp)MillionVerifier](/tool-directory/verification/millionverifier "MillionVerifier")
    -   [![](/_astro/neverbounce.BMIMci8P_Z1jYsF5.webp)NeverBounce](/tool-directory/verification/neverbounce "NeverBounce")
    -   [![](/_astro/hunter.C-TuEfmZ_1PWV4T.webp)Hunter](/tool-directory/enrichment/hunter "Hunter")
    -   [![](/_astro/leadmagic.VYwz4sDG.svg)LeadMagic](/tool-directory/enrichment/leadmagic "LeadMagic")
    -   [![](/_astro/findymail.BKowYsnX_Z1blaX3.webp)Findymail](/tool-directory/enrichment/findymail "Findymail")
    
    How it works and where it goes wrongShow less
    
    Send one address to a real-time endpoint, or upload a whole list as a batch job, then read the status field on each result.
    
    **Where it goes wrong.** Reading 'valid' as proof of identity. A valid result means the mailbox accepts mail. In our 50-person pilot, a guessed address passed ZeroBounce as valid and belonged to a different person with the same first name.
    
2.  2
    
    ### Verify as you find
    
    Code
    
    New lists where you need the email as well as the check.
    
    -   [![](/_astro/prospeo.deQVoOYK_Zg2G6l.webp)Prospeo](/tool-directory/sourcing/prospeo "Prospeo")
    -   [![](/_astro/findymail.BKowYsnX_Z1blaX3.webp)Findymail](/tool-directory/enrichment/findymail "Findymail")
    -   [![](/_astro/leadmagic.VYwz4sDG.svg)LeadMagic](/tool-directory/enrichment/leadmagic "LeadMagic")
    -   [![](/_astro/hunter.C-TuEfmZ_1PWV4T.webp)Hunter](/tool-directory/enrichment/hunter "Hunter")
    
    How it works and where it goes wrongShow less
    
    Use a finder that checks each address before it returns it, and accept only its verified status. Prospeo takes an only\_verified\_email flag. Findymail and LeadMagic charge for a find only when the email is valid.
    
    **Where it goes wrong.** Verification goes stale. An address checked when you found it can fail by the time you send, so we still run a fresh verifier pass on accepted emails right before upload.
    
3.  3
    
    ### Waterfall
    
    Code
    
    A second check on addresses the first verifier left as catch-all or unknown.
    
    -   [![](/_astro/findymail.BKowYsnX_Z1blaX3.webp)Findymail](/tool-directory/enrichment/findymail "Findymail")
    -   [![](/_astro/zerobounce.DMK7iQt0_Z4rXLd.webp)ZeroBounce](/tool-directory/verification/zerobounce "ZeroBounce")
    
    How it works and where it goes wrongShow less
    
    Chaining two or more verifiers over the same list. For verification, the second verifier mostly re-checks addresses the first one already graded. A waterfall adds more when you are finding emails; see the related job.
    
    Run over a whole list, it pays again for most addresses, and Findymail advises against re-checking its emails with another verifier, because other verifiers mark its catch-all results as risky.
    
    **Where it goes wrong.** Two verifiers disagree on a catch-all and you drop a reachable person. Use one verifier pass, then a catch-all step such as ZeroBounce AI scoring or a finder that resolves catch-alls.
    
4.  4
    
    ### No-code / Clay
    
    No code
    
    Teams that already build and enrich lists in Clay tables.
    
    -   [![](/_astro/clay.CHDKXtEw_Z20f3oS.webp)Clay](/tool-directory/data-platforms/clay "Clay")
    -   [![](/_astro/zerobounce.DMK7iQt0_Z4rXLd.webp)ZeroBounce](/tool-directory/verification/zerobounce "ZeroBounce")
    -   [![](/_astro/neverbounce.BMIMci8P_Z1jYsF5.webp)NeverBounce](/tool-directory/verification/neverbounce "NeverBounce")
    
    How it works and where it goes wrongShow less
    
    Add a verification enrichment column to a Clay table, or connect your own verifier key. With your own key Clay charges 0 data credits for that column but still counts Actions.
    
    **Where it goes wrong.** Two meters. Actions reset each cycle and cannot be topped up, and the HTTP API column that calls any verifier directly needs the Growth or Enterprise plan. We did not capture Clay's per-row price for email verification.
    
5.  5
    
    ### Through an AI agent (MCP)
    
    AI agent
    
    Spot checks and small lists while you work in an agent.
    
    -   [![](/_astro/bouncer.36eXjmET_1gHAAn.webp)Bouncer](/tool-directory/verification/bouncer "Bouncer")
    -   [![](/_astro/zerobounce.DMK7iQt0_Z4rXLd.webp)ZeroBounce](/tool-directory/verification/zerobounce "ZeroBounce")
    -   [![](/_astro/hunter.C-TuEfmZ_1PWV4T.webp)Hunter](/tool-directory/enrichment/hunter "Hunter")
    -   [![](/_astro/leadmagic.VYwz4sDG.svg)LeadMagic](/tool-directory/enrichment/leadmagic "LeadMagic")
    -   [![](/_astro/findymail.BKowYsnX_Z1blaX3.webp)Findymail](/tool-directory/enrichment/findymail "Findymail")
    
    How it works and where it goes wrongShow less
    
    Connect the vendor's MCP server to Claude or another agent and ask it to verify an address or start a batch. Bouncer's connector is free and draws on your existing credits.
    
    **Where it goes wrong.** One prompt can trigger many paid calls. For a list, have the agent create a batch (Bouncer's create\_batch tool) instead of looping single checks.
    
6.  6
    
    ### Manual / UI
    
    No code
    
    One-off lists from an event or a CRM export.
    
    -   [![](/_astro/zerobounce.DMK7iQt0_Z4rXLd.webp)ZeroBounce](/tool-directory/verification/zerobounce "ZeroBounce")
    -   [![](/_astro/bouncer.36eXjmET_1gHAAn.webp)Bouncer](/tool-directory/verification/bouncer "Bouncer")
    -   [![](/_astro/neverbounce.BMIMci8P_Z1jYsF5.webp)NeverBounce](/tool-directory/verification/neverbounce "NeverBounce")
    -   [![](/_astro/millionverifier.CykZd8HV_UbjAk.webp)MillionVerifier](/tool-directory/verification/millionverifier "MillionVerifier")
    
    How it works and where it goes wrongShow less
    
    Upload a CSV in the vendor's dashboard, wait for processing, then download the cleaned file.
    
    **Where it goes wrong.** Files are deleted after 30 days at ZeroBounce and MillionVerifier, so download results soon. MillionVerifier's money-back guarantee covers web-app uploads only.
    

02

## What it costs at your volume

Move the slider to your monthly volume. Each row shows the cheapest published plan or pack that covers it.

Your volume a month

1,000

Tool

Cheapest option that covers it

Billing basis

Cost

Per email

[ZeroBounce](/tool-directory/verification/zerobounce)

2,000 credits

One-off pack

$39 one-off

$0.0195

[Bouncer](/tool-directory/verification/bouncer)

1,000 credits

One-off pack

$8 one-off

$0.008

[MillionVerifier](/tool-directory/verification/millionverifier)

10,000 credits

One-off pack

$39 one-off

$0.0039

[NeverBounce](/tool-directory/verification/neverbounce)

1,000 credits

One-off pack

$8 one-off

$0.008

[Hunter](/tool-directory/enrichment/hunter)

2,000 credits

Annual plan, per month

$34/mo, billed annually

$0.034

[LeadMagic](/tool-directory/enrichment/leadmagic)

5,000 credits

Annual plan, per month

$83/mo, billed annually

$0.083

[Findymail](/tool-directory/enrichment/findymail)

1,000 credits

Annual plan, per month

$41/mo, billed annually

$0.041

[Prospeo](/tool-directory/sourcing/prospeo)

1,000 credits

One-off pack

$10 one-off

$0.01

[Clay](/tool-directory/data-platforms/clay)

2,500 credits

Annual plan, per month

$167/mo, billed annually

$0.167

Each option is a published plan or credit pack from the tool's own pricing page (linked on its review). Plans renew every month; packs are paid once. Per-action cost: for a pack, its price per credit (unused credits stay for later); for a plan, the month's price divided by your volume, so a plan you do not fill costs more per action. Notes per tool are in the list below.

03

## Step by step

The calls in order, with the endpoint for each step.

### A verifier API

1.  Create a key on ZeroBounce's API page. You get a Master Key and up to 5 keys, each with an optional IP whitelist.
2.  Check your balance. This call is free.  
    `GET /v2/getcredits`
3.  Test with a sandbox address such as valid@example.com. Sandbox calls cost 0 credits.  
    `GET /v2/validate`
4.  Validate one address in real time for 1 credit. Unknown results are free.  
    `GET /v2/validate`
5.  For a list, upload a file to the bulk host, poll its status, then download the results.  
    `POST bulkapi.zerobounce.net/v2/sendfile`
6.  Route by status: send valid, drop invalid, hold catch-all in its own tier for a second check.

### Verify as you find

1.  Call Prospeo's enrich-person with the person's LinkedIn URL and set only\_verified\_email to true.  
    `POST /enrich-person`
2.  Send up to 50 people per request for lists.  
    `POST /bulk-enrich-person`
3.  Accept an email only when its domain matches the person's current company domain.
4.  Right before upload, run every accepted email through a verifier again.

### No-code / Clay

1.  In a table, choose Add column, then Add enrichment, and search for your verifier.
2.  Map the email input, check the per-row cost shown in Run settings, then Save.
3.  To use your own verifier key, connect it to the provider. The column then uses 0 data credits and still counts Actions.

### Through an AI agent (MCP)

1.  Add Bouncer's remote MCP server to your agent and sign in with your Bouncer account. No API key is pasted.  
    `https://api.usebouncer.com/mcp`
2.  Ask the agent to run check\_credits before a large job.
3.  Use verify\_email for one address. For a list, use create\_batch, check\_batch\_status and get\_batch\_results.

### Manual / UI

1.  In NeverBounce, run the free list analysis first to estimate the bounce rate.
2.  Choose Verify List and upload the CSV. Duplicates and bad syntax are removed free.
3.  Download the results and update the records they came from.

04

## What goes wrong, and the fix

-   Bounces from addresses that were marked valid.
    
    Why
    
    They were verified weeks before the send.
    
    Fix
    
    Re-verify every accepted email right before upload to the sequencer.
    
-   The email reaches a real mailbox that belongs to the wrong person.
    
    Why
    
    A guessed address on a shared first name passed verification. A verifier checks the mailbox, not the owner.
    
    Fix
    
    Find emails from the LinkedIn URL and prefer provider-verified results over verifier-only results.
    
-   Catch-all addresses get thrown away with the invalid ones.
    
    Why
    
    Catch-all is treated as a fail.
    
    Fix
    
    Hold catch-alls in their own tier. Score them (ZeroBounce AI scoring, 1 credit) or resolve them with a finder that verifies catch-alls.
    
-   ZeroBounce blocks your key for an hour.
    
    Why
    
    100 bad requests in a minute, or validate batches with more than 20 unknowns more than once an hour.
    
    Fix
    
    Check inputs before you call, and send lists through the bulk file API.
    
-   NeverBounce locks the account.
    
    Why
    
    Single checks looped over an existing list.
    
    Fix
    
    Use jobs for lists. Keep single check for sign-up forms.
    
-   The balance does not move after calls.
    
    Why
    
    NeverBounce's balance lagged the charge by about 20 minutes in our test.
    
    Fix
    
    Count spend from each response, not from the balance endpoint.
    
-   The budget assumed catch-alls were free and the bill is higher.
    
    Why
    
    MillionVerifier's free catch-alls are a goodwill programme the terms say can be withdrawn.
    
    Fix
    
    Budget 1 credit for every address.
    
-   A small Bouncer batch takes hours.
    
    Why
    
    Batches run one after another per account.
    
    Fix
    
    Keep few batches in flight, and call /finish on a stuck batch to get credits back.
    

05

## Tools that do this job

What each tool charges for this job and what to watch for. Every tool links to its full API review.

![](/_astro/zerobounce.DMK7iQt0_Zg4Sc.webp)

### [ZeroBounce](/tool-directory/verification/zerobounce)

MCP

Full validation API with real-time, batch and bulk-file modes, statuses that include spamtrap, abuse and do\_not\_mail, and AI scoring for catch-alls. We use it for the pre-send check in our client email pipelines.

**Cost**1 credit per validation; AI scoring is 1 more credit.MoreOne-off packs run from $0.0195 per credit (2,000 for $39) to $0.003199 (1M for $3,199). The ZeroBounce ONE subscription is cheaper per credit at every tier from 10,000 to 1M, and unused credits roll over while you stay subscribed. Plan rows show credits per month; plan\_annual is the monthly price billed annually. Freemium: 100 credits a month with a business or premium email domain. USD, verified 2026-10-25.

**Charged on a miss?**Unknown results and duplicates are free.

**Watch out**The docs give the batch endpoint 30 requests a minute; the app says 5 uses a minute with a 30-minute block.MorePlan for 5. More than 20 unknowns in a batch more than once an hour blocks you for an hour. The default host processes in the EU; use api-us for US-only processing. Using the API inside your own product needs a reseller agreement.

[ZeroBounce API review →](/tool-directory/verification/zerobounce)

![](/_astro/bouncer.36eXjmET_Z1gmEpr.webp)

### [Bouncer](/tool-directory/verification/bouncer)

MCP

EU-based verifier with clear published limits, async and synchronous batch modes, a domain check and a hosted MCP server that signs in with OAuth.

**Cost**1 credit per email or domain check.MorePacks run from $0.008 per credit (1,000 for $8) to $0.002 (1M for $2,000). Credits never expire. Minimum purchase 1,000 credits. 100 free credits to start. USD, verified 2026-10-25.

**Charged on a miss?**Unknown results and duplicates are free.

**Watch out**Batches run one at a time per account, so a small batch waits behind a large one.MoreCall /finish on a stuck batch to get credits back. The synchronous batch caches results for 24 hours, then re-checks and re-charges. The credits endpoint allows only 10 requests a minute.

[Bouncer API review →](/tool-directory/verification/bouncer)

![](/_astro/millionverifier.CykZd8HV_1yxc4E.webp)

### [MillionVerifier](/tool-directory/verification/millionverifier)

The lowest per-email price on this page for large lists, with a simple GET API and a CSV bulk API.

**Cost**1 credit per good or bad result.MorePacks run from $0.0039 per credit (10,000 for $39) to $0.00016 (50M for $8,499). The 500,000 pack costs $299, only twice the 100,000 pack. Credits never expire. USD, verified 2026-10-25.

**Charged on a miss?**Catch-all and unknown results are not charged under a goodwill programme that the terms say can be changed or withdrawn. On the API the credit may not be deducted; on bulk files it is deducted, then returned as promotional credit with no cash value.

**Watch out**No published rate limits and no webhooks, so bulk jobs must be polled.MoreThe money-back guarantee excludes API and one-by-one checks. The terms let MillionVerifier pause processing while it asks where a list came from.

[MillionVerifier API review →](/tool-directory/verification/millionverifier)

![](/_astro/neverbounce.BMIMci8P_Z8XlUA.webp)

### [NeverBounce](/tool-directory/verification/neverbounce)

Bulk list cleaning through async jobs with callbacks, plus a free list analysis that estimates the bounce rate before you spend.

**Cost**1 credit per billable row.MorePacks run from $0.008 per credit (1,000 for $8) to $0.002 (2M for $4,000). Pay-as-you-go credits expire 12 months after purchase. Growth is $49 a month for 10,000 emails on the public page; in the app on 25 Oct 2026 the Growth slider defaulted to $8 a month for 1,000 emails. 10 free credits on signup with a business email. USD, verified 2026-10-25.

**Charged on a miss?**Duplicates and bad syntax are free. The docs do not say unknown results are free.

**Watch out**Single check is for point of entry only.MoreLooping it over an existing list can get the account locked; use jobs. Limits: 10 concurrent jobs and 50 job runs a day. New jobs do nothing until you call parse and start. The live key starts with private\_, while the docs show secret\_.

[NeverBounce API review →](/tool-directory/verification/neverbounce)

![](/_astro/hunter.C-TuEfmZ_tLNUl.webp)

### [Hunter](/tool-directory/enrichment/hunter)

MCP

The verifier sits beside Hunter's finder and shares one credit pool, at half a credit per check.

**Cost**0.5 credit per verified email, so 1 credit covers 2 checks.MoreUnits are credits per month; plan\_annual is the monthly price billed annually. Monthly credits do not roll over. An API-only Data Platform sells verification credits separately from $0.011 down to $0.0022 each. USD, verified 2026-10-25.

**Charged on a miss?**Unknown is free. Repeat checks of the same address count once per billing period.

**Watch out**The verifier returns 202 after 20 seconds if it has not finished; poll the same call.MoreA rate-limit hit returns 403, and 429 means you are out of credits. Limit: 10 requests a second, 300 a minute.

[Hunter API review →](/tool-directory/enrichment/hunter)

![](/_astro/leadmagic.VYwz4sDG.svg)

### [LeadMagic](/tool-directory/enrichment/leadmagic)

MCP

Validation at a quarter credit per valid or invalid result, with unknown results free (including catch-all mailboxes it cannot verify), inside a finder platform with a hosted MCP.

**Cost**0.25 credit per valid or invalid result, so 1 credit covers 4 checks.MoreCredit price runs from $0.0198 (Essential, monthly) to $0.0071 (Ultimate, annual). Units are credits per month; plan\_annual is the monthly price billed annually. No free credits: new accounts choose a paid plan at signup. USD, verified 2026-10-25.

**Charged on a miss?**Unknown is free. Instant invalid results (bad syntax, no MX, disposable, blocklisted) still cost 0.25.

**Watch out**Self-serve plans are for internal use only.MoreThe hosted MCP accepts OAuth only. A past-due payment freezes the API, CLI, MCP and dashboard at once.

[LeadMagic API review →](/tool-directory/enrichment/leadmagic)

![](/_astro/findymail.BKowYsnX_1CKUcM.webp)

### [Findymail](/tool-directory/enrichment/findymail)

MCP

A verifier bundled with a finder that verifies in real time and refunds credits if bounces pass 5%.

**Cost**Credit-based plans include the same number of verifier credits as finder credits each month (units shown).More1 verifier credit per check. Rollover is capped at 2x. No pay-as-you-go. plan\_annual is the monthly price billed annually. Free account: 10 finder and 10 verifier credits, once. USD, verified 2026-10-25.

**Charged on a miss?**Charged 1 verifier credit whatever the result.

**Watch out**Finder and verifier credits cannot be swapped.MoreThe bounce guarantee is a credit refund. Usage-based plans ($99, $399, $999) publish no numeric usage allowance.

[Findymail API review →](/tool-directory/enrichment/findymail)

![](/_astro/prospeo.deQVoOYK_2h4bGL.webp)

### [Prospeo](/tool-directory/sourcing/prospeo)

MCP

Verify as you find: enrich-person returns only verified emails when you ask, and its catch-all resolution upgraded most catch-alls in our pilot.

**Cost**1 credit per verified email found.MoreUnits are credits per month, per user; plan\_annual is the monthly price billed annually with credits delivered up front. Credit add-ons start at $10 for 1,000. Credits do not roll over. USD, verified 2026-10-25.

**Charged on a miss?**No match costs 0 (we checked). The same record within 90 days is free.

**Watch out**Prospeo has no standalone verifier for addresses you bring.MoreThe Free plan has no API access. No-match answers come back as HTTP 400 with error\_code NO\_MATCH.

[Prospeo API review →](/tool-directory/sourcing/prospeo)

![](/_astro/clay.CHDKXtEw_Z1uYJc6.webp)

### [Clay](/tool-directory/data-platforms/clay)

MCP

Runs a verifier as a table column next to the rest of your enrichment, with your own key or Clay's credits.

**Cost**Units are data credits per month (Launch also includes 15,000 Actions, Growth 40,000).MoreData credits start at $0.05 each; Actions cost under $0.01 each. With your own provider key a column uses 0 data credits and still uses Actions. plan\_annual is the monthly price billed annually. USD, verified 2026-10-25.

**Charged on a miss?**No data-credit charge when a provider returns no result.

**Watch out**The HTTP API column needs Growth ($495 a month, monthly billing) or Enterprise.MoreTop-ups cost a 30% premium on Launch and Growth. A webhook source stops at 50,000 submissions.

[Clay API review →](/tool-directory/data-platforms/clay)

## Want us to build it for you?

Tell us the job and the volume. We will show you the route we would build, which tools we would use, and what we would check first.

[

Book a call

](/book)[

See case studies

](/case-studies)

06

## Questions people ask

Why do cold emails go to spam even with a verified email list?

Verification checks the recipient side only. You send an address and get back whether the mailbox exists and accepts mail, as statuses such as valid, invalid, catch-all and unknown. It does not test your sending setup. Verification vendors sell that as separate deliverability tools: ZeroBounce has warmup, inbox placement tests and blacklist monitors, and Bouncer's Deliverability Kit (from $25 a month) runs inbox placement, blocklist and SPF, DKIM and DMARC checks. When we opened ZeroBounce on 25 Oct 2026, its dashboard graded our own domain and listed missing records, even though SPF, DKIM and DMARC passed.

## Related

[How to find a person's work email address](/tool-directory/how-to/find-work-email)[Enrichment APIs](/tool-directory/enrichment)

Read from each tool's own pricing and API pages, such as [zerobounce.net/pricing](https://www.zerobounce.net/pricing), [usebouncer.com/pricing](https://www.usebouncer.com/pricing/) and [millionverifier.com](https://www.millionverifier.com/). Verified 25 Oct 2026.

[](/)

© 2026 ONEGTMLAB Private Limited. All rights reserved.

COMPANY

[

Why Us

](/#why-us)[

Process

](/#timeline)[

Blogs

](/blogs)[

About

](/about)[

Clients

](/clients)[

Free resources

](/free-resources)[

Newsletter

](/newsletter)

Services

[

GTM Engineering

](/ai-gtm-engineering)[

Account-Based Marketing

](/services/account-based-marketing)[

Paid Media

](/services/paid-media)[

Content Engineering

](/linkedin-personal-branding)[

RevOps

](/services/revops)[

SEO, AEO & GEO

](/services/seo-aeo-geo)[

All services

](/services)

![](/_astro/wordmark-3d.CMEfGdYr.svg)
