Facebook Pages Scraper
Pricing
from $3.50 / 1,000 results
Facebook Pages Scraper
Facebook Pages Scraper extracts emails, phones, likes, followers, business hours, social links and Ad Library data — scrape Facebook page details in bulk for lead generation, local business data and competitor research
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Facebook Pages Scraper is an Apify Actor that extracts public details from Facebook business and brand pages in bulk: name, category, likes, followers, rating, email, phone, website, address, business hours and social links. Paste page links or usernames, with no login and no cookies, and get one row per page in JSON, CSV or Excel. From $0.0035 per page on the Gold plan ($0.007 on the Free plan). 🚀 Try it free
What can Facebook Pages Scraper do?
- 📧 Contact details in one row. Extract emails and phone numbers from Facebook business pages, with website, address and Messenger link, as a Facebook page email scraper.
- 📈 Audience numbers. Likes, followers, following, talking-about count and check-ins, as plain integers with the display text kept next to them.
- ⭐ Rating and reviews. Recommendation percentage and review count when the page shows them.
- 🕐 Business info. Facebook page business hours and price range, plus Facebook page category and intro text and services when the page lists them.
- 🔗 Social links. Facebook page social media links to Instagram, TikTok, X, YouTube, LinkedIn, Pinterest, Telegram, WhatsApp, Threads and Snapchat when the page links to them.
- 📢 Ad Library link and ad status. Facebook page creation date and page transparency, confirmed owner and a ready-to-open Ad Library URL. You can switch this off.
- 🔓 No login, no cookies. You do not need a Facebook account; the Actor reads only what any visitor can see.
- ⚡ Bulk and live. Scrape Facebook pages in bulk by adding a whole list of pages. Each page is saved to the dataset the moment it is ready, with duplicates removed by default.
- 🧰 Apify platform tools. Schedules, webhooks, integrations, the API and exports to JSON, CSV or Excel.
What data can I extract from Facebook pages?
Each run returns one JSON row per page. This Facebook page data extractor fills the following fields, and a field stays empty (null, an empty list or an empty object) when the page does not publish it.
| Field | Description |
|---|---|
🔎 facebookUrl, url, pageUrl, pageName, pageId, page_id, facebookId, userId, type | Page link, Facebook page username and page ID lookup values, and the entity type (page) |
🏷 title, name, category, categories, intro, bio, description, info | Page name, category and all categories, intro text and the stats lines shown with it |
📈 likes, likesCount, likesText, likesDisplay, followers, followersCount, followersText, followersDisplay, followings, followingCount, followingDisplay, talkingAboutCount, checkins | Facebook page followers and likes count, following and check-ins, as numbers and as display text |
⭐ rating, ratings, ratingOverall, ratingCount, ratingPercentage, ratingReviewCount | Facebook page rating and review count |
📇 email, emails, phone, phones, website, websites, messenger, address, addressUrl, mapsAddress | Facebook page contact information: get Facebook page phone number and website, email addresses, Messenger, address and map link |
🕐 businessHours, business_hours, businessHoursRaw, priceRange, price_range, priceRangeText, priceRangeSymbol, business_price, businessPrice, services, business_services, businessServices | Opening hours, price range and listed services |
🌐 profilePictureUrl, image, imageAlt, coverPhotoUrl, coverPhoto, cover_image, profilePhoto, profilePhotoUrl | Facebook page profile picture and cover photo URLs, profile photo link and image alt text |
🔗 instagram, tiktok, twitter, youtube, linkedin, pinterest, telegram, whatsapp, threads, snapchat, alternativeSocialMedia, socialLinks | Social media links found on the page |
🏆 isVerified, verified, status, confirmedOwnerLabel, confirmed_owner, isBusinessPageActive, creation_date, pageCreatedYear, ad_status, pageTransparency, delegate_page_id | Verified badge, status, owner, creation date, ad status and transparency details |
📢 adPageId, pageAdLibrary, pageAdLibraryUrl | Ad Library ID and link for Facebook page ad status checks |
✅ success, error, scrapedAt, additionalProperties | Run status for the row, error text for failed pages, scrape time and a small copy of selected fields |
Posts, comments, review texts, photos beyond the profile and cover images, and follower lists are not collected.
What can you do with the data from Facebook pages?
🎯 Facebook lead generation: local business data from Facebook
- Paste the page links into
startUrlsand keepfetchAboutSubpageson. - Run the Actor and open the Contact and Location view.
- Export
email,phone,websiteandaddressas CSV for your CRM.
🔍 Competitor research on Facebook pages
- List the competitor usernames in
pages. - Schedule Facebook page scraping daily or weekly with the Apify scheduler.
- Compare
followers,likesandratingbetween runs.
📢 Check ad status and Ad Library links
- Keep
includeAdLibraryon. - Read
ad_statusandisBusinessPageActiveto see which pages are running ads. - Open
pageAdLibraryUrlto review a page's ads in the Ad Library.
🤝 Facebook page data for influencer research
- Keep
showVerifiedBadgeon to use the Actor as a Facebook page verified badge checker. - Compare
isVerified,followers,creation_dateandsocialLinks. - Pass the shortlist to your team as an Excel file.
📊 Collect Facebook page data for market research
- Use this Facebook page scraper in multiple languages: set
languageto the market you study so category names and labels come back in it. - Use
maxItemsfor a quick sample before a large run. - Export the dataset and group pages by
category.
How do I use Facebook Pages Scraper?
To find the email address of a Facebook business page and scrape Facebook page contact information, follow these steps.
- Open Facebook Pages Scraper on Apify and click Try for free.
- Add page links to
startUrls, or click Bulk edit to paste a whole list. - Add bare usernames or numeric page IDs to
pagesif you prefer them to links. - Set
maxItemsfor a test run, and pick the pagelanguage. - Keep
fetchAboutSubpageson for contact and business details, andincludeAdLibraryon for ad status. - Click Start and watch the Output tab fill as each page is saved.
- Export the dataset as JSON, CSV or Excel, or read it through the Apify API.
How much does it cost to scrape Facebook pages?
Facebook Pages Scraper uses pay-per-event pricing: you pay for each page row saved to the dataset, and the price per page depends on your Apify plan.
| Apify plan | Price per page | Price per 1,000 pages |
|---|---|---|
| 🆓 Free | $0.007 | $7.00 |
| 🥉 Bronze | $0.00595 | $5.95 |
| 🥈 Silver | $0.0049 | $4.90 |
| 🥇 Gold, Platinum and Diamond | $0.0035 | $3.50 |
Each run also pays a start event of $0.00005 per GB of memory, with a minimum of one event. The default memory is 1 GB (1,024 MB), so one run pays 1 start event, which is $0.00005. Apify platform usage is billed to you in addition to these events.
Example: 200 pages on the Free plan cost 200 x $0.007 = $1.40, plus the $0.00005 start event and platform usage. The same 200 pages on the Gold plan cost 200 x $0.0035 = $0.70.
Every row saved to the dataset is charged, including a row for an entry that is not a Facebook page link or a page that was not found (success is false on those rows). If you set a maximum cost for a run, the Actor stops cleanly when that limit is reached and keeps what it saved.
Is scraping Facebook pages free?
Facebook Pages Scraper is not free per page: every saved row is billed at the price of your Apify plan, from $0.007 per page on the Free plan to $0.0035 per page on the Gold plan. The Free plan simply has the highest per-page price.
How much does Facebook Pages Scraper cost per 1,000 results?
Per 1,000 pages the cost is $7.00 on the Free plan, $5.95 on Bronze, $4.90 on Silver and $3.50 on Gold, Platinum and Diamond. These amounts cover the page events only. The $0.00005 start event per run and Apify platform usage are billed in addition.
Input
Only startUrls is required. Every other field has a default, so a first run needs nothing more than a list of pages. You can also bulk-paste usernames and numeric page IDs. The same page given twice, for example as a link and as a username, is scraped once while deduplicate is on.
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
startUrls | array | Yes | Facebook page URLs, one per line. Also accepts bare usernames and numeric page IDs | https://www.facebook.com/MrBean |
pages | array | No | Extra list of usernames, numeric page IDs or full URLs, merged with startUrls | humansofnewyork |
maxItems | integer | No | Stop after this many pages. 0 means no limit. Maximum 100000 | 0 |
language | string | No | Language the page labels come back in (110 languages), such as category names, ad status and dates | en-US |
fetchAboutSubpages | boolean | No | Also collect the About details: contact, business info and transparency. Off gives the basic profile only | true |
includeAdLibrary | boolean | No | Add Ad Library ID, Ad Library URL and ad status | true |
showVerifiedBadge | boolean | No | Report the verified badge in isVerified and verified. Off leaves them empty | true |
normalizeNumbers | boolean | No | Return likes and followers as integers. Off keeps the display text | true |
deduplicate | boolean | No | Skip pages that appear more than once in your lists | true |
proxyConfiguration | object | No | Optional connection settings. Leave the default unless pages repeatedly fail to load | {"useApifyProxy": false} |
concurrency | integer | No | Pages fetched at the same time, 1 to 20 | 5 |
requestDelay | number | No | Minimum pause between requests, in seconds, 0 to 10 | 0.3 |
maxRetries | integer | No | Retries for a failed request, 1 to 10 | 3 |
requestTimeoutSecs | integer | No | Seconds to wait for a single request, 5 to 180 | 45 |
Example input:
{"startUrls": ["https://www.facebook.com/MrBean","https://www.facebook.com/humansofnewyork"],"pages": ["nasaearth"],"maxItems": 50,"language": "en-US","fetchAboutSubpages": true,"includeAdLibrary": true,"showVerifiedBadge": true,"normalizeNumbers": true,"deduplicate": true,"concurrency": 5}
Output
Results go to the run's default Apify dataset, one row per page, and appear while the run is still going. Export them as JSON, CSV, Excel, XML or HTML from the Dataset tab or the API. The Output tab also offers views that show one part of the data at a time: Overview, Contact and Location, Engagement and Stats, Business Info, Media, Social Links, Transparency and Ads, and Issues. When the run finishes, one combined JSON file with all rows in input order is saved to the key-value store under the key OUTPUT.
Sample row (values are fake):
{"facebookUrl": "https://www.facebook.com/examplebakery","url": "https://www.facebook.com/examplebakery","pageUrl": "https://www.facebook.com/examplebakery","pageId": "100000000000001","page_id": "100000000000001","facebookId": "100000000000001","userId": "100000000000001","adPageId": "100000000000002","delegate_page_id": "100000000000002","pageName": "examplebakery","name": "Example Bakery","title": "Example Bakery","type": "page","categories": ["Bakery"],"category": "Bakery","info": ["Example Bakery. 12,500 likes", "13,000 followers"],"intro": "Fresh bread every morning.","description": "Fresh bread every morning.","bio": "Fresh bread every morning.","likes": 12500,"likesCount": 12500,"likesDisplay": "12,500 likes","likesText": "12,500 likes","followers": 13000,"followersCount": 13000,"followersDisplay": "13K followers","followersText": "13K followers","followings": 3,"followingCount": 3,"followingDisplay": "3 following","talkingAboutCount": 410,"checkins": 820,"rating": "94% recommend (201 reviews)","ratings": "94% recommend (201 reviews)","ratingOverall": 94,"ratingCount": 201,"ratingPercentage": 94,"ratingReviewCount": 201,"address": "1 Example Street, Example City","addressUrl": "https://maps.example.com/?q=example","mapsAddress": "https://maps.example.com/?q=example","phone": "+1 555 0100","phones": ["+1 555 0100"],"email": "hello@example.com","emails": ["hello@example.com"],"messenger": "examplebakery","website": "https://www.example.com","websites": ["https://www.example.com"],"alternativeSocialMedia": "https://www.instagram.com/examplebakery","priceRange": "Price range $$","price_range": "Price range $$","priceRangeText": "Price range $$","priceRangeSymbol": "$$","services": "Takeaway, Catering","business_hours": "Mon-Fri 07:00-18:00","businessHours": "Mon-Fri 07:00-18:00","businessHoursRaw": "Mon-Fri 07:00-18:00","business_price": "Price range $$","businessPrice": "Price range $$","business_services": "Takeaway, Catering","businessServices": "Takeaway, Catering","profilePictureUrl": "https://images.example.com/profile.jpg","image": "https://images.example.com/profile.jpg","imageAlt": "Example Bakery","coverPhotoUrl": "https://images.example.com/cover.jpg","coverPhoto": "https://images.example.com/cover.jpg","cover_image": "https://images.example.com/cover.jpg","profilePhoto": "https://www.example.com/photo/1","profilePhotoUrl": "https://www.example.com/photo/1","isVerified": false,"verified": false,"status": "Active","confirmedOwnerLabel": "Example Bakery Ltd","confirmed_owner": "Example Bakery Ltd is responsible for this Page.","isBusinessPageActive": false,"creation_date": "Page created - January 5, 2015","pageCreatedYear": 2015,"ad_status": "This Page isn't currently running ads.","pageTransparency": {"creation_date": "Page created - January 5, 2015","ad_status": "This Page isn't currently running ads.","is_business_page_active": false,"confirmed_owner": "Example Bakery Ltd","page_id": "100000000000002","admin_country_count": null},"instagram": [{"username": "examplebakery", "url": "https://www.instagram.com/examplebakery"}],"tiktok": [],"socialLinks": {"instagram": ["https://www.instagram.com/examplebakery"]},"linkedin": null,"pinterest": null,"telegram": null,"twitter": null,"youtube": null,"whatsapp": null,"threads": null,"snapchat": null,"pageAdLibrary": {"id": "100000000000002","is_business_page_active": false,"pamv_comms_data": null,"url": "https://www.example.com/ads/library/?view_all_page_id=100000000000002"},"pageAdLibraryUrl": "https://www.example.com/ads/library/?view_all_page_id=100000000000002","additionalProperties": {"messenger": "examplebakery","priceRange": "Price range $$","confirmedOwnerLabel": "Example Bakery Ltd","confirmed_owner": "Example Bakery Ltd is responsible for this Page.","address": "1 Example Street, Example City","alternativeSocialMedia": "https://www.instagram.com/examplebakery","services": "Takeaway, Catering","profilePictureUrl": "https://images.example.com/profile.jpg","coverPhotoUrl": "https://images.example.com/cover.jpg","category": "Bakery","addressUrl": "https://maps.example.com/?q=example","instagram": [{"username": "examplebakery", "url": "https://www.instagram.com/examplebakery"}],"ratings": "94% recommend (201 reviews)","business_hours": "Mon-Fri 07:00-18:00","business_price": "Price range $$","business_services": "Takeaway, Catering","ad_status": "This Page isn't currently running ads."},"scrapedAt": "2026-10-17T10:00:00.000Z","success": true,"error": null}
Notes and limitations
- Why are some Facebook pages marked as failed? A page that cannot be loaded still gets a row with
successset tofalseand a shorterrortext, so you can see which entries failed. - Fields the page does not publish stay empty. Many pages show no email, phone or hours.
- With
fetchAboutSubpagesoff, only the basic profile fields are filled. - With
includeAdLibraryoff, the Ad Library fields andad_statusare empty. WithshowVerifiedBadgeoff,isVerifiedandverifiedare empty. statusis set toActivefor any page that loaded with a title.- Counters follow what the page shows, so large audiences may be rounded display values such as 13K followers.
- Label text (categories, ad status, dates) follows the
languageyou choose.
FAQ
Is it legal to scrape Facebook pages?
Facebook Pages Scraper collects only publicly visible page information and needs no login. Whether scraping is lawful depends on your country, your purpose and the site's terms, and personal data rules such as GDPR and CCPA may apply. Read Is web scraping legal?. This is not legal advice.
Can I scrape Facebook pages without a Facebook account?
No. This Facebook page scraper works with no cookies and no login, and you do not need a Facebook account or any Facebook key. You only need an Apify account to run it. Provide page links, usernames or page IDs, press Start, and the Actor returns the information that the public page shows to any visitor.
How many Facebook pages can I scrape per run?
Leave maxItems at 0 to process every page you provide, or set a value up to 100000 to stop earlier. Speed depends on concurrency (5 pages in parallel by default) and requestDelay (0.3 seconds by default). Raise concurrency for faster runs, and lower it if pages fail.
Why does a Facebook page have no email or phone?
Contact fields are filled only when the page itself publishes them, so many pages return an empty email or phone. Make sure fetchAboutSubpages is on, because contact details come from the About details. A page that shows no contact information to visitors cannot return any, and the field stays empty.
How to download Facebook page data to Excel or CSV?
Yes. Open the Dataset tab after the run and download the rows as CSV, Excel, JSON, XML or HTML, or fetch them through the API. Each Output view, such as Contact and Location, can be exported on its own. The combined file with all pages in input order is also stored under the key OUTPUT.
Can I schedule runs, use webhooks or connect integrations?
Yes, through the Apify platform. Create a schedule to rerun your page list daily or weekly, add a webhook to be notified when a run finishes, or connect the dataset to tools such as Google Sheets, Make, Zapier or n8n using the Apify integrations. Scheduled runs let you track followers and likes over time.
Can I use Facebook Pages Scraper with the Apify API or an MCP server?
Yes. Start the Actor from your own code with the Apify API and read the dataset when it finishes, or expose it to AI assistants through Apify's MCP server. For Facebook page scraper Python code, use the Apify client; the Apify API documentation covers authentication and endpoints.
Why am I getting fewer results than expected?
Check four things. deduplicate removes repeated pages, maxItems stops the run early, entries that are not Facebook page links produce a row with success set to false, and a page that was not found does too. Open the Issues view in the Output tab to see which entries failed and read their error text.
Facebook Pages Scraper not working?
First open the Issues view and read the error text for the failed pages. Then check that the links are public Facebook page links, lower concurrency, raise requestDelay, and run the failed entries again later. If it still fails, open the Issues tab of this Actor with your run link and we will look into it.
Related Actors
| Actor | Use it to |
|---|---|
| 🔗 Facebook Reels Scraper | Scrape Facebook Reels from public pages, profiles or reel URLs: captions, play counts, reactions, comments and shares |
| 🔗 Instagram Scraper | Scrape public Instagram profiles, posts, reels, comments, hashtags and places when a page links to an Instagram account |
| 🔗 Google Maps Email And Phone Number Scraper | Find business emails and phone numbers behind Google Maps places and their websites |
| 🔗 Website Lead Intelligence | Turn a list of company websites, such as the website field from this Actor, into a scored outreach list with verified emails |
Support and disclaimer
Found a bug or need a new field? Open an issue in the Issues tab of this Actor. For custom solutions, integrations or questions, write to hello.dataminds@gmail.com.
Facebook Pages Scraper is independent and not affiliated with Facebook or Meta. Trademarks belong to their owners. It collects publicly available data only, and you are responsible for complying with applicable laws and the site's terms.
Last updated: 2026-10-17