Facebook Posts Scraper
Pricing
$19.99/month + usage
Facebook Posts Scraper
📘 Facebook Posts Scraper extracts public posts, reactions, comments, timestamps, media & links from pages/groups at scale. ⚙️ Export JSON/CSV, API-ready. 🔎 Perfect for social listening, competitor analysis & content research—privacy-safe and TOS-compliant. 🚀
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scrapium
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Facebook Posts Scraper
Facebook Posts Scraper is a production-ready tool that lets you scrape Facebook posts at scale from public pages (and compatible public profiles), capturing post text, timestamps, engagement metrics, media, and clean permalinks—no official API or login required. It solves the pain of manual copy-paste and unreliable tools by automating discovery, pagination, and extraction from the Facebook feed. Built for marketers, developers, data analysts, and researchers, this Facebook post extractor powers social listening, competitive analysis, and content research with export-ready datasets.
What data / output can you get?
Below are real output fields the actor saves to the dataset, with examples to illustrate structure and formatting.
| Data field | Description | Example value |
|---|---|---|
| facebookUrl | Input-normalized Facebook target URL | https://www.facebook.com/nytimes/ |
| postId | Unique post identifier | 1234567890123456 |
| pageName | Page or profile slug derived from URL | nytimes |
| url | Direct URL to the post (falls back to canonical) | https://www.facebook.com/100044185428261/posts/1397878851694949 |
| time | Post time in ISO-like format (UTC) | 2025-01-15T08:30:12.000Z |
| timestamp | Unix timestamp (seconds) | 1736923812 |
| user | Object with user/page metadata | {"id":"100044185428261","name":"Page Name","profileUrl":"https://www.facebook.com/100044185428261","profilePic":"https://.../photo.jpg"} |
| text | Post caption/message (may be blank if disabled) | "New product launch today..." |
| likes | Total reaction count | 1524 |
| comments | Total comments count | 87 |
| shares | Total shares count | 43 |
| topReactionsCount | Count of top reactions aggregate | 1524 |
| reactionLikeCount | Like reaction count | 1200 |
| reactionLoveCount | Love reaction count | 210 |
| reactionHahaCount | Haha reaction count | 50 |
| reactionCareCount | Care reaction count | 22 |
| reactionSadCount | Sad reaction count | 10 |
| reactionWowCount | Wow reaction count | 30 |
| reactionAngryCount | Angry reaction count | 2 |
| media | Array of media attachments with thumbnails, dimensions, and optional OCR text | [{"thumbnail":"https://.../image.jpg","photo_image":{"uri":"https://.../image.jpg","height":1080,"width":1080},"url":"https://www.facebook.com/...","id":"9876543210","ocrText":"..." }] |
| collaborators | Array of collaborator objects when present | [] |
| feedbackId | Feedback object ID for the post | "ZmVlZGJhY2s6MTM5N..." |
| topLevelUrl | Canonical permalink composed from IDs | https://www.facebook.com/100044185428261/posts/1397878851694949 |
| facebookId | Owning profile/page ID | 100044185428261 |
| pageAdLibrary | Object with page/ad library ID | {"id":"100044185428261"} |
| inputUrl | Original input URL | https://www.facebook.com/nytimes/ |
Notes:
- Media items may include an accessibility caption exposed as ocrText when available.
- You can export Facebook posts to CSV, JSON, or Excel directly from the Apify dataset.
Key features
-
🚀 GraphQL-powered feed scraping Efficiently scrape Facebook feed data with cursor-based pagination to handle long timelines and scale campaigns.
-
📊 Engagement metrics & reactions breakdown Collect likes, comments, shares, and per-reaction counts (Like, Love, Haha, Care, Sad, Wow, Angry) for precise benchmarking.
-
🧾 Clean, structured output Get canonical permalinks, user/page metadata, timestamps, and media objects in a normalized schema ready for BI tools.
-
🛡️ Smart proxy preferences Prefers Apify Residential proxy for maximum reliability, falls back to Datacenter, and supports custom proxy URLs via proxyConfiguration.
-
⏱️ Flexible date filtering Limit by “Posts Newer Than” and “Posts Older Than” using absolute dates or relative time (e.g., 7 days, 2 months).
-
🖼️ Media with metadata Extract thumbnails, dimensions, and attachment URLs, plus optional accessibility captions when available.
-
🔌 Developer friendly Works seamlessly with the Apify API and can be integrated into Facebook posts scraper Python workflows and data pipelines.
-
🔄 Reliable retries & backoff Built-in handling for empty or rate-limited responses with exponential backoff to keep your jobs stable.
How to use Facebook Posts Scraper - step by step
- Create or log in to your Apify account.
- Open the Facebook Posts Scraper actor on Apify.
- Add your targets to startUrls:
- Full URLs like https://www.facebook.com/nytimes/ or https://www.facebook.com/Cristiano/
- Usernames like nytimes or Cristiano (the actor converts these to full URLs)
- Set maxPosts to control how many posts to collect per target (1–10,000).
- (Optional) Configure date filters:
- oldestPostDateUnified for “Posts Newer Than”
- newestPostDate for “Posts Older Than” Both accept absolute dates (YYYY-MM-DD) or relative values (e.g., 7 days, 2 months).
- (Optional) Toggle includeVideoTranscript if you want post text preserved in output; when off, the text field is left blank for faster runs.
- (Optional) Configure proxyConfiguration or leave it to let the actor prefer Residential and fall back as needed.
- Click Start. The run will normalize inputs, paginate through the Facebook feed, and push each accepted post to the dataset in real time.
- Download results from the dataset as JSON, CSV, or Excel—or consume via the Apify API for automation.
Pro Tip: Chain runs via the API and connect outputs to your warehouse or dashboarding tools to automate a Facebook public posts scraper pipeline.
Use cases
| Use case | Description |
|---|---|
| Marketing team – competitor post tracking | Monitor competitor pages, track engagement by reaction type, and identify content formats that drive shares and comments. |
| Social listening for research | Analyze public page posts to quantify trends and response patterns without manual browsing. |
| Content ops – editorial insights | Export Facebook posts to CSV and review top-performing topics by week or month to guide content calendars. |
| Data analysts – KPI dashboards | Feed structured post metrics into BI tools to benchmark campaigns and compute engagement rates. |
| Academic studies – public discourse | Collect public page timelines over a time window for reproducible, privacy-safe research datasets. |
| Developer pipelines – ETL to warehouse | Use the Apify API to run an automated Facebook posts scraper Python job and land data in your warehouse daily. |
Why choose Facebook Posts Scraper?
- 🎯 Precision-first extraction: Structured JSON with clean permalinks, IDs, timestamps, and reaction breakdowns.
- 🌍 Public data only: Works as a Facebook public posts scraper—no login or cookies required.
- 📈 Built for scale: Scrape up to thousands of posts per target with robust pagination and backoff.
- 💻 Developer access: Integrate via API and use in Facebook posts scraper Python pipelines or workflows.
- 🔒 Safer operations: Prefers Residential proxy, falls back to Datacenter, and supports your own proxies.
- 💸 Export-ready: Download as JSON/CSV/Excel or stream via API into your analytics stack.
- 🧩 Better than extensions: No flaky browser hacks—server-side stability with production-grade reliability.
In short, this Facebook posts scraper tool delivers consistent, analyzable outputs without the fragility of browser plugins.
Is it legal / ethical to use Facebook Posts Scraper?
Yes—when used responsibly. This actor accesses publicly available content and does not access private or authenticated data. You should:
- Scrape only public pages and content you’re permitted to process.
- Comply with data protection laws (e.g., GDPR, CCPA) and your organization’s policies.
- Respect platform terms and use results for lawful purposes only.
- Consult your legal team for edge cases or jurisdiction-specific guidance.
Input parameters & output format
Example input
{"startUrls": ["https://www.facebook.com/nytimes/","Cristiano"],"maxPosts": 25,"includeVideoTranscript": false,"oldestPostDateUnified": "7 days","newestPostDate": "","proxyConfiguration": {"useApifyProxy": false}}
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array | Yes | — | Required. One or more Facebook page targets. Accepts full URLs (e.g., https://www.facebook.com/nytimes/) or usernames (e.g., nytimes). Mixed formats allowed; targets are processed sequentially. |
| maxPosts | integer | No | 10 | Limit how many posts to collect per target page. Minimum: 1, Maximum: 10,000. The actor stops once this count is reached for each page. |
| includeVideoTranscript | boolean | No | false | Capture content text. When ON, the output keeps the post text; when OFF, posts still appear with metadata but the text field is blank for faster scraping. |
| oldestPostDateUnified | string | No | — | Posts Newer Than (Start Date). Accepts absolute date (YYYY-MM-DD) or relative values like “7 days”, “2 months”, “1 year”. |
| newestPostDate | string | No | — | Posts Older Than (End Date). Accepts absolute date (e.g., 2024-12-31) or relative values (e.g., 0 for today). Combine with start date for a window. |
| proxyConfiguration | object | No | {"useApifyProxy": false} | Proxy settings. Prefers Apify Residential proxy for success rates, falls back to Apify Datacenter, and supports custom proxy URLs. No configuration required for basic runs. |
Example output
{"facebookUrl": "https://www.facebook.com/nytimes/","postId": "1397878851694949","pageName": "nytimes","url": "https://www.facebook.com/100044185428261/posts/1397878851694949","time": "2025-11-15T10:41:16.000Z","timestamp": 1763203276,"user": {"id": "100044185428261","name": "The New York Times","profileUrl": "https://www.facebook.com/100044185428261","profilePic": "https://scontent.xx.fbcdn.net/v/t39.30808-1/....jpg"},"collaborators": [],"text": "It is humbling and deeply touching to have a landmark carry our name...","likes": 40224,"comments": 2279,"shares": 1484,"topReactionsCount": 40224,"media": [{"thumbnail": "https://scontent.xx.fbcdn.net/v/t39.30808-6/....jpg","__typename": "Photo","__isMedia": "Photo","accent_color": "FFFFFFFF","photo_product_tags": [],"photo_image": {"uri": "https://scontent.xx.fbcdn.net/v/t39.30808-6/....jpg","height": 1080,"width": 1080},"url": "https://www.facebook.com/...","id": "9876543210","feedback": {"can_viewer_comment": false,"id": "ZmVlZGJhY2s6MTM5Nzg3ODg1MTY5NDk0OQ=="},"ocrText": "A descriptive caption here..."}],"feedbackId": "ZmVlZGJhY2s6MTM5Nzg3ODg1MTY5NDk0OQ==","reactionLikeCount": 35000,"reactionLoveCount": 4200,"reactionHahaCount": 450,"reactionCareCount": 200,"reactionSadCount": 150,"reactionWowCount": 200,"reactionAngryCount": 24,"topLevelUrl": "https://www.facebook.com/100044185428261/posts/1397878851694949","facebookId": "100044185428261","pageAdLibrary": {"id": "100044185428261"},"inputUrl": "https://www.facebook.com/nytimes/"}
Notes:
- comments is a count only; this is not a Facebook comments scraper. Use this as a Facebook feed scraper for post-level metrics and content.
FAQ
Do I need to log in or use the official API?
No. This is a Facebook posts scraper without API and without login. It targets public content and fetches the feed directly from the web.
Can it scrape Facebook page posts and public profiles?
Yes. It normalizes usernames and URLs for pages and compatible public profiles, then fetches timeline posts with cursor-based pagination.
Does it extract comments or just counts?
It extracts the total comments count for each post. It does not fetch full comment threads; use the counts to analyze engagement levels.
How many posts can I scrape per page?
You can set maxPosts from 1 up to 10,000 per target. The actor stops collecting once the per-target limit is reached.
Can I export the data to CSV?
Yes. Results are stored in an Apify dataset. You can export to JSON, CSV, or Excel, or access records via the Apify API.
Does it support date range filtering?
Yes. Use oldestPostDateUnified and newestPostDate with absolute dates (YYYY-MM-DD) or relative values like “7 days” or “2 months” to constrain results.
How does it handle blocks or rate limits?
It includes retry logic with exponential backoff and prefers Apify Residential proxy, falling back to Datacenter. You can also provide custom proxy URLs.
Can I use it from Python or integrate via API?
Yes. Trigger runs and fetch datasets using the Apify API, making it easy to plug into Facebook posts scraper Python workflows and automated pipelines.
Closing CTA / Final thoughts
Facebook Posts Scraper is built to extract structured Facebook post data at scale. It captures clean permalinks, timestamps, engagement metrics, media, and user/page metadata—ready for analysis and automation. Whether you’re a marketer, researcher, or developer, you can scrape Facebook posts, download Facebook posts data, and wire the outputs to dashboards or warehouses. Use the Apify API for end-to-end automation, or export Facebook posts to CSV in a click. Start extracting smarter social insights today.
