Facebook Profile Scraper — No Login Required
Pricing
from $2.00 / 1,000 post extracteds
Facebook Profile Scraper — No Login Required
Extract posts, reactions, and images from any public Facebook profile. No login or cookies needed. Supports date filtering, profile info extraction, and Smart Scrape dedup.
Pricing
from $2.00 / 1,000 post extracteds
Rating
0.0
(0)
Developer

Crowd Pull
Actor stats
0
Bookmarked
5
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Extract posts and profile info from any public Facebook 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 profiles
- Smart Scrape (dedup) — skip posts already scraped in previous runs, saving up to 75% on recurring scrapes
- Profile info extraction — name, services, followers count, contact phone and email
- Full post data — text, author, permalink, timestamp, reactions, comments, shares, images, videos, hashtags
- Date filtering — extract posts newer than a specific date (ISO or relative:
7d,30d,6m) - Multi-profile support — process multiple profiles in a single run
- Pagination — automatically scrolls through the full timeline feed
- 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 profile that survives across runs indefinitely.
| Without Smart Scrape | With Smart Scrape | |
|---|---|---|
| Run 1 (500 posts) | 500 × $0.0035 = $1.75 | 500 × $0.0035 = $1.75 |
| Run 2 (125 new) | 500 × $0.0035 = $1.75 | 125 new × $0.0035 + 375 skip × $0.001 = $0.8125 |
| Run 3 (125 new) | 500 × $0.0035 = $1.75 | 125 new × $0.0035 + 375 skip × $0.001 = $0.8125 |
| Run 4 (125 new) | 500 × $0.0035 = $1.75 | 125 new × $0.0035 + 375 skip × $0.001 = $0.8125 |
| Monthly total | $7.00 | $4.19 |
| Unique posts | 500 (+ 1,500 duplicates) | 875 (zero duplicates) |
| Cost per unique post | $0.014 | $0.005 |
40% cheaper per month. 64% cheaper per unique post. Zero duplicate cleanup.
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
Profile info (when includeProfileInfo is enabled)
| Field | Description |
|---|---|
name | Profile display name |
profileUrl | Direct link to the profile |
services | Array of listed services |
contactPhone | Phone number (if public) |
contactEmail | Email address (if public) |
followersCount | Number of followers |
type | Always "profileInfo" |
Posts
| Field | Description |
|---|---|
postId | Unique post identifier |
postUrl | Direct permalink to the post |
profileUrl | Link to the source profile |
profileName | Profile display name |
authorName | Author's display name |
text | Full post text content |
timestamp | ISO 8601 timestamp |
imageUrls | Array of image URLs attached to the post |
videoUrls | Array of video URLs attached to the post |
reactionCount | Number of reactions |
commentCount | Number of comments |
shareCount | Number of shares |
hashtags | Array of hashtags extracted from the post text |
scrapedAt | ISO 8601 timestamp of when the post was scraped |
How it works
- Fetches the profile page anonymously — no login, no cookies, no browser
- Extracts CSRF tokens and numeric user ID from the page HTML
- Queries Facebook's internal GraphQL API for timeline posts
- Optionally fetches profile metadata (services, followers, contact info) via additional GraphQL queries
- Checks each post against the dedup cache (if Smart Scrape is enabled)
- Paginates via Relay cursors until
maxPostsreached or feed exhausted - Saves updated cache for next run
Input examples
Basic extraction
{"startUrls": [{ "url": "https://www.facebook.com/profile.php?id=61580944632584" }],"maxPosts": 20}
With profile info and posts
{"startUrls": [{ "url": "https://www.facebook.com/zuck" }],"maxPosts": 50,"includeProfileInfo": true,"onlyPostsNewerThan": "30d"}
Smart Scrape (incremental monitoring)
{"startUrls": [{ "url": "https://www.facebook.com/zuck" },{ "url": "https://www.facebook.com/profile.php?id=61580944632584" }],"maxPosts": 100,"enableDedup": true,"refreshWindowDays": 7}
Output example
Profile info
{"name": "Mark Zuckerberg","profileUrl": "https://www.facebook.com/profile.php?id=4","services": ["Technology", "Social Media"],"contactPhone": "","contactEmail": "","followersCount": 120000000,"type": "profileInfo"}
Post
{"postId": "1084920485123456","postUrl": "https://www.facebook.com/4/posts/1084920485123456/","profileUrl": "https://www.facebook.com/profile.php?id=4","profileName": "Mark Zuckerberg","authorName": "Mark Zuckerberg","text": "Excited to share what we've been working on. More details coming soon.","timestamp": "2026-03-01T14:30:00.000Z","imageUrls": ["https://scontent.fudi1-1.fna.fbcdn.net/v/..."],"videoUrls": [],"reactionCount": 42000,"commentCount": 8500,"shareCount": 1200,"hashtags": [],"scrapedAt": "2026-03-06T18:00:00.000Z"}
Other CrowdPull Facebook scrapers
- Facebook Page Posts Scraper — extract posts from any public Facebook page
- Facebook Group Posts Scraper — extract posts from any public Facebook group
- Facebook Comment Scraper — extract all comments and replies from any public post with reaction breakdowns
- 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) |
| Profile scraped | $0.0035/profile |
| Post extracted | $0.0035/post |
| Cache check (Smart Scrape skip) | $0.001/post |
Volume discounts available at higher tiers.
Is it legal to scrape Facebook profiles?
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 profiles (private profiles return 0 posts)
- Contact info (phone, email) may return empty in anonymous mode
- Facebook may change internal APIs — report issues if extraction stops
- Facebook rate limits apply; residential proxies recommended
- Profile info fields like services depend on what the user has listed publicly