Facebook Posts Scraper
Pricing
$19.99/month + usage
Facebook Posts Scraper
Scrape Facebook posts from public pages and profiles with ease ππ’ Extract post text, dates, reactions, comments, shares, media, and more. Perfect for competitor research, content analysis, audience insights, and trend tracking. Turn Facebook data into actionable insights fast π
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeMesh
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
A powerful Apify actor that extracts public Facebook posts from pages, groups, and profiles with advanced filtering, engagement metrics, and optional video transcript extraction.
π― Overview
This actor scrapes Facebook posts from public pages, groups, and profiles, extracting comprehensive data including post content, engagement metrics, media attachments, user information, and optional video transcripts. It features intelligent proxy fallback, timeframe filtering, and robust error handling for reliable data collection at scale.
β¨ Key Features
- π Multi-source scraping - Extract posts from Facebook pages, groups, and public profiles
- π Timeframe filtering - Filter posts by absolute dates or relative time (days, weeks, months, years)
- π Engagement metrics - Automatically extracts likes, comments, shares, and reaction counts
- π¬ Video transcript extraction - Optional extraction of video transcripts for video/reel posts
- π Smart proxy fallback - Automatically falls back from no proxy β datacenter β residential proxy
- β‘ Efficient pagination - Handles large page histories with automatic pagination
- π‘οΈ Error handling - Robust retry logic and rate limit handling
- π¦ Structured output - Clean JSON format ready for analysis
π₯ Input Parameters
Required Parameters
| Parameter | Type | Description |
|---|---|---|
startUrls | Array | List of Facebook page URLs, usernames, or keywords. Supports multiple formats: full URLs (https://www.facebook.com/pagename), usernames (pagename), or group identifiers. |
Optional Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
maxPosts | Integer | 10 | Maximum number of posts to scrape per page (1-10000) |
includeVideoTranscript | Boolean | false | Extract video transcript for video/reel posts (if available) |
dateFilterType | String | "relative" | Time filter type: "absolute" or "relative" |
absoluteStartDate | String | "" | Start date in YYYY-MM-DD format (when dateFilterType is "absolute") |
absoluteEndDate | String | "" | End date in YYYY-MM-DD format (when dateFilterType is "absolute"). Leave empty for current date. |
relativeValue | Integer | 0 | Number of time units (when dateFilterType is "relative") |
relativeUnit | String | "days" | Time unit: "days", "weeks", "months", or "years" |
includeEngagement | Boolean | true | Include engagement metrics (likes, comments, shares) |
includeVideoMetadata | Boolean | true | Include detailed video metadata |
proxyConfiguration | Object | {"useApifyProxy": false} | Proxy settings. Default: no proxy. Automatically falls back to datacenter, then residential proxy if needed. |
Input Example
{"startUrls": ["iamsrk","Cristiano","https://www.facebook.com/pagename/"],"maxPosts": 100,"includeVideoTranscript": true,"dateFilterType": "relative","relativeValue": 30,"relativeUnit": "days","proxyConfiguration": {"useApifyProxy": false}}
π€ Output Format
Each post in the dataset contains the following fields:
| Field | Type | Description |
|---|---|---|
facebookUrl | String | URL of the Facebook page/profile |
postId | String | Unique post identifier |
pageName | String | Name/username of the page |
url | String | Direct URL to the post |
time | String | Post timestamp in ISO format (YYYY-MM-DDTHH:MM:SS.000Z) |
timestamp | Number | Unix timestamp |
user | Object | User/page information (id, name, profileUrl, profilePic) |
text | String | Post text content |
textReferences | Array | Mentions, tags, and references in the post |
likes | Number | Number of likes/reactions |
comments | Number | Number of comments |
shares | Number | Number of shares |
topReactionsCount | Number | Count of top reactions |
media | Array | Media attachments (images, videos) with metadata |
feedbackId | String | Facebook feedback identifier |
topLevelUrl | String | Canonical post URL |
facebookId | String | Facebook page/user ID |
pageAdLibrary | Object | Ad library information |
inputUrl | String | Original input URL used |
captionText | String | Video transcript (only if includeVideoTranscript is true and transcript is available) |
Output Example
{"facebookUrl": "https://www.facebook.com/iamsrk/","postId": "1397878851694949","pageName": "iamsrk","url": "https://www.facebook.com/reel/1849391758997898/","time": "2025-11-15T10:41:16.000Z","timestamp": 1763203276,"user": {"id": "100044185428261","name": "Shah Rukh Khan","profileUrl": "https://www.facebook.com/100044185428261","profilePic": "https://scontent.fdac142-1.fna.fbcdn.net/v/t39.30808-1/366996841_856684082481098_8756972728894965534_n.jpg?..."},"text": "It is humbling and deeply touching to have a landmark in Dubai carry my name...","textReferences": [{"id": "100068746803211","url": "https://www.facebook.com/100068746803211","profile_url": "https://www.facebook.com/100068746803211","short_name": "Danube Properties","work_info": null,"work_foreign_entity_info": null,"mobileUrl": "https://m.facebook.com/100068746803211/"}],"likes": 40224,"comments": 2279,"shares": 1484,"topReactionsCount": 7,"media": [{"mediaset_token": "pcb.1397878851694949","url": "https://www.facebook.com/reel/1849391758997898/","comet_product_tag_feed_overlay_renderer": null}],"feedbackId": "ZmVlZGJhY2s6MTM5Nzg3ODg1MTY5NDk0OQ==","topLevelUrl": "https://www.facebook.com/100044185428261/posts/1397878851694949","facebookId": "100044185428261","pageAdLibrary": {"is_business_page_active": false,"id": "100044185428261"},"inputUrl": "https://www.facebook.com/iamsrk/","captionText": "Video transcript text here..."}
π οΈ How to Use
Step 1: Configure Input
-
Start URLs: Enter Facebook page URLs, usernames, or group identifiers
- Full URL:
https://www.facebook.com/pagename - Username:
pagename - Group:
groupnameorhttps://www.facebook.com/groups/groupname
- Full URL:
-
Post Limit: Set
maxPoststo control how many posts to scrape per page (1-10000) -
Timeframe Filter (Optional):
- Relative: Set
dateFilterTypeto"relative", then specifyrelativeValue(e.g., 30) andrelativeUnit(e.g., "days") - Absolute: Set
dateFilterTypeto"absolute", then specifyabsoluteStartDateandabsoluteEndDatein YYYY-MM-DD format
- Relative: Set
-
Video Transcripts (Optional): Set
includeVideoTranscripttotrueto extract transcripts from video/reel posts -
Proxy Configuration (Optional): Configure proxy settings. By default, uses no proxy and automatically falls back if needed.
Step 2: Run the Actor
Click "Start" to begin scraping. The actor will:
- Normalize input URLs
- Initialize proxy configuration (with automatic fallback)
- Scrape posts from each target sequentially
- Apply timeframe filters
- Extract video transcripts (if enabled)
- Save results to the dataset
Step 3: Download Results
Results are automatically saved to the dataset. You can:
- View results in the Apify platform
- Download as JSON, CSV, or Excel
- Access via API
π― Use Cases
- π Marketing & Social Media Analysis - Track competitor content, analyze engagement trends, identify top-performing posts
- π° Journalism & Research - Monitor public conversations, analyze group discussions, gather community insights
- π Brand Monitoring - Track brand mentions across Facebook pages and groups
- π§ AI/ML Dataset Creation - Build datasets for sentiment analysis, NLP, or content analysis
- π E-commerce Trend Tracking - Identify viral products and trending topics in Facebook groups
- π± Content Strategy - Analyze successful post formats, timing, and engagement patterns
βοΈ Technical Details
Proxy Fallback Strategy
The actor implements intelligent proxy fallback:
- No Proxy (default) - Direct connection to Facebook
- Datacenter Proxy - Falls back if direct connection is blocked
- Residential Proxy - Final fallback if datacenter proxy fails
This ensures maximum reliability while respecting user preferences.
Timeframe Filtering
- Relative Time: Filter posts from the last N days/weeks/months/years
- Absolute Dates: Filter posts between specific start and end dates
- Filters are applied both at the GraphQL API level and client-side for accuracy
Video Transcript Extraction
When includeVideoTranscript is enabled:
- Automatically detects video/reel posts
- Extracts transcripts using Facebook's GraphQL API
- Adds transcript as
captionTextfield in the output - Gracefully handles cases where transcripts are unavailable
Rate Limiting & Error Handling
- Automatic retry logic with exponential backoff
- Rate limit detection and handling
- Consecutive empty response detection
- Detailed error logging for debugging
π Scalability
The actor is designed to handle:
- Small Scale (1-100 posts) - Quick research and analysis
- Medium Scale (100-10,000 posts) - Competitor audits and trend analysis
- Large Scale (10,000+ posts) - Enterprise-level data collection
Supports scraping from:
- Facebook Pages
- Facebook Groups
- Public Profiles
βοΈ Legal & Ethical Considerations
This actor scrapes only publicly accessible data. It:
- β Does not access private or restricted content
- β Respects Facebook's Terms of Service
- β Does not bypass login restrictions
- β Complies with data privacy laws (GDPR, CCPA, etc.)
Important: Always use scraped data responsibly and in compliance with applicable laws and platform terms.
π§ Troubleshooting
Common Issues
-
No posts returned
- Check if the page/group is public and accessible
- Verify the URL format is correct
- Try enabling proxy configuration
-
Rate limiting errors
- The actor automatically handles rate limits with retries
- Consider reducing
maxPostsor adding delays between runs
-
Video transcripts not extracted
- Ensure
includeVideoTranscriptis set totrue - Note that not all videos have transcripts available
- Check that the post URL contains
/videos/or/reel/
- Ensure
-
Proxy issues
- The actor automatically falls back through proxy types
- Ensure your Apify account has proxy access if using Apify proxies
π Support
For custom solutions or feature requests, contact: dev.scraperengine@gmail.com
π Conclusion
The Facebook Posts Scraper provides a powerful, reliable solution for extracting Facebook post data at scale. With advanced filtering, engagement metrics, and optional video transcript extraction, it's perfect for marketers, researchers, and data analysts who need structured Facebook insights.