Dev.to AI 🤖 Ai 👁 0 📖 12 min read

23 Apollo alternatives on Apify compared: price, emails and phone numbers

Search the Apify Store for an Apollo alternative and the first screen looks like the same listing twenty times. Same promise, same emoji, often a price in the title. They stop looking alike in two places: the pricing ta

Search the Apify Store for an Apollo alternative and the first screen looks like the same listing twenty times. Same promise, same emoji, often a price in the title.

They stop looking alike in two places: the pricing tab, and the row that comes back. I compared 23 listings on those two things, from the public Store records as they stood on 5 November 2026.

If you only want to know what to open:

You have Open You get
An Apollo people-search URL Apollo Scraper Alternative the same search with no Apollo login and no cookies, a live email on every lead
A job title, a country, an industry Leads Scraper with Emails $1.50 per 1,000 leads on every Apify plan, no minimum, nobody billed without an email
A call list to build Leads Scraper with Mobile Numbers a mobile number and an email on every row
One form for all of it B2B Leads Finder the same engine with a phone switch, rated 5.0, 99.8% of its 9,232 runs in the last 30 days finished

The four run on one engine and one database. The rest of the post is why they are the ones in that table: how they compare with the shelf on price and on what a row carries, then three real requests with the rows that came back.

How the 23 were picked

The Store returns 236 listings for "apollo". I kept the ones that name Apollo in the title or description and search for people by a filter form or a saved search URL. That leaves out company-only lists, email verifiers and tools that enrich a file you already hold. Then I took every listing with at least 25 users in the last 30 days: 19 listings from 14 authors.

One of the 19, b2bsearch/b2b-leads-finder, has four newer siblings on the same engine that split it by starting point and by price. I added those, which makes 23. The b2bsearch row comes first in every table because the second half of the post runs it. The others follow in order of users.

Everything is in the Store API, no login needed:

curl -s 'https://api.apify.com/v2/store?search=apollo&limit=1000'
curl -s 'https://api.apify.com/v2/acts/b2bsearch~leads-scraper-with-emails'
curl -s 'https://api.apify.com/v2/acts/b2bsearch~leads-scraper-with-emails/builds/default'

The first call is the shelf. The second has users, rating, run outcomes and pricing events. The third has the input form and the README.

Price: what 1,000 leads cost on the Starter plan

Eleven of the 23 titles carry a price per thousand. Often it is the price of the top Apify plan. This table has what the pricing tab charges on Starter and on Free.

Listing Title says Starter, per 1,000 Free, per 1,000 Minimum per run
b2bsearch/leads-scraper-with-emails $1.50 $1.50 $1.50 none
code_crafter/leads-finder $1.5 $2.00 $2.00 none
microworlds/leads-finder no price $1.70 $3.00 none
pipelinelabs/lead-scraper-apollo-zoominfo-lusha-ppe $1 $1.00 $1.00 none
peakydev/leads-scraper-ppe $1 $1.70 $1.60 100 leads
pipelinelabs/leads-finder-with-emails-apollo-lusha-zoominfo $1.50 $2.00 $2.00 none
braveleads/leads-finder-linkedin-apollo-leads-generator no price $1.70 $2.00 100 leads
olympus/b2b-leads-finder no price $2.00 $1.00 none
disarming_screw-owner/1-2-000-leads-apollo-scraper-replacement-b2b-b2c-leads $1 per 2,000 $0.50 $0.50 none
pipelinelabs/lead-scraper-apollo-zoominfo-lusha $0.8 $1.00 $2.00 none
x_guru/Leads-Scraper-apollo-zoominfo $1 $1.00 $1.00 none
boneswill/leads-generator $1 $1.40 $1.70 100 leads
coladeu/apollo-people-leads-scraper no price $5.00, no emails $6.00, no emails none
olympus/leads-finder-apollo-leads-generator no price $2.00 $1.00 100 leads
atomus/leads-finder no price $6.00, plus $6.00 per email found $6.00 none
pipelinelabs/leads-scraper-upto-300k-leads-per-month-like-apollo $0.8 $1.00 $2.00 none
olympus/b2b-leads-finder-rental no price $2.00 $2.00 none
pnda/linkedin-scraper no price $3.50, plus $9.00 per email found $3.50, plus $9.00 none
amr-mando/lead-finder $1.7 $1.70, plus $0.90 to verify $1.70, plus $0.90 none

Read down the Starter column. $1.50 is below 12 of the other 18 listings, the two most-used among them. Ten other titles carry a price, and on six of them the Starter plan pays more than the title says. leads-scraper-with-emails charges its title price on every plan, Free included.

Six listings go lower per row. Open their Store pages before you choose on that number: two hold 2.0 and 2.8 stars on dozens of reviews, one finished 70% of its runs in the last 30 days, and one bills a 100-lead minimum. Crowd and rating do not move together on this shelf. The three most-used listings hold 3.5, 3.7 and 2.8 stars. b2bsearch/b2b-leads-finder holds 5.0.

The row price is also not the bill. Three things move it.

  • A minimum per run. Four listings bill at least 100 leads even when the search finds twelve, and their READMEs say so. A narrow account-based pull that finds 30 people bills $0.27 on peakydev/leads-scraper-ppe: 100 leads plus a 10-cent start fee. On leads-scraper-with-emails it bills 30 leads, under 5 cents.
  • A start fee. On six listings the fee for starting a run is worth 10 to 59 leads at the listing's own Starter price. On the b2bsearch listings it is two hundredths of a cent.
  • Rows with no email. A row is a row, with or without an address. microworlds/leads-finder says about 60% of its leads carry an email, and olympus/b2b-leads-finder says up to 70%+. b2bsearch delivers and bills only people with a live email, so 1,000 billed rows are 1,000 people you can write to.

For scale: Apollo's own pricing page lists Basic at $49 and Professional at $99 per user per month. A thousand leads at $1.50 cost less than one day of the cheaper seat.

Completeness: what every row carries

A low row price buys rows. How many of them have an address, and how many have a number to call, is in the README, usually behind the words "up to" or "where available".

Listing Email on the row Mobile number on the row
b2bsearch, all five every row: a work address at the person's current employer, or a personal mailbox every row in b2b-leads-with-phones; a switch in three of the others
code_crafter/leads-finder an email status filter, prefilled to validated paid Apify plans only
microworlds/leads-finder best effort, about 60% of leads an add-on at $10 per 1,000 numbers
pipelinelabs, four listings 85 to 90% stated on three, 100% on one where available
peakydev/leads-scraper-ppe 100% stated 20%
braveleads/leads-finder-linkedin-apollo-leads-generator over 95% stated listed, no figure
olympus/b2b-leads-finder up to 70%+ work emails about 30%
disarming_screw-owner/… a must-have-email filter a must-have-phone filter
x_guru/Leads-Scraper-apollo-zoominfo an email status filter where available
boneswill/leads-generator 100% stated 50%
olympus/leads-finder-apollo-leads-generator over 85% stated listed, no figure
olympus/b2b-leads-finder-rental up to 90% work emails 10%
atomus/leads-finder a paid add-on, on paid Apify plans not listed
pnda/linkedin-scraper an optional paid step not listed
amr-mando/lead-finder included, verification is a paid add-on a company number
coladeu/apollo-people-leads-scraper none none

Two of the listings that state 95 to 100% also carry a line that some leads may come without an email.

b2bsearch works the other way round. The contact is the condition for the row, not a column that is sometimes filled.

  • Email. Every delivered lead has an address on record at the company the person works at now, or a personal mailbox. An address that only matches a previous employer is never delivered. emailType on the row says which one you got, and workEmail and personalEmail carry both when both are on record.
  • Nobody else is billed. A person with no such address is skipped, charged nothing and counted in a free note row at the end of the dataset. You see how many people the search really matched, which an export never shows.
  • Mobile. In b2b-leads-with-phones the same rule covers the number: every row has a mobile and an email, and people with only one of them are skipped free.
  • The rest of the row. Name, job title, company, domain, headcount, industry, location, the profile URL, the person's X, GitHub and Facebook links where on record, and updatedAt, the date the record was last refreshed.

One other listing prices the mobile number separately: microworlds/leads-finder, at $10 per 1,000 numbers on top of the lead. b2b-leads-with-phones charges $4 per 1,000 on Starter, only on rows that come back with a number. Per 1,000 rows with a mobile that is $6.50 against $11.70.

The Apollo search you already built

Eight of the 23 take a search URL: the five b2bsearch listings, which all have an apolloUrl field, and three others.

Listing Your cookies Emails on the rows Tells you how it read the URL
b2bsearch/apollo-url-leads-scraper not asked for every row yes, in the first status line, before any charge
coladeu/apollo-people-leads-scraper not asked for none, and no phone numbers not stated
amr-mando/lead-finder required yes, verification is a paid add-on not stated
olympus/b2b-leads-finder-rental optional up to 90% work emails not stated

Cookies are your logged-in session. The b2bsearch listings never ask for them, because nothing is fetched from Apollo. The URL is read for its filters (titles, seniority, location, company size, industry, keywords, domains) and the search runs on b2bsearch's own database of 800M+ people. If a filter in the URL cannot be read, the run stops and charges nothing.

Small lists and second runs

Two controls decide whether a list is usable in outbound: how many people per company, and whether next week's run repeats this week's.

Listing Cap per company Skips people you already pulled
b2bsearch, all five maxPerCompany excludeDatasets: everyone in the datasets you name, whatever search produced them
peakydev/leads-scraper-ppe yes the same search only, 90 days, not on the Free plan
pnda/linkedin-scraper 5 to 10, in one of its modes onlyNew, 12 months
pipelinelabs, four listings no the same search only
boneswill/leads-generator, olympus/b2b-leads-finder, olympus/b2b-leads-finder-rental no the same search only, 30 days
braveleads/…, olympus/leads-finder-apollo-leads-generator no the same search only
x_guru/…, atomus/leads-finder, coladeu/… no a cursor you carry into the next run yourself
code_crafter/leads-finder, microworlds/leads-finder, disarming_screw-owner/…, amr-mando/lead-finder no nothing stated

Five hundred leads with sixty of them at one company are not five hundred accounts. maxPerCompany: 1 gives one person per company, and the people over the cap are skipped free.

A saved position continues one search. It knows nothing about a different one. excludeDatasets works on people: last month's VP list does not come back when this month's search is heads of revenue operations.

Three requests and what came back

All three ran on 5 November 2026. The rows are shortened here: ids and the headline are left out, and names, addresses and companies are blanked. The dataset has them in full.

1. An Apollo URL in, leads with emails out

Apollo Scraper Alternative takes the address bar of an Apollo people search as is. Founders and CEOs in the US at companies of 11 to 200 people:

{
  "apolloUrl": "https://app.apollo.io/#/people?page=1&sortByField=recommendations_score&personTitles[]=founder&personTitles[]=ceo&personLocations[]=United%20States&organizationNumEmployeesRanges[]=11%2C50&organizationNumEmployeesRanges[]=51%2C200&contactEmailStatusV2[]=verified",
  "emailType": "any",
  "maxPerCompany": 1,
  "maxResults": 20
}

The first status line, before anything is charged:

Apollo URL read as: job titles founder, ceo; countries us; company size 11–200; email any; up to 20 leads. Page, sort and email status carry the view, not the search, and were left out.

One of the rows:

{
  "_status": "found",
  "fullName": "•••• •••••",
  "jobTitle": "Co-Founder & Co-CEO",
  "email": "••••@•••••.com",
  "emailType": "work",
  "workEmail": "••••@•••••.com",
  "personalEmail": "••••••@•••••.com",
  "companyName": "•••••",
  "companyDomain": "•••••.com",
  "companySize": 43,
  "companyIndustry": "Software Development",
  "location": "San Francisco, California, United States",
  "countryCode": "us",
  "linkedinUrl": "https://www.linkedin.com/in/••••••••••",
  "twitterUrl": "x.com/•••••••••",
  "phoneOnRecord": false,
  "updatedAt": "2026-04-06"
}

Twenty leads from twenty companies in 22 seconds, 15 with a work address and 5 with a personal one. The last row of the dataset is a free note:

{
  "_status": "skipped_no_email",
  "_note": "5 people matched but had no email that reaches them today (a personal one, or one at their current employer) on record and were skipped — not delivered, not charged"
}

Then the same request again with one more field, the dataset of the first run:

{
  "apolloUrl": "<the same URL>",
  "emailType": "any",
  "maxPerCompany": 1,
  "maxResults": 20,
  "excludeDatasets": ["<dataset id of the first run>"]
}

Twenty new people at twenty other companies in 9 seconds. Nobody from the first run came back.

2. Filters in, leads at $1.50 per 1,000

Leads Scraper with Emails is the same engine at one flat price. Founders and CEOs of UK software companies with 11 to 200 people, one per company:

{
  "jobTitles": ["founder", "ceo"],
  "countries": ["gb"],
  "industries": ["Software Development"],
  "companySizeMin": 11,
  "companySizeMax": 200,
  "maxPerCompany": 1,
  "maxResults": 20
}

One of the rows:

{
  "_status": "found",
  "fullName": "•••••• ••••••",
  "jobTitle": "CEO & Founder",
  "email": "••••••@•••••••.com",
  "emailType": "work",
  "workEmail": "••••••@•••••••.com",
  "personalEmail": "••••••@•••••.com",
  "companyName": "•••••••",
  "companyDomain": "•••••••.com",
  "companySize": 27,
  "companyIndustry": "Software Development",
  "location": "London, England, United Kingdom",
  "countryCode": "gb",
  "linkedinUrl": "https://www.linkedin.com/in/••••••••••",
  "twitterUrl": "twitter.com/••••••••",
  "facebookUrl": "facebook.com/••••••••",
  "phoneOnRecord": false,
  "updatedAt": "2026-04-05"
}

Twenty leads at twenty companies in 44 seconds. Every title on the list is a founder, a co-founder or a chief executive. 14 rows carry a work address and 6 a personal one. At the listed price the run is 3 cents.

To size the list before paying for it, the same filters go into People Database Search with mode: "count". It charges nothing per row and answers in five seconds:

{
  "_status": "preview",
  "_total": 11807,
  "_note": "11,807 people match these filters. A count charges nothing per row — set mode to \"people\" to get the rows."
}

3. A call list: a mobile and an email on every row

Leads Scraper with Mobile Numbers has phoneRequired on by default. Sales leaders at US software companies with 51 to 500 people:

{
  "jobTitles": ["vp sales", "head of sales", "chief revenue officer"],
  "countries": ["us"],
  "industries": ["Software Development"],
  "companySizeMin": 51,
  "companySizeMax": 500,
  "maxPerCompany": 1,
  "maxResults": 20
}

One of the rows:

{
  "_status": "found",
  "fullName": "••••• ••••••",
  "jobTitle": "Chief Revenue Officer (CRO)",
  "email": "•••••@••••••••.io",
  "emailType": "work",
  "workEmail": "•••••@••••••••.io",
  "companyName": "••••••••",
  "companyDomain": "••••••••.io",
  "companySize": 98,
  "companyIndustry": "Software Development",
  "location": "New York, New York, United States",
  "countryCode": "us",
  "linkedinUrl": "https://www.linkedin.com/in/••••••••••",
  "phoneOnRecord": true,
  "phone": "+1••••••••••",
  "phones": ["+1••••••••••"],
  "updatedAt": "2026-04-07"
}

Twenty rows, twenty mobile numbers, twenty emails, twenty companies. Eleven more people matched and had no number or no live email. They were skipped free and counted in a note row.

On any of the three, read the title column before the sequence does, and put the words you do not want into excludeJobTitles for the next run.

FAQ

Is this scraping Apollo? No. The Apollo URL is read for its filters and the search runs on b2bsearch's own database. No Apollo account, no cookies, no browser.

Do I pay for people without an email? No. They are skipped and counted in a free note row. Only delivered leads are billed, and every delivered lead has a live email.

Does the price change with my Apify plan? Not on leads-scraper-with-emails: $1.50 per 1,000 leads on Free, Starter, Scale and Business. The other b2bsearch listings price by plan, and the numbers are on each Actor page.

Work or personal email? emailType: "work" when the message is about their job and the domain must match the company. any when you want the person more than the mailbox: a new leader's work address is often not on record yet, and a personal one still reaches them.

Can I get phone numbers? Yes. b2b-leads-with-phones returns only people with a mobile number and a live email. The general listings have an includePhones switch. Numbers are mostly US.

For AI agents reading this

Pin only the tools you need in the server URL:

claude mcp add --transport http apify "https://mcp.apify.com?tools=b2bsearch/leads-scraper-with-emails,b2bsearch/apollo-url-leads-scraper,b2bsearch/b2b-leads-with-phones" --header "Authorization: Bearer <APIFY_TOKEN>"

Tool names use a double hyphen: b2bsearch--leads-scraper-with-emails, b2bsearch--apollo-url-leads-scraper, b2bsearch--b2b-leads-with-phones, b2bsearch--b2b-leads-finder, b2bsearch--people-database-search. A b2bsearch tool definition is about 4,400 tokens. The four pipelinelabs listings are about 27,000 each. The workflow:

  • an Apollo URL goes into apolloUrl as is; read the Apollo URL read as status line before trusting the rows
  • a sentence goes into jobTitles, seniority, countries, industries, companySizeMin, companySizeMax; add excludeJobTitles after reading the first titles
  • for a call list use b2b-leads-with-phones and leave phoneRequired on
  • rows whose _status is not found are free notes that say why people were skipped
  • rerun with excludeDatasets for new people only, and set maxTotalChargeUsd on the call

Platform docs: Apify MCP server.

Related posts in this series: Apollo scraper alternative: from an Apollo URL to leads with emails, and four more lists, I pasted 5 Apollo search URLs into an Apify Actor. No Apollo login. and Apollo alternative in Claude Code: 7 lead lists from one Apify Actor.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.