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
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Facebook Posts Scraper
Facebook Posts Scraper is a fast, reliable Facebook post extractor that lets you scrape Facebook posts from public pages and profiles at scale. It discovers the page/profile ID and GraphQL document ID from the live site, then paginates the timeline feed without a browser. Built for marketers, developers, data analysts, and researchers, it helps you turn Facebook feeds into structured data for analysis, reporting, and automation — from quick insights to bulk scrape Facebook posts workflows. 🚀
What data / output can you get?
| Data field | Description | Example value |
|---|---|---|
| facebookUrl | The input page/profile URL normalized by the actor | https://www.facebook.com/nytimes/ |
| postId | Unique post identifier extracted from feedback context | 123456789012345 |
| pageName | Last path segment of the target URL (page/profile handle) | nytimes |
| url | Direct link to the post (falls back to top-level URL) | https://www.facebook.com/100001234567890/posts/123456789012345 |
| time | Post time in ISO-like string (UTC, millisecond suffix) | 2025-12-31T23:59:59.000Z |
| timestamp | Unix timestamp (seconds) | 1767225599 |
| user | JSON with user/page info: id, name, profileUrl, profilePic | {"id":"100001234567890","name":"The New York Times","profileUrl":"https://www.facebook.com/100001234567890","profilePic":"https://...jpg"} |
| collaborators | JSON array of collaborator objects when present | [] |
| text | Post caption text (may be blank if disabled via input) | “Breaking: …” |
| likes | Reaction count | 10432 |
| comments | Comment count | 512 |
| shares | Share count | 289 |
| topReactionsCount | Total top reactions | 14213 |
| reactionLikeCount | “Like” reactions count | 9800 |
| reactionLoveCount | “Love” reactions count | 341 |
| reactionHahaCount | “Haha” reactions count | 22 |
| reactionCareCount | “Care” reactions count | 15 |
| reactionSadCount | “Sad” reactions count | 6 |
| reactionWowCount | “Wow” reactions count | 21 |
| reactionAngryCount | “Angry” reactions count | 8 |
| media | Array of media attachments with thumbnails, sizes, URLs, OCR captions | [{"thumbnail":"https://...jpg%22,%22photo_image%22:%7B%22uri%22:%22https://...jpg%22,%22height%22:1080,%22width%22:1080%7D,%22url%22:%22https://...%22,%22id%22:%22987654321"}] |
| feedbackId | Facebook feedback identifier | ZmVlZGJhY2s6MTIzNDU2Nzg5MDEyMzQ1 |
| topLevelUrl | Canonical permalink composed from user ID and postId | https://www.facebook.com/100001234567890/posts/123456789012345 |
| facebookId | Owning profile/page ID | 100001234567890 |
| pageAdLibrary | Page-level object with ID (for Ad Library workflows) | {"id":"100001234567890"} |
| inputUrl | Original input target for easy traceability | https://www.facebook.com/nytimes/ |
Notes:
- Results are saved to the Apify dataset and can be exported as JSON, CSV, or Excel for reporting and BI.
- Bonus metadata includes media thumbnails and optional OCR/accessibility captions when present in the page data.
- This Facebook posts scraping tool provides clean “Facebook posts JSON export” and easy “export Facebook posts to CSV”.
Key features
-
🌐 No-browser, API-free scraping
Fetches Facebook timeline data without a headless browser and without the official API. Ideal for a Facebook posts scraper without API or Chrome extensions. -
🧭 Smart target discovery
Automatically resolves numeric IDs and required GraphQL doc IDs from the live site, then paginates via cursors like the Facebook feed scraper on web. -
🗓️ Flexible date filters (absolute or relative)
Limit results using start/end date fields that accept calendar dates or relative values (e.g., “7 days”, “2 months”), so you only scrape Facebook posts you need. -
📊 Full engagement breakdown
Extracts likes, comments count, shares, total reactions, plus per-type reaction counts (Like, Love, Haha, Care, Sad, Wow, Angry) — perfect for content analysis and trend tracking. -
🖼️ Rich media metadata
Collect media attachments with thumbnails, dimensions, URLs, and OCR/accessibility captions where available — great for download Facebook posts data pipelines. -
🧱 Sequential, bulk-friendly runs
Handles multiple targets in sequence (one page after another) to reduce rate limits, supporting bulk scrape Facebook posts use cases. -
🛡️ Proxy-first reliability
Prefers Apify Residential proxy for higher success rates and falls back to Apify Datacenter proxy or your custom proxy URLs. Built-in retries and backoff for robust crawling. -
👩💻 Developer-friendly on Apify
Access results via the Apify Dataset API, integrate with “Facebook posts scraper Python” scripts, and automate downstream workflows. -
💾 Clean exports for analytics
One-click “Facebook posts JSON export” or “export Facebook posts to CSV/Excel” for immediate analysis in your BI stack.
How to use Facebook Posts Scraper - step by step
- Sign in to Apify and open the Facebook Posts Scraper actor.
- Add targets in “Facebook Page URLs or Usernames” (startUrls).
- Full URL: https://www.facebook.com/nytimes/
- Username: nytimes
You can mix URLs and usernames.
- Set your limit with “Maximum Posts per Page” (maxPosts). Start with 10 for tests and raise for deeper timelines.
- Apply date filters (optional):
- Posts Newer Than (oldestPostDateUnified): absolute date (YYYY-MM-DD) or relative (“7 days”, “2 months”).
- Posts Older Than (newestPostDate): absolute date or relative.
- Content option (optional): toggle “Include Video Transcripts” (includeVideoTranscript).
Note: In the current implementation, this flag controls whether the “text” field is retained. If off, the post text is blanked for faster runs. - Configure proxies (optional): leave empty to auto-use Apify Residential/Datacenter proxies, or add custom proxy URLs.
- Start the run. The actor normalizes your targets, resolves IDs, fetches the timeline feed, paginates via cursors, and streams posts to the dataset in real time.
- Download results from the dataset as JSON, CSV, or Excel — or pull them via the Apify API for your dashboard, ETL, or “Facebook posts crawler” workflows.
Pro Tip: Orchestrate scheduled runs and wire results into your analytics using the Apify API or a “Facebook posts scraper Python” pipeline.
Use cases
| Use case name | Description |
|---|---|
| Competitor research & benchmarking | Track how top pages post and perform. Compare likes, comments count, and reactions to sharpen your content strategy. |
| Editorial & content analysis | Analyze post text, timing, and engagement patterns to guide posting cadence and creative decisions. |
| Audience & trend insights | Monitor reaction mixes and shares to identify emerging topics across public pages and profiles. |
| Reporting & BI pipelines | Export Facebook posts to CSV/JSON/Excel and load into dashboards for campaign performance summaries. |
| Data science & NLP | Build labeled datasets (text, reactions, media) for sentiment and topic modeling with a reliable Facebook posts JSON export. |
| Automation & alerts | Feed this Facebook posts crawler into downstream systems to trigger alerts on spikes in reactions or shares. |
Why choose Facebook Posts Scraper?
Built for precision, automation, and reliability, this Facebook page posts scraper and Facebook feed scraper delivers production-grade results without a browser.
- ✅ Accurate, structured data with per-reaction counts and clean permalinks
- 🌍 Works on public Facebook pages and profiles, no login or Chrome extension required
- 📈 Scales from quick tests to large timelines with cursor-based pagination
- 👩💻 Developer access via Apify Dataset API — ideal for Python and workflow integrations
- 🛡️ Anti-blocking resilience with preferred Residential proxy and fallback logic
- 💰 Cost-effective and time-saving vs. DIY scripts or unstable browser extensions
- 🔌 Plug-and-play exports (CSV, JSON, Excel) for analytics and reporting
In short: a stable, server-side Facebook posts scraper vs. extension-based alternatives that break easily.
Is it legal / ethical to use Facebook Posts Scraper?
Yes — when done responsibly. This actor targets publicly accessible Facebook content from pages and profiles.
Guidelines to follow:
- Collect only public data and avoid private/restricted content.
- Respect Facebook’s terms and any applicable usage limitations.
- Comply with data protection laws such as GDPR/CCPA in your jurisdiction.
- Use scraped data responsibly (e.g., analysis, research) and consult your legal team for edge cases.
Input parameters & output format
Example input JSON
{"startUrls": ["https://www.facebook.com/nytimes/","Cristiano"],"maxPosts": 25,"includeVideoTranscript": false,"oldestPostDateUnified": "2024-01-01","newestPostDate": "0 days","proxyConfiguration": {"useApifyProxy": false}}
Parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array | Yes | — | Enter one or more Facebook page targets. Accepts full URLs or usernames; the actor turns usernames into full URLs and scrapes targets sequentially. |
| maxPosts | integer | No | 10 | Limit how many posts to collect per target page. Min 1, Max 10,000. |
| includeVideoTranscript | boolean | No | false | Capture video captions & transcripts (as described in the UI). Note: in the current implementation, this flag controls whether the “text” field is retained (ON) or blanked (OFF). |
| oldestPostDateUnified | string | No | — | Posts Newer Than (Start Date). Accepts absolute (YYYY-MM-DD) or relative values (e.g., “7 days”, “2 months”, “1 year”). |
| newestPostDate | string | No | — | Posts Older Than (End Date). Accepts absolute dates or relative values (e.g., “0” for today). |
| proxyConfiguration | object | No | {"useApifyProxy": false} | Proxy settings. Prefers Apify Residential proxy; falls back to Apify Datacenter; supports custom proxy URLs. |
Example output JSON (one item)
{"facebookUrl": "https://www.facebook.com/nytimes/","postId": "123456789012345","pageName": "nytimes","url": "https://www.facebook.com/100001234567890/posts/123456789012345","time": "2025-12-31T23:59:59.000Z","timestamp": 1767225599,"user": {"id": "100001234567890","name": "The New York Times","profileUrl": "https://www.facebook.com/100001234567890","profilePic": "https://example-cdn.fbcdn.net/abc/profile.jpg"},"collaborators": [],"text": "Example caption text for analysis…","likes": 10432,"comments": 512,"shares": 289,"topReactionsCount": 14213,"media": [{"thumbnail": "https://example-cdn.fbcdn.net/abc/photo_thumb.jpg","__typename": "Photo","__isMedia": "Photo","accent_color": "FFFFFFFF","photo_product_tags": [],"photo_image": {"uri": "https://example-cdn.fbcdn.net/abc/photo.jpg","height": 1080,"width": 1080},"url": "https://www.facebook.com/nytimes/posts/123456789012345","id": "987654321","feedback": {"can_viewer_comment": false,"id": "ZmVlZGJhY2s6OTg3NjU0MzIx"},"ocrText": "Example accessibility caption"}],"feedbackId": "ZmVlZGJhY2s6MTIzNDU2Nzg5MDEyMzQ1","reactionLikeCount": 9800,"reactionLoveCount": 341,"reactionHahaCount": 22,"reactionCareCount": 15,"reactionSadCount": 6,"reactionWowCount": 21,"reactionAngryCount": 8,"topLevelUrl": "https://www.facebook.com/100001234567890/posts/123456789012345","facebookId": "100001234567890","pageAdLibrary": {"id": "100001234567890"},"inputUrl": "https://www.facebook.com/nytimes/"}
Notes:
- Fields may be null when unavailable in the original content (e.g., some posts might not expose specific media or timestamps).
- The actor streams items to the dataset as they’re discovered, enabling near-real-time processing.
FAQ
Do I need a Facebook login or official API access?
No. This Facebook posts scraper works without login and without the official API. It uses server-side HTTP requests that mimic the web app to fetch public page/profile timelines.
Can it scrape comments text?
No. It captures comments counts (engagement metrics), not full comment text. You’ll receive comments totals per post for analysis.
How many posts can I collect per target?
Up to 10,000 per target using the maxPosts parameter. The scraper stops once it reaches your limit for each page or profile.
Does it support Facebook profiles as well as pages?
Yes. The actor detects whether a target is a page or a public profile and applies the correct timeline query.
Does “Include Video Transcripts” add a separate transcript field?
Not in the current implementation. This flag controls whether the “text” field is retained (ON) or blanked (OFF). There is no separate transcript output field.
What export options are available?
All results land in an Apify dataset. You can export Facebook posts to CSV, JSON, or Excel, or pull them via API for downstream pipelines and dashboards.
How does the proxy work?
By default, the actor prefers Apify Residential proxy for higher success rates and falls back to Apify Datacenter. You can also supply custom proxy URLs in proxyConfiguration.
Can I use this from Python or via an API?
Yes. Use the Apify API to run the actor and fetch datasets, or integrate with “Facebook posts scraper Python” scripts for end-to-end automation.
Final thoughts
Facebook Posts Scraper is built to reliably turn public Facebook pages and profiles into structured, analysis-ready post data. With engagement breakdowns, smart date filters, resilient proxying, and clean exports, it’s ideal for marketers, analysts, researchers, and developers alike. Use the Apify Dataset API for automation, integrate with your “Facebook posts JSON export” or “export Facebook posts to CSV” workflows, and start extracting smarter insights today. For custom needs, reach out at dev.scraperengine@gmail.com.
