Facebook Page Posts Scraper — No Login Required
Pricing
from $2.00 / 1,000 post extracteds
Facebook Page Posts Scraper — No Login Required
Extract posts from any public Facebook page or profile. No login or cookies needed. Supports date filtering, pagination, and Smart Scrape dedup.
Pricing
from $2.00 / 1,000 post extracteds
Rating
5.0
(1)
Developer
Crowd Pull
Maintained by CommunityActor stats
2
Bookmarked
214
Total users
44
Monthly active users
4 days ago
Last modified
Categories
Share
Extract posts from any public Facebook page or profile — no login or cookies required.
No browser automation — just fast, lightweight HTTP requests for reliable extraction.
Features
- No login required — extracts posts anonymously from public pages and profiles
- Smart Scrape (dedup) — skip posts already scraped in previous runs, saving up to 75% on recurring scrapes
- Full post data — text, author, permalink, timestamp, available engagement counts, images, videos, links, and hashtags
- People URL support — normalizes
/people/Name/{id}and legacy/pages/Name/{id}URLs to the correct Facebook entity - Date filtering — extract posts newer than a specific date (ISO or relative:
7d,30d,6m) - Multi-page support — process multiple pages or profiles in a single run
- Pagination — follows Facebook's available feed cursors until the requested limit or exposed feed ends
- Low cost — runs on 256MB memory, no browser overhead
Smart Scrape: How It Saves You Money
Enable Smart Scrape to skip posts you've already extracted. The scraper maintains a persistent cache per page that survives across runs indefinitely.
| Without Smart Scrape | With Smart Scrape | |
|---|---|---|
| Run 1 (500 posts) | $1.755 | $1.755 |
| Run 2 (125 new) | $1.755 | $0.8175 |
| Run 3 (125 new) | $1.755 | $0.8175 |
| Run 4 (125 new) | $1.755 | $0.8175 |
| Monthly total | $7.02 | $4.2075 |
| Unique posts | 875 (+ 1,125 duplicate rows) | 875 (zero duplicate rows) |
| Cost per unique post | $0.0080 | $0.0048 |
This example uses the currently applied Free-tier price ($0.0035 per extracted post), the $0.001 cache-check price, and the $0.005 run-start charge. Higher Apify tiers have lower post prices; verify the Store pricing panel for current rates.
Refresh Window
Set refreshWindowDays to re-check recent posts for updated comment/reaction counts. For example, refreshWindowDays: 7 re-scrapes posts from the last 7 days even if cached, so you always get fresh engagement data on recent content.
What you get per post
| Field | Description |
|---|---|
postId | Unique post identifier |
postUrl | Direct permalink to the post |
postText | Full post text content |
authorName | Author's display name |
authorProfileUrl | Link to author's profile |
timestamp | ISO 8601 timestamp |
commentCount | Number of comments, or null when Facebook withholds it from logged-out responses |
reactionCount | Number of reactions, or null when unavailable |
shareCount | Number of shares, or null when unavailable |
imageUrls | Array of image URLs attached to the post |
videoUrls | Array of directly exposed video URLs |
sharedLinks | URLs shared in the post text |
hashtags | Hashtags parsed from post text |
pageUrl | Source page URL |
pageName | Page display name |
pageId | Facebook page ID |
How it works
- Fetches the page or profile anonymously — no login, no cookies, no browser
- Extracts Facebook's public request tokens and numeric entity ID
- Queries the current public timeline GraphQL feed and parses structured post records
- Checks each post against the dedup cache (if Smart Scrape is enabled)
- Paginates via GraphQL until
maxPostsis reached or Facebook stops exposing cursors - Saves the updated cache for the next run
Input examples
Basic extraction
{"startUrls": [{ "url": "https://www.facebook.com/zuck" }],"maxPosts": 20}
Date-filtered extraction
{"startUrls": [{ "url": "https://www.facebook.com/NASA" }],"maxPosts": 50,"onlyPostsNewerThan": "30d"}
Smart Scrape (incremental monitoring)
{"startUrls": [{ "url": "https://www.facebook.com/zuck" },{ "url": "https://www.facebook.com/NASA" }],"maxPosts": 100,"enableDedup": true,"refreshWindowDays": 7}
Output example
{"postId": "1084920485123456","postUrl": "https://www.facebook.com/zuck/posts/1084920485123456","postText": "Excited to share what we've been working on. More details coming soon.","authorName": "Mark Zuckerberg","authorProfileUrl": "https://www.facebook.com/zuck","timestamp": "2026-03-01T14:30:00.000Z","commentCount": 8500,"reactionCount": 42000,"shareCount": 1250,"imageUrls": ["https://scontent.fudi1-1.fna.fbcdn.net/v/..."],"videoUrls": [],"sharedLinks": [],"hashtags": [],"pageUrl": "https://www.facebook.com/zuck","pageName": "Mark Zuckerberg","pageId": "4"}
Other CrowdPull Facebook scrapers
- Facebook Group Posts Scraper — extract posts from any public Facebook group
- Facebook Comment Scraper — extract comments where Facebook exposes them; optional cookies support signed-in-only surfaces
- Facebook Marketplace Scraper — extract listings from Facebook Marketplace by location with price filtering
Cost estimate
This Actor uses no browser — just lightweight HTTP requests.
| Event | Cost |
|---|---|
| Actor start | $0.005 (one-time per run) |
| Post extracted | $0.0035/post on Free; $0.003/$0.00225/$0.002/$0.0015/$0.001 on Bronze through Diamond |
| Cache check (Smart Scrape skip) | $0.001/post |
Volume discounts available at higher tiers.
Is it legal to scrape Facebook pages?
Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Limitations
- Only works with public pages and profiles (private profiles return 0 posts)
- Facebook may change internal APIs — report issues if extraction stops
- Facebook rate limits apply; residential proxies recommended
- Unavailable engagement counts are returned as
null, not a misleading zero