Facebook Scraper
Pricing
from $5.50 / 1,000 facebook page results
Facebook Scraper
All-in-one Facebook Pages scraper organized by scenarios: Page info, Posts, Comments from Page posts, Media, Reviews, Events, Content monitoring, or All-in-one. Works anonymously by default; optional cookies are only for pages your own account can view.
Pricing
from $5.50 / 1,000 facebook page results
Rating
5.0
(2)
Developer
VortexData
Maintained by CommunityActor stats
2
Bookmarked
185
Total users
31
Monthly active users
5 days ago
Last modified
Categories
Share
What is Facebook Scraper?
Facebook Scraper extracts public data from Facebook Pages: contacts, posts, comments, photos, videos, Reels, reviews and events. Paste Page links, handles or post links, choose what to scrape and download the results as Excel, CSV or JSON, with no Facebook login for public Pages. To try it, press Start with the example input: it gets the details and recent posts, media, reviews and events of two restaurants, and the free plan's $5 monthly credit covers about 900 Pages.
What can Facebook Scraper do?
- 🧩 Everything about a Page in one row: details, contacts, posts, comments, media, reviews and events, in one run.
- 🔓 No login for public Pages: add your Facebook cookies only for Pages that Facebook shows to logged-in visitors.
- 🔗 Post links too: paste links to single posts and get one row per post with its comments.
- 📅 Date filters: keep only posts from the last days or from a date range.
- 📇 Lead generation: get emails, phones, websites, addresses and opening hours of businesses.
- ⏰ Scheduling: run it daily or weekly on the Apify platform to keep your data fresh.
- 📈 Monitoring: get alerted when a run fails or returns less data than usual.
- 🔌 API and integrations: get the data in Python or JavaScript, Google Sheets, Make, Zapier or a webhook.
- 🌐 Proxy rotation built in: every request goes through Apify residential proxies, so you don't manage any.
What data can you extract from Facebook Pages?
| What do you want to scrape? | What you get | What to paste |
|---|---|---|
| Everything | Page details and contacts, posts, comments, photos, videos, Reels, reviews, events | Page link, handle or ID |
| Page details & contacts | Name, category, followers, email, phone, website, address, opening hours, rating, creation date, ads status | Page link, handle or ID |
| Posts | Text, time, reactions, comments and shares counts, reactions by type, photos and video | Page link, handle or ID |
| Comments | Comment text, time, author, likes and replies counts | Page (comments from its recent posts) or post link |
| Post details | One row per post: text, time, counts, reactions by type, media, author and comments | post link |
| Media | Photos at full size, videos with plays and the video file, Reels | Page link, handle or ID |
| Reviews | Recommends or not, review text, time, author, tags | Page link, handle or ID |
| Events | Upcoming and past events: name, link, place | Page link, handle or ID |
| Content monitoring | Posts, comments and media | Page link, handle or ID |
Every Page row also has the Page's details. Groups and personal profiles are not supported.
What can you do with Facebook Page data?
- 📇 Lead generation: collect emails, phones and websites of local businesses for your CRM.
- 🔍 Competitor monitoring: see what competitors post, how often, and which posts get the most reactions.
- ⭐ Reputation tracking: follow a business's rating and read what reviewers say.
- 💬 Audience research: read comments to learn what people like, ask for or complain about.
- 📅 Event research: list upcoming and past events of venues, clubs and brands.
- 📊 Reporting: schedule a run and send fresh numbers to Google Sheets or your dashboard every week.
How to scrape Facebook Pages
- Create a free Apify account and open Facebook Scraper.
- Choose what you want in What do you want to scrape?
- Paste Pages into Facebook Pages or post links, one per line.
https://www.facebook.com/nasa/,nasaand100044561550831all work. - Set Results per input: how many results to get from each line.
- Press Start.
- When the run finishes, open Output, pick the view for your data (for example Pages, Contacts & details, Posts or Comments) and export it.
How to get your Facebook cookies
You need cookies only for Pages that Facebook shows to logged-in visitors (age, country or audience limits).
- Log in to facebook.com in your browser.
- Export your cookies with the Cookie-Editor or EditThisCookie browser extension. They must include
c_userandxs. - Paste the export into Facebook cookies.
- In Country you use Facebook from, choose the country where you usually use Facebook. If your account is suddenly used from another country, Facebook may log you out or ask you to verify the login.
⚠️ Use only your own account and don't share your cookies with anyone: they give access to your Facebook account. The Actor never writes them to the log or the results.
Ready-to-run Facebook scraping tasks
Open a task, press Try for free, and change the Pages or dates to your own:
- 🚗 Track car brands' Facebook posts from the last 7 days
- 📰 Monitor news outlets' Facebook posts from the last day
- 📇 Get emails and phones of New York cultural venues
- ⭐ Collect Facebook reviews of restaurants
- 💬 Collect comments on Walmart's latest Facebook posts
- 🔗 Scrape a Facebook post and its comments from a link
How much does it cost to scrape Facebook Pages?
You pay $5.50 per 1,000 results ($0.0055 per result), plus Apify's start fee of $0.00005 per run.
- One Page is one result, with everything the scenario reads: its details and all its posts, comments, photos, videos, Reels, reviews and events. A Page row with 20 posts and 100 comments still costs $0.0055.
- One post link is one result (Post details, or Comments from a post link).
- Error rows count too. A line that gave no data gets one row that says why, and every row in the dataset is a result.
For example, 1,000 Pages with their recent posts cost $5.50. A maximum cost per run in the run options caps your spending: the Actor stops starting new Pages when it is reached.
Is scraping Facebook free?
You can scrape Facebook Pages for free within Apify's free plan. It includes $5 of platform credit every month, which is enough for about 900 Pages with all their sections.
On a paid plan the price per result stays the same and your monthly credit goes further: every $10 of credit buys about 1,800 Pages or post links.
Input
The input is simple: choose what to scrape and paste Pages. Every other field is optional. Fill the form in the Input tab, or send the same fields as JSON through the API:
- What do you want to scrape? (
dataPackage):fullContent(Everything),leadEnrichment(Page details & contacts),posts,comments,postDetail(Post details),media,reputation(Reviews),events,contentMonitoringorauto(By link). - Facebook Pages or post links (
urls): one Page link, handle, numeric Page ID or post link per line. Apify'sstartUrlsformat ([{"url": "…"}]) works too. - Results per input (
maxResults): how many results to get from each line; with Everything, each section gets up to this number. - 📅 Only newer than and Only older than (
startDate,endDate): a date like2026-01-15or a period like3 months. - 🔑 Facebook cookies (
facebookCookies) and Country you use Facebook from (proxyCountry, a two-letter code such asDE): only for Pages shown to logged-in visitors. - Get everything available (
parseAllResults): read every section to its end.
Through the API you can also give one section its own number (maxPosts, maxComments, maxPhotos, maxVideos, maxReels, maxReviews, maxEvents), and set how many recent posts to read comments from and how many comments per post (maxCommentPosts, maxCommentsPerPost).
This input gets the details and 20 recent posts of NASA's Page:
{"dataPackage": "posts","urls": ["nasa"],"maxResults": 20}
Output
Each Page is one row of your dataset, with each section nested in it. You can download it as JSON, CSV, Excel, XML or HTML, or read it through the API. In the Output tab, the Posts, Comments and Reviews views show one row per item. The examples below are real rows, shortened.
Page details and contacts
{"inputUrl": "copperkettleyqr","facebookUrl": "https://www.facebook.com/copperkettleyqr/","pageId": "100064027242849","title": "The Copper Kettle Restaurant | Regina SK","category": "Pizza place","followers": 3294,"talking_about": 90,"email": "copperkettle.events@gmail.com","phone": "+1 306-525-3545","website": "http://www.thecopperkettle.online/","address": "1953 Scarth Street, Regina, SK, Canada, S4P 2H1","business_hours": "Open now","priceRange": "$$","rating": "94% recommend (201 reviews)","ratingOverall": 94,"ratingCount": 201,"instagram": [{"username": "copperkettleyqr", "url": "https://www.instagram.com/copperkettleyqr"}],"creation_date": "October 29, 2014","ad_status": "This Page is currently running ads.","verified": false}
A post (inside posts)
{"post_id": "1663647895794209","url": "https://www.facebook.com/walmart/posts/pfbid02827EoyUP4a2a9kHB58zNWtJYhTgbQEsAsCgWgZV7yk4jbZR9uzNhoF1yQoKSWZjil","message": "Yeah, our bakers are this good 👀","timestamp": 1790370005,"time": "2026-09-25T21:00:05Z","reactions_count": 5473,"comments_count": 948,"reshare_count": 177,"reactions_by_type": {"Like": 4184, "Love": 1183, "Wow": 65, "Care": 26, "Haha": 13, "Angry": 2},"media": ["https://scontent-ord5-2.xx.fbcdn.net/..."],"author": {"id": "100064470440594", "name": "Walmart", "url": "https://www.facebook.com/100064470440594"}}
A comment (inside comments)
{"comment_id": "1563538308342774","message": "Omg the eye ball one is my fav","timestamp": 1790445102,"time": "2026-09-26T17:51:42Z","likes_count": 10,"replies_count": 2,"author": {"name": "ALexx Vallejos", "url": "https://www.facebook.com/alexx.ajp"},"post_url": "https://www.facebook.com/walmart/posts/pfbid02827EoyUP4a2a9kHB58zNWtJYhTgbQEsAsCgWgZV7yk4jbZR9uzNhoF1yQoKSWZjil"}
A review (inside reviews)
{"recommendation": true,"message": "They offers a cozy atmosphere, friendly service, and a menu of tasty comfort food at reasonable prices.","timestamp": 1726077478,"time": "2024-09-11T17:57:58Z","author": {"id": "100008842841030", "name": "Daniel Masih"},"tags": ["Child-friendly", "Fast delivery", "Cosy atmosphere"]}
Error rows
{"inputUrl": "https://www.facebook.com/nosuchpage-7919/","error": "not_available","errorCode": "not_found","errorMessage": "Not found: deleted, renamed or mistyped.","nextAction": "Check the spelling; a renamed Page keeps its numeric ID, which you can paste instead."}
errorCode says why a line gave no data: not_found (no Page there; without cookies this also covers Pages limited by age or country, which Facebook answers the same way), login_required (shown only to logged-in visitors), not_read (Facebook did not answer this line in this run; run it again) or internal_error (an error on our side).
Facebook scraping examples
How to extract emails and phone numbers from Facebook Pages
{"dataPackage": "leadEnrichment","urls": ["copperkettleyqr", "JoesStoneCrab", "100064027242849"]}
You get one row per Page with its email, phone, website, address, opening hours, category and rating. Open the Contacts & details view to see just these columns.
How to scrape Facebook posts from the last 7 days
{"dataPackage": "posts","urls": ["BMW", "MercedesBenz", "Porsche"],"maxResults": 100,"startDate": "7 days"}
You get each car brand's posts from the last 7 days, up to 100 per brand. Periods like 2 weeks or 3 months work too.
How to scrape Facebook posts from a date range
{"dataPackage": "posts","urls": ["nasa"],"maxResults": 500,"startDate": "2026-01-01","endDate": "2026-03-31"}
You get up to 500 of NASA's posts published in the first quarter of 2026.
How to scrape comments from a Facebook post
{"dataPackage": "postDetail","urls": ["https://www.facebook.com/walmart/posts/pfbid04AfXdJYZDJEJeqPB5zt2MLwqB3izMZFfEn7eccJou1hpA9xqt44dtMMWsGGe91Kol"],"maxResults": 100}
You get one row for the post with its text, counts and up to 100 comments. Up to 10 comments come in Facebook's "Most relevant" order; more are read in its "All comments" order.
How to scrape comments from a Page's recent posts
{"dataPackage": "comments","urls": ["walmart"],"maxResults": 100}
Paste the Page instead of post links. The 100 comments are spread over Walmart's recent posts that have comments, not 100 per post.
How to scrape Facebook reviews
{"dataPackage": "reputation","urls": ["copperkettleyqr"],"maxResults": 100}
You get the Page's rating and up to 100 reviews. Open the Reviews view to see one row per review.
How to scrape many Facebook Pages into one dataset
{"dataPackage": "fullContent","urls": ["BMW", "MercedesBenz", "Porsche", "Ford", "adidas"],"maxResults": 20}
Every row has inputUrl, the line it came from, so you can match rows to your list.
Other scrapers
Our other scrapers work the same way: paste links or names, choose what to scrape, and export the results.
| Actor | What it does |
|---|---|
| Instagram Scraper | Extracts Instagram profiles, contacts, posts, reels, comments, followers and hashtags. |
| Google Maps Scraper | Extracts businesses from Google Maps for lead generation and market research. |
| Similarweb Scraper | Gets any website's traffic, rankings, top keywords, competitors and WHOIS from Similarweb. |
FAQ
Is it legal to scrape Facebook?
The Actor collects only data that Facebook shows publicly, or that your own account can see. This data can include personal information protected by GDPR and similar laws, so use it only for legitimate purposes. If you are unsure, consult a lawyer. Read more in Is web scraping legal?
Do I need a Facebook account?
No, for public Pages. Facebook shows some Pages only to logged-in visitors, for example Pages with age or country limits. For those, add your cookies (see How to get your Facebook cookies); without them, such a Page gets an error row with login_required.
Facebook Scraper or the official Facebook Graph API?
| Facebook Scraper | Official Graph API | |
|---|---|---|
| Whose data | Any public Page | Mainly Pages you manage |
| What you need | An Apify account | A Meta app, app review and Page access tokens |
| Contacts, posts, reviews of other Pages | ✅ | ❌ |
| Export to Excel, CSV, JSON | ✅ built in | ❌ you write the code |
How to use the Facebook scraper API in Python?
Start runs and download results with the Apify API. The API tab has ready-to-use code for Python, JavaScript and other languages. A Python example:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vortex_data/facebook-scraper").call(run_input={"dataPackage": "leadEnrichment","urls": ["nasa", "copperkettleyqr"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("title"), item.get("email"), item.get("phone"))
Can I connect Facebook Scraper to other apps?
Yes. With Apify integrations you can send results to Google Sheets, Slack, Make, Zapier, Airbyte or your own webhook after every run. Combine it with a schedule to get fresh Facebook data every day.
How do I get the most out of it?
- Choose the narrowest option in What do you want to scrape?: Page details & contacts is the fastest when you need only contacts.
- Set Results per input to what you need: a smaller number makes the run faster.
- Use Only newer than to get recent posts only.
- Put many Pages into one run instead of starting one run per Page.
Why are some fields empty?
A Page shows only what its owner filled in: many Pages have no email, opening hours or reviews. Empty sections are left out of the row. Most Pages now show followers instead of likes, so likes is often empty. Some Reels come without a publish time or plays because Facebook doesn't show them.
Why did I get fewer results than I asked for?
The Page has fewer items than you asked for, or the date filter left fewer. Comments are read only from the Page's recent posts, and a post with no comments is skipped. To get more, raise Results per input or turn on Get everything available.
Can I download photos and videos?
Each photo, video and Reel contains links to its image or video file. The links expire after a few days, so download the files you want to keep.
What does the run report show?
When the run finishes, the Output tab links to a Run report: what each line gave, which lines were skipped and why, and what to do about lines without data. The same information is in the run's last log line and status message.
A run returned no results. What should I do?
Look at the error rows in the dataset: errorCode and errorMessage say why a line gave nothing, and nextAction says what to do. The run report says the same. If it looks like a bug, let us know on the Issues tab.
Need help or a custom solution?
Open an issue on the Issues tab and include the link to your run. You can also ask there if you need a custom version of this Actor.