Facebook Page Lead Scraper
Pricing
$19.99/month + usage
Facebook Page Lead Scraper
Extract targeted business leads from Facebook pages using the Facebook Page Lead Scraper. Collect page names, descriptions, emails, websites, phone numbers, follower counts, and page links automatically. Ideal for B2B outreach, marketing research, and prospect discovery.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Facebook Page Lead Scraper ๐
Find public Facebook Pages โ businesses, studios, clinics, shops, agencies, non-profits โ for any keyword, and pull the contact email those Pages publish about themselves.
This actor is deliberately narrow: it targets business / organisation Pages only. Personal profiles, Groups, Marketplace listings, Events, Reels, Watch videos and Facebook's own help/ads/developer pages are all filtered out, so what lands in your dataset is a Page you can actually contact.
๐ฌ Where the email actually comes from (read this first)
We think you deserve to know exactly what is happening, so here it is, plainly.
Stage 1 โ Discover Pages.
The actor runs a site:facebook.com keyword search through the Apify GOOGLE_SERP proxy (with Brave Search as a top-up source). Google no longer puts the destination URL in the result link โ every organic link is now an opaque /goto?url=CAESโฆ wrapper whose payload is encrypted. The real URL is nonetheless still shipped inside the same page, in Google's inline JSON data island, as a ["<url>","<title>","<snippet>"] triple. The actor recovers the URL from there, and falls back to a raw-document URL sweep and then to Brave's direct links.
Stage 2 โ Open the Page and read its own contact info.
Every discovered Page is then fetched for real through the RESIDENTIAL proxy, at
https://www.facebook.com/<page>/about_contact_and_basic_info
โ the Page's public About โ Contact info tab. The actor parses Facebook's embedded data payload and takes the value of the Page's own email field (the one the Page owner typed into their Contact info), together with the Page's real name, category and description.
That is where emailSource: "facebook_page_contact_info" comes from, and it is the source for the large majority of rows.
Fallbacks, clearly labelled. If a Page publishes no email field, the actor tries any address rendered in the Page's own visible text (facebook_page_text), and finally the search-result snippet (search_snippet) โ which is itself Google's index of that same public About text. Every row tells you which one it used in the emailSource column.
What does NOT work โ tested live, reported honestly.
| Surface | Result |
|---|---|
www.facebook.com/<page> with a normal desktop browser user-agent | โ HTTP 400 "Sorry, something went wrong" โ identical from a plain IP and through a residential proxy |
m.facebook.com / mbasic.facebook.com / web.facebook.com with a desktop user-agent | โ Same HTTP 400; mbasic also answers a login wall to mobile user-agents |
graph.facebook.com/<page> (unauthenticated Graph API) | โ HTTP 403 โ a token is required, there is no anonymous route |
graph.facebook.com/v20.0/oembed_page | โ ๏ธ HTTP 200 but returns only an embed snippet โ no contact data |
facebook.com/plugins/page.php (Page plugin) | โ ๏ธ HTTP 200 but renders a like-box only โ no contact data |
Google's <cite> breadcrumb | โ Useless for Facebook โ Google renders a social card whose <cite> slot holds a follower count, not a URL |
Bing site:facebook.com | โ Ignores the site filter and returns unrelated hosts |
| DuckDuckGo (html / lite) | โ Answers HTTP 202 block pages from every network tested |
The one thing that does work is a crawler-shaped user-agent on www.facebook.com, which is what this actor uses. No row is ever fabricated. If a keyword yields nothing, the run log says so and the dataset stays empty.
Extractable Data Table ๐
| Field | Description |
|---|---|
network | The Facebook host the result was matched on (facebook.com) |
keyword | The keyword that surfaced this Page |
pageName | The Page's own name, cleaned of Facebook's " | City ST" suffix |
title | The Page's og:title (falls back to the search-result title) |
description | The Page's public description โ likes/follower counts and its own bio text |
url | Canonical Page URL, normalised from locale (it-it.) and mobile (m.) mirrors |
email | The public contact email |
emailSource | facebook_page_contact_info ยท facebook_page_text ยท search_snippet |
Every one of those fields is always populated on every row โ a candidate that cannot fill them all is skipped rather than emitted with a blank.
Key Features ๐
- โญ Real two-stage pipeline โ discover Pages, then open each Page and read its published Contact info
- โญ Page-only focus โ 40+ path rules reject Groups, personal profiles, Marketplace, Events, Reels, Watch, Stories, hashtags and Facebook's own utility pages
- โญ Survives Google's
/gotolink obfuscation via inline-JSON URL recovery, with a raw sweep and Brave Search as backups - โญ Locale-aware โ
it-it.facebook.com,es-la.facebook.com,m.,mbasic.andweb.mirrors are all normalised to one canonical Page URL, so you never get the same Page twice - โญ Domain filtering โ keep only
@gmail.com, only your own corporate domain, or everything - โญ Bandwidth-aware โ Page documents are streamed and cut off as soon as the contact block has been read, roughly a third of a full download
- โญ Honest logging โ the run log reports how many Pages were seen, fetched, and where each email came from
How to use it ๐งญ
- โ
Enter one or more Keywords (e.g.
fitness studio,dental clinic,wedding photographer) - โ Optionally set a Location to narrow results to one city or region
- โ
Optionally set an Email Domains Filter (
@gmail.comby default; clear it to accept every domain) - โ Set Maximum Leads per Keyword
- โ Click Start โ leads stream into the dataset as they are found
- โ Export to CSV, Excel, JSON or feed the dataset straight into your CRM via the Apify API
Advanced settings (all optional) let you pin the discovery source, turn the Page-fetch stage off for faster/cheaper snippet-only runs, and control search depth.
Use Cases ๐ฏ
Lead Generation โ build targeted outreach lists of local businesses that publish a contact address on their Page. Marketing Campaigns โ reach studios, clinics, shops and agencies in a specific niche and city. Business Networking โ find collaborators, suppliers and partners by category. Market Research โ map how many Pages exist for a keyword in a region and how they describe themselves.
Input Parameters ๐งฉ
{"keywords": ["fitness studio"],"platform": "Facebook","location": "","emailDomains": ["@gmail.com"],"maxEmails": 20,"engine": "legacy","discoveryEngine": "auto","fetchPageDetails": true,"maxSearchPages": 8,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
| Input | Description |
|---|---|
keywords | Required. Keywords used to find relevant Pages |
platform | Platform to scrape (Facebook) |
location | Optional city/region filter |
emailDomains | Keep only emails on these domains; empty = all domains |
maxEmails | Maximum leads per keyword (default 20) |
engine | Processing engine (legacy) |
discoveryEngine | auto (default), google or brave |
fetchPageDetails | Open each Page's About tab (default true) |
maxSearchPages | How deep to page through search results (default 8) |
proxyConfiguration | Proxy used for Page fetching; Google always uses GOOGLE_SERP |
Output Format ๐ค
[{"network": "facebook.com","keyword": "fitness studio","title": "Hive Fitness Studio | Wilkesboro NC","description": "Hive Fitness Studio, Wilkesboro. 834 likes ยท 1 talking about this ยท 232 were here. Fitness Redefined. We are a private personal training studio in Wilkesboro, NC offering expert-led small group...","url": "https://www.facebook.com/trainwithhive/","email": "hivefitnessstudio@gmail.com","pageName": "Hive Fitness Studio","emailSource": "facebook_page_contact_info"}]
Legal Guidelines โ๏ธ
This actor reads only publicly available information โ Pages that anyone can view logged-out, and the contact details a Page owner deliberately published for the public to use. It never logs in, never touches private profiles, and never accesses data behind an authentication wall.
- โ๏ธ Comply with Facebook's terms of service when using the results
- โ๏ธ Only use data that is publicly available; never attempt to reach private information
- โ๏ธ Do not use extracted addresses for spam or unethical marketing
- โ๏ธ Respect GDPR/CAN-SPAM and the data-protection law of your region, including opt-out handling
- โ๏ธ Do not resell or redistribute the extracted data without authorisation
- โ๏ธ Use the tool for legitimate business purposes only
FAQ โ
Where does the email come from? From the Page's own public About โ Contact info section in most cases; from the Page's visible text or the search snippet otherwise. The emailSource column always tells you which.
Why do some keywords return few leads? Because only a fraction of Pages publish an email at all, and the default filter narrows it further to @gmail.com. Clear the domain filter, drop the location, or raise maxSearchPages to widen the net.
Does it scrape private profiles? No. Personal profiles are explicitly filtered out โ that is a different actor's job โ and nothing behind a login is ever accessed.
Can I get more than the email? The Page name, category-rich description, canonical URL and source label come with every row today.
Will it invent data if it finds nothing? Never. An empty result is reported as an empty result.
Support and feedback
- Bug reports: Open a ticket in the repository Issues section
- Custom features: Contact our enterprise support team Lead: dev.scraperengine@gmail.com