B2B Lead Scraper: Public Business Emails avatar

B2B Lead Scraper: Public Business Emails

Pricing

from $1.59 / 1,000 item processeds

Go to Apify Store
B2B Lead Scraper: Public Business Emails

B2B Lead Scraper: Public Business Emails

Find public businesses and export visibly published emails, phones, websites, and source pages for transparent B2B research and CRM review.

Pricing

from $1.59 / 1,000 item processeds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Build a source-backed B2B prospect list from public business websites. Discover businesses in an OpenStreetMap-bounded city or enrich a list of public website URLs, then export only contact channels visibly published by those businesses.

This is for public, no-login business research. It does not access Apollo, ZoomInfo, Lusha, private contact databases, or guessed personal email addresses.

Who is it for?

Sales operations, agencies, recruiters, researchers, and local-business teams that need a reviewable list of public business contact channels before a compliant outreach or market-research workflow. Use it as a business email scraper when public-source provenance matters, or as a lead generation scraper for bounded local-business research.

What you get

Default discovery exports only businesses with a visibly published public email, including its source page. Each row also has the business name, website/domain when public data provides it, phone links, explicit linked social profiles, and the exact pages inspected. Optional MX checks report whether the domain publishes MX records; they do not verify inbox ownership or deliverability.

Input recipes

Find Chicago dentists

{
"sector": "dentist",
"country": "United States",
"cities": ["Chicago"],
"maxLeads": 10,
"maxPagesPerSite": 2,
"requireEmail": true,
"verifyMx": true
}

Enrich public business websites

{
"startUrls": [{ "url": "https://www.freshworksdental.com/" }],
"maxLeads": 1,
"maxPagesPerSite": 2,
"requireEmail": false,
"verifyMx": true
}

Input settings

FieldDescription
sectorOpenStreetMap business tag/value to find, such as dentist.
country and citiesLocation boundary for public business discovery. The first supplied city is used.
startUrlsOptional public business websites to process directly instead of discovery.
maxLeadsMaximum unique business rows to save (1–100).
maxPagesPerSiteHomepage plus same-site contact, about, or team pages to inspect (1–5).
requireEmailEnabled by default. Keep only businesses with a visibly published email address. Disable only for public business-directory research where contact availability is optional.
verifyMxCheck a domain’s MX records; this is not mailbox validation.
customOffsetSkip discovered records to resume a bounded batch.

Output fields

FieldMeaning
companyName, website, domainPublic business identity and normalized site hostname.
country, sector, addressDiscovery context and public OpenStreetMap address data when available.
discoveryUrlOpenStreetMap record URL or the supplied public seed URL.
companyEmailsDeduplicated public emails and the page where each appeared.
primaryEmailFirst public email found. It is populated in the default email-only discovery mode and can be null only when requireEmail is explicitly disabled.
emailMxStatusmx_present, no_mx, lookup_failed, or not_checked.
phonesPublic OSM contact values and visible tel: links.
socialsExplicit linked LinkedIn, Facebook, Instagram, and X/Twitter profiles.
pagesScraped, scrapedAtPublic request provenance and extraction timestamp.

Example record:

{
"companyName": "Freshworks Dental Studio",
"domain": "freshworksdental.com",
"primaryEmail": "team@freshworksdental.com",
"companyEmails": [{ "email": "team@freshworksdental.com", "sourceUrl": "https://freshworksdental.com/" }],
"pagesScraped": ["https://freshworksdental.com/"],
"emailMxStatus": "mx_present"
}

Use cases

  • Build a public supplier or local-business outreach list.
  • Find published business contact channels for market research.
  • Enrich a buyer-owned list of public websites with source-page provenance.
  • Export public business data for CRM review, Google Sheets, or compliant outreach.

Pricing

See the live Pricing tab for current per-run and per-result rates.

Tips and limits

  • Use direct startUrls when you already know the businesses to research.
  • The default email-only mode can return fewer rows because many public sites do not publish an email address. Increase the city scope or use a buyer-owned public website list when you need more qualifying businesses.
  • The Actor inspects only a bounded number of same-site contact, about, and team pages.
  • Availability depends on public source data. Empty optional fields are never inferred.
  • Respect website terms, applicable law, and your outreach obligations.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/lead-scraper-apollo-zoominfo-lusha-ppe-scraper').call({
sector: 'dentist', country: 'United States', cities: ['Chicago'], maxLeads: 10,
});
console.log((await client.dataset(run.defaultDatasetId).listItems()).items);

Python

from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("fetch_cat/lead-scraper-apollo-zoominfo-lusha-ppe-scraper").call(run_input={"sector": "dentist", "cities": ["Chicago"], "maxLeads": 10})
print(client.dataset(run["defaultDatasetId"]).list_items().items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~lead-scraper-apollo-zoominfo-lusha-ppe-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"sector":"dentist","cities":["Chicago"],"maxLeads":10}'

MCP and automation

Add this Actor as an MCP tool:

$claude mcp add apify -- npx -y @apify/mcp-server
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/mcp-server"],
"env": { "APIFY_TOKEN": "${APIFY_TOKEN}" }
}
}
}

Use https://mcp.apify.com?tools=fetch_cat/lead-scraper-apollo-zoominfo-lusha-ppe-scraper.

Example prompts:

  • “Find 10 Chicago dentists with a publicly listed email and include source pages.”
  • “Enrich these public business websites and return phones, explicit social links, and MX status.”

FAQ

Does it provide Apollo, ZoomInfo, or Lusha data?

No. It uses OpenStreetMap records and public business websites only.

Are emails verified?

No. An email is included only when visibly published. emailMxStatus checks DNS MX records, not mailbox ownership or deliverability.

Why are there fewer results than maxLeads?

A city, sector, source availability, deduplication, and requireEmail can limit qualifying records.

Can I use my own website list?

Yes. Supply public URLs in startUrls; this bypasses OpenStreetMap discovery.

What data can I export with b2b lead scraper?

Default email-only discovery rows include a visible public email with its source page. Other public fields—website/domain, phones, address, and linked social profiles—are returned when the source provides them and otherwise remain empty rather than inferred. If you explicitly disable requireEmail, email fields can also be empty.

Can I run B2B Lead Scraper: Public Business Emails through an API, schedule, or MCP client?

Yes. Use the Node.js, Python, or cURL API examples above, schedule the same JSON input in Apify, or add the Actor to an MCP client with the configuration shown above.

How much does it cost to use B2B Lead Scraper: Public Business Emails?

Pricing is per run and per exported item. Check the live Pricing tab for the current rate before starting a larger batch.

Support

For a reproducible issue, include your non-sensitive input, run URL, and affected public URL in the Actor’s Issues tab.