Email Finder Waterfall and Verifier, Bring Your Own Keys · Apify
Work Email Waterfall avatar

Work Email Waterfall

Pricing

from $3.40 / 1,000 email founds

Go to Apify Store
Work Email Waterfall

Work Email Waterfall

Finds work emails by chaining your own provider keys, verifies each result, and returns real per-provider spend instead of hiding it behind a credit abstraction. Bring your own Findymail, Prospeo, Icypeas, Reoon and BounceBan keys.

Pricing

from $3.40 / 1,000 email founds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

12 hours ago

Last modified

Features

Limited permissions

Share

What's new (October 2026)

  • Catch all risk on every found email. Rows with an email add catch_all_risk (high, medium, low, or unknown) and domain_catch_all, read from the verifier verdicts and cached per domain. The new attempt_catch_all input adds the Domain Deliverability Checker SMTP probe on runners that allow port 25; it is off by default because Apify blocks port 25. On by default.
  • Alternative candidate emails. Rows with an email add alternative_emails: up to 5 other common patterns for the same person at the same domain, unverified, for when catch_all_risk is high. On by default.

No price change. Existing fields and saved inputs work as before.

✉️ What can Work Email Waterfall Finder do?

Give it contacts and it finds a work email for each one by chaining several finder providers, verifies every result, and returns the real per-provider spend instead of hiding it behind a credit abstraction.

Bring your own keys. You supply your own Findymail, Prospeo, Icypeas, Reoon and BounceBan keys. We supply none, we never see your credits, and you pay your providers directly at your own rates.

📦 What you get⚙️ Features and integrations
📧 A verified work email, or an honest null
🧾 Real per-provider attribution, units and latency
💰 Observed balance movement, read from each provider
🔢 21 flat fields, one row per contact, always
🔗 Multi-provider chain in the order you set
✅ Verification after every finder, not once at the end
🔌 Per-provider circuit breaker on credit or auth failure
⬇️ Export to JSON, CSV, Excel, HTML or XML

Bought by teams who already pay for email finders and want to know what each one actually costs them per hit.

🚫 This is not a data provider and it sells you no credits. It orchestrates the accounts you already have. With no keys supplied it still runs, reports which capabilities were unavailable, charges nothing and exits cleanly.

💡 Why use Work Email Waterfall Finder?

Clay's Work Email waterfall works, and it hides what each provider cost you behind Clay credits. That is the top recorded complaint about its pricing. This returns the per-provider detail: which entry answered, what it consumed, how long it took, and what your balance actually moved by.

If you wantRead these fields
The addressemail, email_status
Which provider earned its keepfound_by, chain_position
What the row cost youprovider_units_used, providers_attempted
Whether the verification is trustworthyverification_source, verification_degraded
Run-level spend and balance movementrun_summary on the summary row

🔒 invalid means a verifier actually looked

invalid appears only when a verification provider looked and said the address will not deliver. A verifier that failed, timed out or ran out of credit never produces invalid, because a verification failure is not evidence that an address is dead. Those rows come back unverified or unknown instead, with verification_degraded set.

email_status values: valid, catch_all, catch_all_resolved, unknown, unverified, invalid, not_found, plus a few run states.

📋 What data can Work Email Waterfall Finder extract?

21 fields per contact. One row per input contact, always, including the ones where nothing was found, plus a run summary row.

FieldWhat it holds
contact_idYour own id, echoed back
input_full_name, input_company_domain, input_linkedin_urlWhat you supplied
emailThe work email found, or null
email_statusThe verification verdict
found_byThe registry entry that answered, for example findymail.search_business_profile#linkedin_url
chain_positionWhich position in your order returned it
verification_sourceWhich verifier's answer stands
verification_degraded, verification_errorTrue when the primary verifier failed and the chain fell back
providers_attemptedEvery entry tried, with binding, outcome, latency and units consumed
provider_units_usedCredits this row consumed from your accounts
catch_all_risk, domain_catch_allOn a found email: high (the domain accepts any address and nothing resolved this one), medium (catch-all domain, resolved by a depth verifier), low (verified valid), or unknown
alternative_emailsOn a found email: up to 5 other common patterns at the same domain, unverified
is_summary_row, run_summaryRun totals, spend and observed balance movement

The identifier binding is part of the found_by id on purpose. findymail.search_business_profile#linkedin_url and findymail.search_name#name_domain are different attempts against the same provider and they perform differently.

⚠️ Give it a LinkedIn URL if you have one. Measured on 300 contacts, one key, one hour: a LinkedIn URL hit 13.7%, full name plus company domain hit 9.3%. 14 of the hits were unique to the LinkedIn binding and 1 to name plus domain. Same provider, same hour, only the input field changed. Hit rates are cohort dependent, and yours will differ.

🛠️ How to find and verify work emails

  1. Open the Input tab and supply contacts, an array of objects with whatever identifiers you have.
  2. Put your provider keys in providerKeys. Every key is validated for free before any paid call.
  3. Set maxProviderUnits. It is a hard ceiling on the provider credits a run may consume from your accounts.
  4. Click Start.
  5. Read email and email_status, then providers_attempted for the cost breakdown.

Supply every identifier you have. The chain uses the best one each provider accepts and never wastes a call on a provider whose required field you did not supply.

🧪 Using it in Clay

contacts and providerKeys are also accepted as JSON strings, because Clay sends every input as a string. A single contact is an array of one.

🔗 The default chain

  1. findymail.search_business_profile#linkedin_url
  2. findymail.search_name#name_domain
  3. prospeo.enrich_person#any

Then verification, after each finder that returns an address rather than once at the end, because providers do not agree on what "found" means.

Icypeas is included but off by default. In 300 independent contacts it returned zero hits that Findymail had not already found, and its result-read endpoint is limited to 30 calls per minute, which puts a floor of roughly 33 minutes under a 1,000-row batch. Add icypeas.email_search#name_domain to providerOrder if you want it; its bulk path is implemented and is much faster for large batches.

No regional presets ship. We have no regional accuracy data, and shipping presets without it would be inventing them.

💵 How much does it cost to find work emails?

Two things you pay for, and they are separate.

Your own provider credits. You bring the keys, so Findymail, Prospeo, Icypeas, Reoon and BounceBan bill you directly at your own rates. Mamba Labs never sees those credits.

This actor, pay per event.

EventFreeBronzeSilverGold
Email found$0.0200$0.0190$0.0180$0.0170
Email search submitted$0.0030$0.00285$0.0027$0.00255

There is also an Actor start event at $0.00005, charged once per run per GB of memory.

💳 Email search submitted is charged once per contact entering the waterfall, hit or miss, because a miss still costs the run its provider calls. Email found is charged once per address produced. Supply providerRates with your own per-unit costs and the summary reports dollars at your rates; leave it out and it reports units only. With your own keys we do not know your plan tier or your negotiated rate, and we will not assume one.

Free plan: this actor sets no monthly result cap, so a Free plan run is limited only by your Apify platform credit.

Your spending limit is honored. The run stops as soon as Apify reports that the maximum cost per run you set is reached, and the optional max_charge_usd input stops it before any charge that would cross your own cap. Every row already charged stays in the dataset, and each row lists what it was charged in billable_events_json.

⌨️ Input

Everything is on the Input tab. The options worth explaining:

FieldTypeDefaultWhat it does
contactsarray[]The contacts. Each may carry id, full_name, company_domain, linkedin_url.
contacts_dataset_idstringnoneOptional. An Apify dataset with the same fields. Replaces contacts. Up to 10,000 contacts.
contacts_csv_urlstringnoneOptional. A public CSV link with a header row and the same column names. Replaces contacts, and adds to the dataset list if both are set. A list that cannot be read is named on the summary row and calls no provider.
providerKeysobjectnoneYour own keys. Validated for free before any paid call.
providerOrderarray[]Override the default chain, by registry entry id.
verificationOrderarray[]Override the verifier order.
maxContactsintegernoneCap on contacts processed.
maxProviderUnitsintegernoneHard ceiling on provider credits consumed. Set this.
providerRatesobject{}Your per-unit costs, so the summary can report dollars.
concurrencyHintinteger4Contacts in flight at once.
attempt_catch_allbooleanfalseRun the SMTP catch-all probe once per domain. Apify blocks port 25, so leave it off on Apify; catch_all_risk then comes from the verifiers.
max_charge_usdnumberemptyOptional cap in USD for this run. The run stops before any charge that would cross it
{
"contacts": [
{
"id": "your-own-id",
"full_name": "Satya Nadella",
"company_domain": "microsoft.com",
"linkedin_url": "https://www.linkedin.com/in/satyanadella/"
}
],
"providerKeys": { "findymail": "...", "prospeo": "...", "bounceban": "..." },
"maxProviderUnits": 500
}

📤 Output

One row per contact, exportable as JSON, CSV, Excel, HTML or XML.

{
"contact_id": "your-own-id",
"input_full_name": "Satya Nadella",
"input_company_domain": "microsoft.com",
"email": "satyan@microsoft.com",
"email_status": "valid",
"found_by": "findymail.search_business_profile#linkedin_url",
"chain_position": 1,
"verification_source": "bounceban",
"verification_degraded": false,
"providers_attempted": [
{"entry": "findymail.search_business_profile#linkedin_url", "outcome": "found", "latency_ms": 812, "units": 1}
],
"provider_units_used": 2,
"catch_all_risk": "low",
"domain_catch_all": null,
"alternative_emails": ["satya.nadella@microsoft.com", "satyanadella@microsoft.com", "snadella@microsoft.com", "satya@microsoft.com", "satya_nadella@microsoft.com"],
"is_summary_row": false
}

Every row also carries these fields:

FieldWhat it holds
row_statusOne word verdict for the row, always present: ok (the look completed and found data), no_match (the look completed and found nothing), error (the look could not complete, read error_reason), or summary (a notice row, not a result).
error_reasonWhy the row is not a clean result, in plain words. Null on a clean row. Always present as a key.

💡 Tips

  • Always set maxProviderUnits. This actor spends your money, not ours.
  • Pass linkedin_url wherever you have it. It measurably outperformed name plus domain on the same cohort in the same hour.
  • Fill providerRates once and every run afterward reports real dollars instead of units.
  • Read found_by across a batch to see which provider is actually earning its subscription.
  • Treat catch_all as a separate decision from valid. It is a real answer, not a failure.

⚠️ Known limits

Hit rates are cohort dependent. The 13.7% and 9.3% above are from one B2B cohort measured on 300 contacts with one key in one hour. Yours will differ.

A provider that runs out of credit is disabled for the rest of the run. That is deliberate, and it means a run that starts strong can finish weaker. providers_attempted records exactly when it happened.

Icypeas is rate limited by design of its API. Its result-read endpoint allows 30 calls per minute, which puts a floor of roughly 33 minutes under a 1,000-row batch on the per-contact path.

Personal email is out of scope. This finds work emails only.

Consensus threshold defaults to 0, matching Clay's default. Worth knowing: Clay's "threshold for duplicate results" is not a consensus vote. Clay's own documentation describes it as an early-exit cost control that stops the waterfall when the same address keeps failing validation across providers. They are different features and should not be confused.

Compute is negligible for this shape because the actor waits on APIs rather than crawling, measured at well under a tenth of one percent of a typical per-result price in batch. The cost that matters is your providers'.

❓ FAQ

What happens if I supply no provider keys?

The actor still runs, pushes a summary row explaining which capabilities were unavailable, charges nothing and exits cleanly. It never treats a missing key as a crash.

Why is an address unverified rather than invalid?

Because no verifier successfully looked at it. A verification failure is not evidence that an address is dead, so it is never reported as one. Check verification_degraded and verification_error.

Can I change the provider order?

Yes. providerOrder takes registry entry ids, and verificationOrder does the same for verifiers.

Do you see my provider credits?

No. You hold the keys and your providers bill you directly. The actor reports the units it observed being consumed, read from each provider's own account endpoint before and after the run.

Does it find personal email addresses?

No. Work emails only.

🧩 Want other GTM data?

Mamba Labs builds a fleet of enrichment actors that share one flat output convention:

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI List Extractor for Any WebsiteD5hOdIez45M0NX5jD
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Amazon Product, Price, and Stock TrackerMtJPZoyjJ3IeqTFyo
Amazon Top Reviews Scraperwh6Mq6G6BlW1CRPwx
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
B2B Social Video TranscriptsdG2UYVKE2e4zfDucK
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Bluesky Posts ScraperKldSjS7wjoeZ7vQGm
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Business PDF Field ExtractorvM7JCk0CMAx5W0oJh
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Eventbrite Events Scrapersgc6znyrbjOy5Yk9f
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Facebook Posts ScraperT6jxIeq4ua0SLXnqG
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Followers and Following ExportSGNxDmFb9v3tRDaFI
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
Google Maps Places ScraperSuvHCNJ7pIuw6gn54
Google Trends ScraperOeDzaACKmBYJXzHZk
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Healthcare Provider NPI EnricherMrgbHzcpDq3mOv9Df
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
MCP Server Change and Health MonitorIeqjWF9U0BdDQFY08
Media URL TranscriberSyfr7Ya3EsHgWfrB6
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
Multi Platform Social Posts and CommentsicFuHR1EzDvUcfCQ5
Netherlands Rental ListingssGKGsbwoX18lFb6dR
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
News Site Article ArchiveNjcF3UD8791raFNHh
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
Private Company Funding HistoryH02K3rQIVOYpnLYc3
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Property Owner Records0J7ovG1iaZpQD1P0T
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Research Topic Institutions and AuthorsOH8ANqt7bCKbo72Gk
Semrush Domain Metrics3dqa0abJrpssHtrYL
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Site Crawler for Links and TableslLLJ6JxZ4XqN8ULz0
Streaming Subscription Prices by CountrytbMroS2Zyn57bW17E
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Tennis Match Datav3OX6zxXHZOf2yurO
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
Ticketmaster Event PricesCrvPX4IwLXQX9bls1
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
TikTok Video Statsuz9Q3cEycRgA6NfqA
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
US Import Records Buyer FinderVIMafpKF5ggOw0COU
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel and Video List ScrapertxaAjeBqgj5MStFE4
YouTube Channel Email FinderIDgKZcmeeuunUbccN
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs
Zillow Listing DetailsyG4zM0Enfsw2NefJ1

Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.

🆘 Support

Something wrong, or a provider you want added to the registry? Open an issue on the Issues tab with the run id, and we will look at it.

ℹ️ Sourcing, keys and legal. This actor calls the provider accounts you supply keys for and holds no data source of its own. Your keys are used for the run and your providers bill you directly. Work email addresses are personal data under GDPR and similar laws; you decide what happens to them next and you are responsible for that use, including establishing your own lawful basis for contacting anyone.

Built by Mamba Labs.