All-in-One Facebook Scraper avatar

All-in-One Facebook Scraper

Pricing

from $1.35 / 1,000 posts

Go to Apify Store
All-in-One Facebook Scraper

All-in-One Facebook Scraper

Facebook scraper — 12 modes: pages, posts, events, groups, search, reviews, comments, marketplace, reels & ads. HTTP-only, 256MB, fast. Premium residential proxy (~95% success rate). Up to 50% cheaper than alternatives. MCP-ready for AI agents.

Pricing

from $1.35 / 1,000 posts

Rating

0.0

(0)

Developer

Japi Cricket

Japi Cricket

Maintained by Community

Actor stats

1

Bookmarked

30

Total users

20

Monthly active users

8 hours ago

Last modified

Share

Facebook Scraper

What does All-in-One Facebook Scraper do?

The most complete Facebook scraper and Facebook data extractor on Apify. Extract data from Facebook Pages, Posts, Events, Groups, Marketplace, Reviews, Comments, Search, Reels, and Ads — all in a single actor. No browser needed, zero proxy costs, runs on just 256 MB of memory.

Use it as a powerful Facebook API alternative to scrape Facebook posts, extract Facebook page data, scrape Facebook Marketplace listings, scrape Facebook Reels, extract Meta Ad Library data, and build lead lists — all without registering for API access or dealing with rate limits.

🚀 Key Features

  • 12 scraping modes in one actor — pages, posts, events, groups, search, reviews, comments, marketplace, reels, ads, all-in-one, data extractor
  • HTTP-only architecture — no Playwright, no browser overhead, runs on just 256 MB
  • Zero proxy costs — pages, posts, and events work without proxies
  • Pay per result — only pay for data you actually receive
  • Up to 500 results per input — configurable via resultsPerPage
  • GraphQL pagination — authenticated modes tap into Facebook's internal API for deep extraction
  • Cookie caching — login sessions persist across runs for seamless multi-run workflows
  • Structured JSON output — clean, typed fields ready for spreadsheets, databases, or integrations
  • 40% cheaper than competing Facebook scrapers on Apify Store

💰 Pricing

Pay-per-result pricing based on scrape mode. No platform fees beyond Apify compute.

ModeWhat you getFreeStarterScaleBusiness
Pages ScraperPage info, likes, category, verified status$7.20/1K$5.40/1K$4.32/1K$3.24/1K
Posts ScraperPost text + engagement metrics$3.00/1K$2.25/1K$1.80/1K$1.35/1K
Events ScraperEvent name, date, location, RSVP counts$7.80/1K$5.85/1K$4.68/1K$3.51/1K
Groups ScraperGroup posts with engagement metrics$3.00/1K$2.25/1K$1.80/1K$1.35/1K
Search ScraperFind pages by keyword$7.20/1K$5.40/1K$4.32/1K$3.24/1K
Reviews ScraperPage reviews and ratings$1.50/1K$1.13/1K$0.90/1K$0.68/1K
Comments ScraperPost comments with author info$1.50/1K$1.13/1K$0.90/1K$0.68/1K
Marketplace ScraperListings, prices, sellers, location$3.00/1K$2.25/1K$1.80/1K$1.35/1K
Reels ScraperReel metadata, captions, duration, owner$3.00/1K$2.25/1K$1.80/1K$1.35/1K
Ads ScraperMeta Ad Library creatives, dates, platforms$5.00/1K$3.75/1K$3.00/1K$2.25/1K
All-in-OneCombined modes in one run$3.00/1K$2.25/1K$1.80/1K$1.35/1K
Data ExtractorLightweight all-in-one, cheaper billing$2.00/1K$1.50/1K$1.20/1K$0.90/1K

Up to 40% cheaper than competing Facebook scrapers on Apify Store at every pricing tier.

📊 What Data Can You Extract?

📄 Facebook Page Scraper (no login needed)

  • 🏷️ Page name, title, and Facebook ID
  • 📂 Category (e.g., "Government organization", "Restaurant", "Software")
  • 👍 Likes count, followers count (parsed from "X followers" visible text), talking-about count, check-ins
  • ✅ Verified status (via the show_verified_badge_on_profile signal — matches the blue check you see on the page)
  • 📍 Location, address, city — populated for pages with a single physical HQ; null for multi-location brands that don't publish an address (Starbucks, McDonald's, etc.)
  • 📝 About description (with HTML entities decoded — emoji render correctly)
  • 🖼️ Profile picture URL and cover photo URL
  • 🔗 Ad Library ID and confirmed page owner (via FB's Ad Library disclosure)
  • 🌐 Direct page URL

📝 Facebook Posts Scraper (login cookies required for full fields)

  • 💬 Full post text content
  • ❤️ Reaction counts per type (Like, Love, Haha, Wow, Sad, Angry) + total
  • 💬 Comment count, share count
  • 🕐 Publish timestamp
  • 📸 Media array (photos/videos with URLs)
  • 🆔 Feedback ID, Story ID, Post ID
  • 💭 Top comments with author name, text, created time, and likes count — pulled from the post permalink via the unified_reactors key
  • 📄 Source page name and URL

📅 Facebook Events Scraper (no login needed)

  • 🎪 Event ID, name, and full description
  • 📆 Start/end timestamps + human-readable dayTimeSentence
  • 👤 Event organizer name
  • 🌐 Online / in-person flag
  • 📍 Venue name and city
  • 👥 usersResponded (combined going + interested count — Facebook merged these in 2026)
  • 🎟️ Ticket URL — note: Facebook stopped populating event_buy_ticket_url even for ticketed events, so this field is now almost always null
  • ⚠️ goingCount / interestedCount — deprecated by Facebook; use usersResponded instead

👥 Facebook Group Scraper (requires login cookies)

  • 📌 Group title and URL
  • 👤 Author name and author ID
  • 💬 Full post text
  • 🔗 Direct post URL
  • ❤️ Reactions, comments, shares
  • 🕐 Publish timestamp
  • 🆔 Post ID
  • 💭 Top comments array
  • ℹ️ Works on open/public groups. Closed/members-only groups return 0 posts (expected behavior — the authenticated account must be a member to see posts).

🔎 Facebook Search Scraper (requires login cookies)

  • 🏷️ Page name, category, about text
  • 👍 Likes and followers count
  • 📍 Location
  • 🖼️ Profile picture URL
  • 🔗 Direct page URL

Memory note: The Search scraper auto-adapts to the available container memory. At the default 256 MB, basic fields (page name, URL, profile picture, verified status) are always returned; enriched fields (category, about, location) are returned for as many results as memory allows. For full enrichment across all results, run with 512 MB or more by selecting it in the Memory dropdown before starting the run.

⭐ Facebook Reviews Scraper (requires login cookies)

  • 👤 Reviewer name
  • 👍 Recommended (yes / no)
  • 💬 Full review text (links reviewer ↔ body via a 30K-char context window; handles names with middle initials like "Dock J. Perry" and multi-locale action verbs — recommends, raadt, recomienda, empfiehlt, recommande)
  • 📊 Overall rating percentage and total rating count (returned as a separate review-summary item)
  • ℹ️ Works best on pages that actually have review bodies. Many pages only collect recommend / don't-recommend clicks without written reviews — in that case the parser returns reviewerName + isRecommended only.

💬 Facebook Comments Scraper (requires login cookies)

  • 👤 Author name
  • 💬 Full comment text
  • 👍 Likes count — populated for comments visible as "top comments" on the post permalink; may be null for lower-ranked comments (Facebook only server-renders reaction counts for top-N)
  • 🕐 Created timestamp
  • 🆔 Comment ID + source Post ID (decoded from the comment ID's base64 — 100% reliable)
  • 📄 Page name and page URL

🛒 Facebook Marketplace Scraper (works best with cookies)

  • 🏷️ Listing title, price, and description
  • 📦 Item condition — mapped to human-readable strings: "New", "Used - Like New", "Used - Good", "Used - Fair", "Refurbished"
  • 💲 Price string + numeric amount + currency code (e.g., USD)
  • 📍 Seller name, seller ID, location
  • 🔗 Direct listing URL
  • 🖼️ Listing images (array with URL + type)
  • 🆔 Listing ID and category ID

🎬 Facebook Reels Scraper (requires login cookies)

  • 🎥 Reel URL and shareable link
  • 📝 Caption / text
  • ⏱️ Duration (milliseconds)
  • 📅 Publish time
  • 🖼️ Thumbnail URL
  • 👤 Owner name and ID
  • 🆔 Reel ID
  • ❤️ reactionCount (via unified_reactors, 100% populated when the reel has engagement), commentCount, shareCount
  • ℹ️ viewsCount is always null — Facebook does not server-render reel view counts in HTML, even for logged-in accounts (verified 2026-04). There is no workaround without using a headless browser.

📢 Facebook Ads Scraper (requires login cookies)

  • 🆔 Ad archive ID and page ID
  • 🏢 Page name
  • 📝 Ad creative body and title
  • 🔗 CTA text and destination link URL
  • 🖼️ Ad images and video URLs
  • 📅 Start and end dates
  • 📊 Active/inactive status
  • 📱 Publisher platforms (Facebook, Instagram, Threads, etc.)
  • 🌍 Country targeting

🏁 How to Use the Facebook Scraper

Step 1: Create an Apify account

Sign up at apify.com — free tier includes $5 in monthly credits.

Step 2: Open the actor

Go to the All-in-One Facebook Scraper on Apify Store and click Try for free.

Step 3: Configure your input

  1. Choose a scrape mode — select from Pages, Posts, Events, Groups, Search, Reviews, Comments, Marketplace, Reels, or Ads
  2. Add your targets — enter Facebook page names (e.g., NASA), full URLs (e.g., https://facebook.com/cern), group URLs, or search keywords
  3. Set limits — adjust resultsPerPage (default: 50, max: 500)
  4. Add login cookies (optional) — required for Groups, Search, Reviews, and Comments modes

Step 4: Run and download results

Click Start and wait for results. Export as JSON, CSV, Excel, or connect to your workflow via API.

Getting Login Cookies (for authenticated modes)

Some modes require Facebook login cookies (c_user and xs):

  1. Open facebook.com in Chrome and log in
  2. Press F12 (Windows) or Cmd+Option+I (Mac) to open Developer Tools
  3. Go to Application > Cookies > https://www.facebook.com
  4. Copy the values of c_user and xs
  5. Paste into the loginCookies field as: c_user=XXXXX; xs=XXXXX

Using multiple cookie sets (recommended for high-volume runs): Enter one account's cookies per line. The scraper will rotate through them automatically if a session gets blocked, extending how long you can scrape before needing fresh cookies:

c_user=111111; xs=AAAAA
c_user=222222; xs=BBBBB
c_user=333333; xs=CCCCC

Cookie caching: After your first run, cookies are cached in Apify's Key-Value Store for up to 7 days. You only need to re-enter cookies when they expire. To force a refresh, paste fresh cookies — the scraper detects when xs has changed and updates the cache automatically.

ModeLogin Cookies Required?Proxy Required?
Pages ScraperNo — cookies suppress likes/follower counts (Facebook serves feed view instead of public page)Only for brand pages (Apple, Google, SpaceX…)
Posts ScraperRecommended (enables pagination + full fields)Only for brand pages
Events ScraperNoNo
Groups ScraperYesRecommended
Search ScraperYesRecommended
Reviews ScraperYesOptional
Comments ScraperYesOptional
Marketplace ScraperNo (but improves results)Optional
Reels ScraperYesOptional
Ads ScraperYesNo

Brand page proxy: Set proxyTier: "residential" (residential proxy included) or proxyTier: "custom" with your own proxy URL + forceProxy: true.

📥 Input Examples

Scrape Facebook Pages

{
"scrapeMode": "facebook-pages-scraper",
"pages": ["NASA", "cern", "https://facebook.com/natgeo"]
}

Scrape Facebook Posts

{
"scrapeMode": "facebook-posts-scraper",
"pages": ["NASA", "SpaceX"],
"resultsPerPage": 100
}

Scrape Facebook Events

{
"scrapeMode": "facebook-events-scraper",
"pages": ["NASA"],
"eventSearchQueries": ["tech conference 2026", "music festival new york"]
}

Scrape Facebook Groups

{
"scrapeMode": "facebook-groups-scraper",
"groupUrls": ["https://facebook.com/groups/selftaughtprogrammers"],
"loginCookies": "c_user=XXXXX; xs=XXXXX",
"resultsPerPage": 50
}

Search Facebook Pages by Keyword

{
"scrapeMode": "facebook-search-scraper",
"searchQueries": ["coffee shop new york", "web design agency london"],
"loginCookies": "c_user=XXXXX; xs=XXXXX"
}

Runs on 256 MB by default. Enriched fields (category, about, location) are populated for as many results as memory allows. Select 512 MB in the Memory dropdown before starting the run to enrich all results.

Scrape Facebook Reviews

{
"scrapeMode": "facebook-reviews-scraper",
"pages": ["starbucks"],
"loginCookies": "c_user=XXXXX; xs=XXXXX",
"resultsPerPage": 100
}

Scrape Facebook Comments

{
"scrapeMode": "facebook-comments-scraper",
"pages": ["NASA"],
"loginCookies": "c_user=XXXXX; xs=XXXXX",
"resultsPerPage": 50
}

Scrape Facebook Marketplace

{
"scrapeMode": "facebook-marketplace-scraper",
"marketplaceQueries": ["guitar", "laptop", "apartment"],
"marketplaceLocation": "sanfrancisco",
"resultsPerPage": 100
}

All-in-One Mode (everything at once)

{
"scrapeMode": "facebook-scraper",
"pages": ["NASA"],
"eventSearchQueries": ["space conference"],
"groupUrls": ["https://facebook.com/groups/spacenews"],
"searchQueries": ["space agency"],
"marketplaceQueries": ["telescope"],
"loginCookies": "c_user=XXXXX; xs=XXXXX",
"resultsPerPage": 50
}

📤 Output Examples

Facebook Page Result

{
"resultType": "page",
"facebookId": "1504255381069833",
"pageName": "NASA - National Aeronautics and Space Administration",
"pageUrl": "https://www.facebook.com/NASA",
"pageTitle": "NASA - National Aeronautics and Space Administration",
"category": "Government organization",
"likesCount": 28644699,
"followersCount": 28000000,
"talkingAboutCount": 545254,
"checkinsCount": null,
"isVerified": true,
"isBusinessPageActive": null,
"about": "Explore the universe and discover our home planet. There's space for everybody. ✨",
"location": null,
"address": null,
"city": null,
"confirmedOwner": "NATIONAL AERONAUTICS AND SPACE ADMINISTRATION",
"adLibraryId": "1504255381069833",
"profilePicUrl": "https://scontent...",
"coverPhotoUrl": "https://scontent...",
"scrapedAt": "2026-04-20T08:36:41.222Z"
}

Notes: NASA has no single physical HQ shown on its page → address/city/location are null (this is correct — multi-location brands never show an address). Facebook strips isBusinessPageActive to false for all pages from public HTML, so the scraper returns null rather than a misleading false. For a single-HQ page (e.g. L.L.Bean) these location fields do populate.

Facebook Post Result

{
"resultType": "post",
"pageName": "NASA",
"pageUrl": "https://www.facebook.com/NASA/",
"postText": "Artemis II crew members are preparing for humanity's return to the Moon...",
"reactionCount": 45200,
"commentCount": 1830,
"shareCount": 8400,
"publishTime": "2026-03-25T14:30:00.000Z",
"feedbackId": "10158...",
"storyId": "S:_I54971236771:...",
"scrapedAt": "2026-03-27T12:00:00.000Z"
}

Facebook Event Result

{
"resultType": "event",
"eventId": "1166242531190119",
"eventName": "NASA Science Live: Climate Edition - Rising Heat",
"eventUrl": "https://www.facebook.com/events/1166242531190119/",
"startTimestamp": "2024-05-06T22:30:00.000Z",
"endTimestamp": null,
"dayTimeSentence": "Fri, Jun 28, 2024",
"eventCreator": "NASA - National Aeronautics and Space Administration",
"isOnline": true,
"eventDescription": "From soaring temperatures affecting agriculture and the ocean, to the escalating frequency and intensity of heat waves...",
"placeName": "Online event",
"placeCity": null,
"usersResponded": 105,
"goingCount": null,
"interestedCount": null,
"ticketUrl": null,
"scrapedAt": "2026-04-20T08:36:44.709Z"
}

Notes: Facebook merged goingCount and interestedCount into a single usersResponded field in 2026. The separate counts are now always null — use usersResponded instead. ticketUrl is null for this event because event_buy_ticket_url is now stripped from FB HTML even for ticketed events.

Facebook Group Post Result

{
"resultType": "group-post",
"groupTitle": "Self-Taught Programmers",
"groupUrl": "https://www.facebook.com/groups/selftaughtprogrammers",
"authorName": "Jane Smith",
"authorId": "100012345678",
"postText": "Just landed my first developer job after 8 months of self-study!",
"reactionCount": 342,
"commentCount": 89,
"shareCount": 12,
"publishTime": "2026-03-26T10:15:00.000Z",
"topComments": [
{ "authorName": "Mike Chen", "commentText": "Congrats!", "likesCount": 15 }
],
"scrapedAt": "2026-03-27T12:00:00.000Z"
}

Facebook Review Result

{
"resultType": "review",
"pageName": "starbucks",
"reviewerName": "Paqui Marques",
"isRecommended": true,
"reviewText": "Great coffee and friendly staff. Love the atmosphere!",
"scrapedAt": "2026-03-27T12:00:00.000Z"
}

Facebook Marketplace Listing Result

{
"resultType": "marketplace-listing",
"listingId": "26647526498203861",
"listingTitle": "Mitchell Acoustic Guitar with Padded Gig Bag - $50 (mission district)",
"listingPrice": "US$ 50",
"amount": "50.00",
"currency": "USD",
"listingUrl": "https://www.facebook.com/marketplace/item/26647526498203861/",
"sellerName": "Aaron Stein",
"sellerId": "1333440687",
"location": "San Francisco",
"listingDescription": "Excellent condition, barely played. Comes with hard case and extra strings.",
"condition": "Used - Like New",
"category": "676772489112490",
"media": [{ "url": "https://scontent...", "type": "photo" }],
"scrapedAt": "2026-04-20T17:08:39.451Z"
}

Facebook Reel Result

{
"resultType": "reel",
"reelId": "893935976598019",
"reelUrl": "https://www.facebook.com/reel/893935976598019",
"caption": "A huge thank you to our Nutella community...",
"duration": 10000,
"thumbnailUrl": "https://scontent...",
"ownerName": "Nutella",
"ownerId": "100064593557699",
"publishTime": "2026-02-27T13:11:16.000Z",
"reactionCount": 6541,
"commentCount": 108,
"shareCount": 96,
"viewsCount": null,
"pageName": "nutella",
"pageUrl": "https://www.facebook.com/nutella",
"feedbackId": "ZmVlZGJhY2s6...",
"scrapedAt": "2026-04-20T17:15:00.000Z"
}

Notes: viewsCount is always null on Reels — Facebook does not server-render view counts in reel HTML for any account (verified via Chrome DevTools, 2026-04).

Facebook Comment Result

{
"resultType": "comment",
"authorName": "Susan Walker",
"commentText": "@L.L. Bean My 83-year old mother has been wearing Bean since she was a child...",
"likesCount": 278,
"createdTime": "2026-04-10T12:08:19.000Z",
"commentId": "Y29tbWVudDoxMzM1NjMyNzE4NjEyNzc3XzIzNTg0NjgwMTEzMzAyMDg=",
"postId": "1335632718612777",
"pageName": "llbean",
"pageUrl": "https://www.facebook.com/llbean",
"scrapedAt": "2026-04-20T17:18:00.000Z"
}

Notes: postId is decoded from the comment ID (base64 of comment:{postId}_{commentId}) — 100% reliable. likesCount populates for comments that appear in the post permalink's top-N visible comments; may be null for lower-ranked comments.

🌐 Proxy Options — Scraping Brand Pages (Apple, Google, SpaceX)

Facebook blocks Apify's datacenter IPs on high-profile brand pages. When you see "Checkpoint triggered" in the logs, your cookies are fine — the IP is the problem. Two options:

Option A — Built-in residential proxy

No proxy account needed. Just flip one switch and the actor routes through a pre-configured residential proxy. Residential proxy is included.

How to configure:

{
"proxyTier": "residential"
}

That's it. All modes automatically route through residential IPs.


Option B — Bring your own residential proxy

Already have a residential proxy subscription? Paste the URL into the actor:

  1. Get a residential proxy URL from your provider (format: http://user:pass@proxy.host:port)
  2. In actor input, set Proxy TierBring your own
  3. In Proxy Configuration, select "Custom" and paste your URL
  4. Enable Force Proxy on All Modestrue
{
"proxyTier": "custom",
"proxyConfiguration": {
"proxyUrls": ["http://username:password@your-proxy-host:port"]
},
"forceProxy": true
}

When do you need proxy?

Page typeExampleNeeds proxy?
Normal pagesNASA, CERN, BBC Earth❌ No
Brand pagesApple, Google, SpaceX, Amazon, Microsoft✅ Yes — residential
Authenticated modesGroups, Search, Reviews, Comments✅ Recommended

❓ Frequently Asked Questions

Do I need login cookies?

Login cookies (c_user + xs) are required for Groups, Search, Reviews, Comments, Reels, and Ads modes. They are recommended for Posts mode (enables GraphQL pagination and full reaction breakdown). Do not use cookies for Pages mode — when cookies are present, Facebook serves the authenticated feed view which omits og:description, likes count, and follower count entirely. The Events scraper works without cookies. The Marketplace scraper works without cookies but returns more results with them.

What's the difference between modes?

Each mode targets a specific type of Facebook data:

ModeBest for
PagesGetting page metadata — likes, followers, category, about text
PostsExtracting post content with engagement metrics
EventsFinding events from pages or by keyword search
GroupsReading group discussions and member posts
SearchDiscovering pages by keyword (lead generation)
ReviewsCollecting customer feedback and ratings
CommentsAnalyzing post engagement and audience sentiment
MarketplaceMonitoring product listings and pricing
ReelsExtracting reel metadata, captions, duration, and engagement
AdsBrowsing Meta Ad Library creatives and ad details
All-in-OneRunning multiple modes in a single run
Data ExtractorSame as All-in-One with cheaper per-result billing

How many results can I get?

Up to 500 results per input (per page, group, or search query). Set the resultsPerPage parameter to control this. There is no hard cap on total results — simply add more inputs to scale. For example, 10 pages x 500 posts each = 5,000 posts in one run.

Can I use the API?

Yes. Every Apify actor has a full REST API. You can trigger runs, pass input, and fetch results programmatically:

curl "https://api.apify.com/v2/acts/get-leads~all-in-one-facebook-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"scrapeMode": "facebook-posts-scraper",
"pages": ["NASA"],
"resultsPerPage": 50
}'

See the Apify API documentation for Python, Node.js, and other client libraries.

This Facebook scraper accesses only publicly available data that anyone can view without logging in (for unauthenticated modes). Authenticated modes access data visible to logged-in users. Always ensure your use case complies with applicable laws and regulations. Apify provides the infrastructure; you are responsible for how you use the extracted data. Read more about web scraping legality.

Can I integrate with Make, Zapier, or Google Sheets?

Yes. Apify has native integrations with popular automation tools:

  • Make (Integromat) — trigger scraping runs and process Facebook data in Make scenarios
  • Zapier — connect Facebook data to 5,000+ apps
  • Google Sheets — export results directly to a spreadsheet
  • Slack — get notifications when scraping completes
  • Airbyte — sync data to your warehouse
  • Webhooks — send results to any HTTP endpoint in real time

Does it work with MCP (Model Context Protocol)?

Yes. This actor is fully compatible with the Apify MCP Server. Connect it to AI agents and LLM workflows so tools like Claude, ChatGPT, and custom AI assistants can trigger Facebook scraping runs, process results, and incorporate Facebook data into their responses.

Why is this scraper HTTP-only? Can it handle dynamic content?

Facebook serves most public data in server-rendered HTML and via internal GraphQL endpoints. This scraper parses both — no headless browser needed. This means:

  • Faster execution — no browser startup or page rendering delays
  • Lower memory — runs on 256 MB vs. 1-4 GB for browser-based scrapers
  • Lower cost — no compute overhead from Playwright or Puppeteer
  • Zero proxy costs — most modes don't need proxies at all

Which fields are always null and why?

Facebook doesn't expose every field in HTML. The scraper follows a strict null-honesty policy: a field is null only when FB genuinely doesn't carry the data. Ground-truth verified by inspecting FB HTML in a logged-in Chrome session.

FieldMode(s)Reason
viewsCountReelsReel page HTML has zero occurrences of video_view_count / play_count / view_count — FB doesn't show view counts for reels
goingCount, interestedCountEventsFacebook removed the separate keys in 2026. Use the new usersResponded field (combined going + interested)
ticketUrlEventsEven ticketed concerts have "event_buy_ticket_url":null — FB stopped populating this key
address, city, locationPages, SearchMulti-location brands (Starbucks, McDonald's, Walmart…) don't have a single address on FB. Single-HQ pages (L.L.Bean, Zappos, Harley-Davidson) do populate these fields
isBusinessPageActivePagesFB strips this to false for every page in public HTML. Returned as null instead of a misleading false
checkinsCountPagesOnly pages with physical check-in locations have this count
likesCount on non-top commentsComments, Posts.topCommentsFB only server-renders reaction counts for the permalink's top-N visible comments
comments, topCommentsPostsEmpty when a post has zero user comments (content-dependent, not a parser issue)
viewsCount on non-video postsPostsOnly video posts expose a view count

What if a mode isn't returning data?

Check the run logs for specific error messages. Common issues include:

  • Login cookies expired — re-extract c_user and xs from your browser and paste them into the loginCookies field
  • Checkpoint triggered (high-traffic brand pages) — pages like Apple, Google, and SpaceX require a residential proxy. Enable proxyConfiguration with the RESIDENTIAL group and set forceProxy: true. The logs will show "Checkpoint triggered" to distinguish this from cookie expiry
  • Page doesn't exist — verify the page name or URL is correct
  • Rate limiting — reduce resultsPerPage or add delays between runs via requestDelay
  • Missing input — ensure you've filled in the correct input field for your chosen mode
  • Non-English like counts — if your Facebook account is set to a non-English language, the scraper automatically enforces English via a locale=en_US cookie. If counts are still null, try switching your Facebook account language to English

🆚 How It Compares to Other Facebook Scrapers

FeatureAll-in-One Facebook ScraperTypical competitors
Scraping modes12 modes in one actor1-3 modes, separate actors
ArchitectureHTTP-only (no browser)Playwright / Puppeteer
Memory requirement256 MB1-4 GB
Proxy costsZero for most modesRequired
Price per 1K posts$3.00$5.00-$8.00
Price per 1K pages$7.20$10.00-$15.00
Marketplace supportYesRare
Reviews + CommentsYesRare
MCP server compatibleYesVaries
IntegrationsMake, Zapier, Sheets, SlackVaries

Save up to 40% compared to other Facebook scrapers while getting more modes, lower memory usage, and faster results.

Building a multi-platform data pipeline? Check out our other scrapers on Apify Store:

🛠️ Technical Details

  • Runtime: Node.js 20 with Impit (Chrome TLS fingerprinting)
  • Default memory: 256 MB (max: 4,096 MB)
  • Concurrency: Auto-managed based on available memory (scales down under pressure)
  • Session management: Sticky proxy sessions (same IP reused per cookie session to prevent Facebook xs invalidation). Multiple cookie sets rotate automatically on blocks. Cookie cache persists across runs via Apify KV Store (7-day TTL)
  • Locale handling: Enforces en_US locale automatically to ensure consistent field extraction regardless of the account's language setting
  • Error categories: DELETED, RATE_LIMITED, FORMAT_CHANGE, NETWORK, BLOCKED, LOGIN_REQUIRED
  • Output formats: JSON, CSV, Excel, XML, HTML
  • Proxy: Not required for pages/posts/events. Recommended for groups/search. Required (RESIDENTIAL) for high-traffic brand pages (Apple, Google, SpaceX) when using forceProxy: true

Built and maintained by get-leads on Apify. Found a bug or have a feature request? Open an issue on the Issues tab.