Email Verifier avatar

Email Verifier

Pricing

from $1.36 / 1,000 email verifieds

Go to Apify Store
Email Verifier

Email Verifier

Verify email lists with your own ZeroBounce, NeverBounce, MillionVerifier, BounceBan, or Reoon API key. One flat row per address: valid, invalid, catch all, risky, or unknown, plus role, free, and disposable flags. Your key, your credits. Clay ready.

Pricing

from $1.36 / 1,000 email verifieds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Check whether the email addresses on a list will deliver, using the verification service you already pay for. List addresses, pick your service, paste your API key, and get one flat row per address: a plain verdict (valid, invalid, catch all, risky, or unknown), the service's own status, and whether the address is a role address, a free mailbox, or a disposable one. Use it to clean a lead list before a campaign, check a Clay column, or keep bounces down on a sending domain.

The actor works with five services: ZeroBounce, NeverBounce, MillionVerifier, BounceBan, and Reoon Email Verifier. It sends each address to the service you choose, on your key, and reads the answer back into the same columns whichever service you use. It does not open a connection to any mail server itself.

Features

  • Your service, your key. Bring the account you already have. No new signup, and your service's own accuracy and pricing apply.
  • One layout for every service. The five services spell their answers differently (catch-all, catchall, accept_all). Every row uses the same five verdicts and the same columns, so you can switch services without changing your Clay table.
  • Credits protected. An address with broken syntax is never sent, so it costs you nothing at your service. A repeated address is checked once. If your service rejects the key or says the account is out of credits, the run stops sending at once and labels the rest.
  • You pay this actor for answers only. An address is charged only when your service gave a real verdict. Unknown answers and errors are free.
  • Spelling fixes. Where your service suggests one, did_you_mean carries the fix, such as gmail.com for gmial.com.

Input

FieldTypeDefaultWhat it does
emailsarrayAddresses to verify, 1 to 5,000 per run
emailstringOne address, for a Clay column with one address per row. Added to emails
providerstringzerobounceYour service: zerobounce, neverbounce, millionverifier, bounceban, or reoon, in any capitalization
api_keysecret stringYour API key for that service
concurrencystring5Addresses checked at the same time, 1 to 20
max_charge_usdstringStop before an actor charge that would pass this amount

Every input except emails accepts a string, which is what Clay sends. emails is a list; in Clay, map one address per row to email, or wrap a column in a one item list. Your key is stored encrypted by Apify, sent only to the service you chose, and never written to a row or the log.

Where to find your key:

ServiceWhere the key is
ZeroBounceDashboard, API section, API keys
NeverBounceApps, create a Custom Integration app, API key
MillionVerifierDashboard, API
BounceBanAccount, API key
Reoon Email VerifierDashboard, API and integrations

Output

One row per address. Every row has the same columns.

FieldTypeMeaning
inputstringThe entry as you gave it.
emailstringThe address checked, trimmed and lowercase. Empty when the input is not an email address.
domainstringThe part after the @.
verdictstringvalid: the mailbox accepts mail. invalid: the service checked and it will not deliver, or the input is not an email address. catch_all: the domain accepts every address, so this mailbox cannot be confirmed. risky: it may deliver but is a spam trap, abuse, disposable, or full mailbox. unknown: the service could not tell.
providerstringThe verification service that checked the address.
provider_statusstringThe status as the service wrote it, for example catch-all at ZeroBounce or catchall at NeverBounce.
provider_sub_statusstringThe service's extra detail where it gives one: the sub status at ZeroBounce, the flags at NeverBounce, the sub result at MillionVerifier, accept_all at BounceBan.
is_rolebooleantrue for a shared address such as info@ or sales@, where the service says so.
is_free_emailbooleantrue for a free mailbox provider such as Gmail, where the service says so.
is_disposablebooleantrue for a temporary or throwaway address, where the service says so.
did_you_meanstringA spelling fix the service suggests, such as gmail.com for gmial.com.
row_statusstringok: the service gave a verdict of valid, invalid, catch_all, or risky (charged). inconclusive: the service answered unknown (free). not_sent: the input is not an email address, so it was not sent (free). error: the service failed, refused your key, or the run stopped before this address (free).
error_reasonstringWhy a row is inconclusive, not_sent, or error, for example invalid_syntax, the service's own message about your key or credits, or input_invalid for input the run could not use.
billable_events_jsonstringWhat this row was billed as, for example {"email-verified":1}. {} means free.
checked_atstringWhen the row was written, UTC.

Example row:

{
"input": "Jane Doe <Jane.Doe@Example.com>",
"email": "jane.doe@example.com",
"domain": "example.com",
"verdict": "valid",
"provider": "zerobounce",
"provider_status": "valid",
"provider_sub_status": null,
"is_role": false,
"is_free_email": false,
"is_disposable": false,
"did_you_mean": null,
"row_status": "ok",
"error_reason": null,
"billable_events_json": "{\"email-verified\":1}",
"checked_at": "2026-10-28T18:00:00.000Z"
}

How each service's answer maps to the verdict:

VerdictZeroBounceNeverBounceMillionVerifierBounceBanReoon
validvalidvalidokdeliverablesafe, role_account
invalidinvalidinvalidinvalidundeliverableinvalid, disabled
catch_allcatch-allcatchallcatch_allrisky on an accept all domaincatch_all
riskyspamtrap, abuse, do_not_maildisposabledisposableriskydisposable, spamtrap, inbox_full
unknownunknownunknownunknownunknownunknown

A status a service adds later and the actor does not know yet is reported as unknown, never as invalid.

The run also writes a RUN_SUMMARY record to its key-value store with counts per verdict and row status, the requests made, and the charges.

Pricing

Two separate bills:

  1. Your verification service bills each check to your account there, at your plan's price. This actor never sees or changes that bill.
  2. This actor charges per event:
EventFree planBronzeSilverGold
email-verified, one address your service answered valid, invalid, catch all, or risky$0.0016$0.00152$0.00144$0.00136
apify-actor-start, once per run (one per GB of memory; the default 128 MB is one)$0.0006$0.0006$0.0006$0.0006

Per 1,000 verified addresses: $1.60 on the free plan, $1.36 on Gold.

Free rows: an unknown answer, an error row, an address with broken syntax, and a repeat of an address in the same run. A run whose input is refused, for example with no key, writes one free row and charges only the run start.

Free plan cap: 1.50 USD of evaluation a month, about 938 verified addresses. Any paid Apify plan removes the cap, and it resets on the 1st. The run stops before a charge that passes your maximum charge per run in Apify or your max_charge_usd, and it checks that limit before it sends addresses to your service, so it does not spend your service credits on addresses it could not return.

Mamba Labs pays the platform costs of your run.

Usage examples

Apify Console or API. Paste your addresses, pick your service, add your key, and start the run. Read the rows with GET https://api.apify.com/v2/datasets/{datasetId}/items.

{
"emails": ["jane@example.com", "sales@example.org"],
"provider": "neverbounce",
"api_key": "YOUR_NEVERBOUNCE_API_KEY"
}

You supply the key. The Store example input holds YOUR_ZEROBOUNCE_API_KEY in api_key, which is a marker for your own key and not a working value. Replace it with your ZeroBounce key, or change provider and paste that service's key. A run that still carries the marker, or has no key, sends nothing to any service and writes one free input_invalid row that tells you to add your key; only the run start is charged.

Clay. Add an Apify column, pick this actor, map your email column to email, set provider, and paste your key in api_key. Filter on verdict.

Error handling

CaseWhat you get
No addresses, an empty list, no key, an unknown service, a wrong type, or more than 5,000 addressesOne free row, row_status error, error_reason starting input_invalid:, and the run ends successfully. Only the run start is charged
An entry that is not an email addressA free row, row_status not_sent, verdict invalid, error_reason invalid_syntax. Not sent to your service
Your service rejects the key or says the account is out of creditsThat row carries the service's message. The run sends nothing more, writes every remaining address as an error row whose note starts not_sent: with the same message, and ends successfully. All free
Your service rate limits or fails for a momentTwo more tries, 2 and 4 seconds apart, then a free error row
BounceBan is still checking (greylisting)The actor polls BounceBan's free status call for the result rather than sending the address again
The run nears its timeoutIt stops starting new addresses 90 seconds before the timeout, writes the rest as free not_started rows, and ends successfully

Limitations

  • The verdict is your service's. Accuracy, catch all handling, and what counts as risky differ by service and plan.
  • Catch all domains accept every address, so most services cannot confirm a single mailbox on them. BounceBan resolves many of them; the others usually return catch all.
  • The actor does not check mailboxes itself. Apify blocks the outbound mail port, so every mailbox check runs at your service.
  • Your service's rate limits apply. Lower concurrency if your plan allows few checks per second.

Mamba Labs actor suite

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Tooling DetectorEwkHhmqiuJgRoVEbE
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Contact Details Extractor4mMncKaJykiq94grz
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License LookupWBYK3CPI2kdeq4bP1
Cookie Consent AuditTrKyOS0KBoGC35nbr
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness DirectoryLIpwlgfE3LaQBaXd4
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Monitor1eOwxhBVxzvOXAm4s
Government Contract Award MonitorzhEtllASykOcx9hJ8
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer FindertpkedmloIIWtXx6sg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Change TrackerL8UbEmMJC1XYPSZOb
Job Posting MonitorQCfICD9kOPiOdj5iI
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Company Findere2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
Meta Ad Library MonitorJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Company Registrations Feedg2WfZhWvCtc57g2Jo
New Hire FindercKuc38p4nYHNF3IW8
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reporting Window FinderuINxR7a1IW8qUTRUX
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
WCAG Accessibility AuditP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel Stats Extractor6hSpD3kd2s2IQ4VSs

Built by Mamba Labs.