# Email Verifier (`mambalabs/email-verifier`) Actor

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.

- **URL**: https://apify.com/mambalabs/email-verifier.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.36 / 1,000 email verifieds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Email Verifier

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

| Field | Type | Default | What it does |
|---|---|---|---|
| `emails` | array | | Addresses to verify, 1 to 5,000 per run |
| `email` | string | | One address, for a Clay column with one address per row. Added to `emails` |
| `provider` | string | `zerobounce` | Your service: `zerobounce`, `neverbounce`, `millionverifier`, `bounceban`, or `reoon`, in any capitalization |
| `api_key` | secret string | | Your API key for that service |
| `concurrency` | string | `5` | Addresses checked at the same time, 1 to 20 |
| `max_charge_usd` | string | | Stop 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:

| Service | Where the key is |
|---|---|
| ZeroBounce | Dashboard, API section, API keys |
| NeverBounce | Apps, create a Custom Integration app, API key |
| MillionVerifier | Dashboard, API |
| BounceBan | Account, API key |
| Reoon Email Verifier | Dashboard, API and integrations |

### Output

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

| Field | Type | Meaning |
|---|---|---|
| `input` | string | The entry as you gave it. |
| `email` | string | The address checked, trimmed and lowercase. Empty when the input is not an email address. |
| `domain` | string | The part after the @. |
| `verdict` | string | valid: 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. |
| `provider` | string | The verification service that checked the address. |
| `provider_status` | string | The status as the service wrote it, for example catch-all at ZeroBounce or catchall at NeverBounce. |
| `provider_sub_status` | string | The 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_role` | boolean | true for a shared address such as info@ or sales@, where the service says so. |
| `is_free_email` | boolean | true for a free mailbox provider such as Gmail, where the service says so. |
| `is_disposable` | boolean | true for a temporary or throwaway address, where the service says so. |
| `did_you_mean` | string | A spelling fix the service suggests, such as gmail.com for gmial.com. |
| `row_status` | string | ok: 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_reason` | string | Why 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_json` | string | What this row was billed as, for example {"email-verified":1}. {} means free. |
| `checked_at` | string | When the row was written, UTC. |

Example row:

```json
{
  "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:

| Verdict | ZeroBounce | NeverBounce | MillionVerifier | BounceBan | Reoon |
|---|---|---|---|---|---|
| valid | valid | valid | ok | deliverable | safe, role_account |
| invalid | invalid | invalid | invalid | undeliverable | invalid, disabled |
| catch_all | catch-all | catchall | catch_all | risky on an accept all domain | catch_all |
| risky | spamtrap, abuse, do_not_mail | disposable | disposable | risky | disposable, spamtrap, inbox_full |
| unknown | unknown | unknown | unknown | unknown | unknown |

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:

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| `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`.

```json
{
  "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

| Case | What you get |
|---|---|
| No addresses, an empty list, no key, an unknown service, a wrong type, or more than 5,000 addresses | One 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 address | A 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 credits | That 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 moment | Two 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 timeout | It 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

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [Agent to Brokerage Resolver](https://apify.com/mambalabs/agent-brokerage-resolver?fpr=mamba) | `ePRRGLxOGyaVHO4dI` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [B2B Reddit Conversation Monitor](https://apify.com/mambalabs/b2b-reddit-conversation-monitor?fpr=mamba) | `SoDryzzsjmY3SsiyG` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Contact Details Extractor](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Headcount Estimator](https://apify.com/mambalabs/company-headcount-estimator?fpr=mamba) | `aHC4GROnNt6kfZe5r` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Competitor Price, Stock, and Changelog Monitor](https://apify.com/mambalabs/competitor-price-stock-changelog-monitor?fpr=mamba) | `yxdgCbUQ4PYQWwRNU` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Contractor License Lookup](https://apify.com/mambalabs/contractor-license-lookup?fpr=mamba) | `WBYK3CPI2kdeq4bP1` |
| [Cookie Consent Audit](https://apify.com/mambalabs/cookie-consent-audit?fpr=mamba) | `TrKyOS0KBoGC35nbr` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Ecommerce Store Discovery](https://apify.com/mambalabs/ecommerce-store-discovery?fpr=mamba) | `PeHu4sLyFvQHXUUrX` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Directory](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Google Ads Transparency Monitor](https://apify.com/mambalabs/google-ads-transparency-monitor?fpr=mamba) | `1eOwxhBVxzvOXAm4s` |
| [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Integration and Marketplace Presence Mapper](https://apify.com/mambalabs/integration-marketplace-presence-mapper?fpr=mamba) | `V0guNuvM85Q61f2gj` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Change Tracker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Local Business Lead Builder](https://apify.com/mambalabs/local-business-lead-builder?fpr=mamba) | `qMN97aoHhsAS5bznV` |
| [Local Rank and Map Pack Tracker](https://apify.com/mambalabs/local-rank-map-pack-tracker?fpr=mamba) | `gv0kyHGDIg8XscclB` |
| [Lookalike Company Finder](https://apify.com/mambalabs/lookalike-company-finder?fpr=mamba) | `e2O426WBAbLLQL4Z2` |
| [Manufacturer and Supplier Finder](https://apify.com/mambalabs/manufacturer-supplier-finder?fpr=mamba) | `Qcsdmd0lUfPzVkonh` |
| [Meta Ad Library Monitor](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [Mobile Phone Waterfall](https://apify.com/mambalabs/mobile-phone-waterfall-orchestrator?fpr=mamba) | `6OOgPktf7RIa5XCOP` |
| [New Company Registrations Feed](https://apify.com/mambalabs/new-company-registrations-feed?fpr=mamba) | `g2WfZhWvCtc57g2Jo` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Newsletter Sponsor Tracker](https://apify.com/mambalabs/newsletter-sponsor-tracker?fpr=mamba) | `qSwpqxD1TiPZpLQHv` |
| [Open Tender and RFP Finder](https://apify.com/mambalabs/open-tender-rfp-finder?fpr=mamba) | `kPTGz6t6TFoUUyfaO` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [Partner and Member Directory Extractor](https://apify.com/mambalabs/partner-member-directory-extractor?fpr=mamba) | `ZX0XJPPUvnFJxeC1a` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Person LinkedIn URL Resolver](https://apify.com/mambalabs/person-linkedin-url-resolver?fpr=mamba) | `ssuyPV8LnEsL8qbnb` |
| [Person Social Footprint Mapper](https://apify.com/mambalabs/person-social-footprint-mapper?fpr=mamba) | `jfQXa2zW9FHCJot9K` |
| [Personal Email to Company Resolver](https://apify.com/mambalabs/personal-email-to-company-resolver?fpr=mamba) | `AefT5Ye6YNPFQwJBf` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Podcast Guest and Host Finder](https://apify.com/mambalabs/podcast-guest-host-finder?fpr=mamba) | `o2MGSvgbSLeeXOsIo` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Public Feature Board and Roadmap Monitor](https://apify.com/mambalabs/public-feature-board-roadmap-monitor?fpr=mamba) | `rcHF5gj5r2Vqnry35` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Sequencer Event Poller](https://apify.com/mambalabs/sequencer-event-poller?fpr=mamba) | `S6s8Rjd61tGdrMRk4` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [VC and Accelerator Portfolio List Builder](https://apify.com/mambalabs/vc-accelerator-portfolio-list-builder?fpr=mamba) | `chH8hrfuoqqolW06m` |
| [WCAG Accessibility Audit](https://apify.com/mambalabs/wcag-accessibility-audit?fpr=mamba) | `P3jBj3FRghKEhX52z` |
| [Website Phrase and Business Model Classifier](https://apify.com/mambalabs/website-phrase-business-model-classifier?fpr=mamba) | `CBuZ9k7sRwBeiKiCS` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |

Built by [Mamba Labs](https://apify.com/mambalabs).

# Actor input Schema

## `emails` (type: `array`):

The addresses to verify, 1 to 5,000 per run. A repeat of an address is verified and charged once.

## `email` (type: `string`):

One address, for a Clay column with one address per row. Added to Email addresses.

## `provider` (type: `string`):

The service your API key belongs to: zerobounce, neverbounce, millionverifier, bounceban, or reoon (any capitalization). The actor sends each address to that service with your key, and the service bills your account there for each check under your plan with them.

## `api_key` (type: `string`):

Your own API key for the service chosen above. It is stored encrypted, used only to call that service, and never written to the output or the log.

## `concurrency` (type: `string`):

How many addresses are checked at the same time, 1 to 20. Lower it if your service plan has a tight rate limit.

## `max_charge_usd` (type: `string`):

Optional. The run stops before an actor charge that would pass this amount. Your verification service bills you separately.

## `source_tag` (type: `string`):

Optional label for your own records. Leave empty.

## Actor input object example

```json
{
  "emails": [
    "support@apify.com"
  ],
  "provider": "zerobounce",
  "concurrency": "5"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `run_summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "emails": [
        "support@apify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/email-verifier").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "emails": ["support@apify.com"] }

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/email-verifier").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "emails": [
    "support@apify.com"
  ]
}' |
apify call mambalabs/email-verifier --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/email-verifier"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/CzVJ4NlaCKk80xpgE/builds/L0Ctfr8GY9uJEIcTs/openapi.json
