Facebook Posts Scraper
Pricing
$19.99/month + usage
Facebook Posts Scraper
π Facebook Posts Scraper extracts public page posts, captions, timestamps, reactions, comments count, shares & media links. π Ideal for social listening, competitor research & content analytics. β‘ Export clean data to CSV/JSON for reporting & growth.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scraply
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Facebook Posts Scraper
The Facebook Posts Scraper is a production-ready Apify actor that collects public Facebook Page and profile posts at scale β fast, reliable, and export-ready. It solves the tedious, error-prone work of manually tracking post content and engagement by automating Facebook posts data extraction with cursor-based pagination and robust anti-blocking. Built for marketers, developers, data analysts, and researchers, this Facebook post extractor helps you scrape Facebook posts, capture engagement, and export clean datasets for reporting and analysis.
What data / output can you get?
Below are examples of the structured fields youβll receive for each post. You can export the dataset to JSON, CSV, or Excel.
| Data field | Description | Example value |
|---|---|---|
| facebookUrl | Input page/profile URL being scraped | https://www.facebook.com/nytimes/ |
| postId | Unique post identifier | 123456789012345 |
| pageName | Page or profile handle derived from the URL | nytimes |
| url | Direct link to the post | https://www.facebook.com/100011122233344/posts/123456789012345 |
| time | Post time in ISO format | 2024-12-01T09:32:10.000Z |
| timestamp | Unix timestamp (seconds) | 1733045530 |
| user.id | Owning profile/page ID | 100011122233344 |
| user.name | Owning profile/page name | The New York Times |
| user.profileUrl | Canonical profile URL | https://www.facebook.com/100011122233344 |
| user.profilePic | Profile picture URL (if available) | https://.../profile_pic.jpg |
| text | Post caption text (may be blank if disabled) | Breaking: β¦ |
| likes | Total reactions count | 1542 |
| comments | Total comments count | 287 |
| shares | Total shares count | 119 |
| topReactionsCount | Total number of top reactions returned | 6 |
| reactionLikeCount | βLikeβ reaction count | 980 |
| reactionLoveCount | βLoveβ reaction count | 410 |
| reactionHahaCount | βHahaβ reaction count | 42 |
| reactionCareCount | βCareβ reaction count | 21 |
| reactionSadCount | βSadβ reaction count | 8 |
| reactionWowCount | βWowβ reaction count | 64 |
| reactionAngryCount | βAngryβ reaction count | 17 |
| media[] | Array of media attachments with thumbnails, dimensions, URLs, optional OCR captions | [{"thumbnail":"https://...%22,%22photo_image%22:%7B%22uri%22:%22https://...%22,%22height%22:1080,%22width%22:1080}, "ocrText":"..."}] |
| collaborators[] | Collaborator objects when present | [{"id":"...","name":"..."}] |
| feedbackId | Facebook feedback identifier | ZmVlZGJhY2s6MTIzNDU2Nzg5MDEyMzQ1 |
| topLevelUrl | Canonical permalink constructed from IDs | https://www.facebook.com/100011122233344/posts/123456789012345 |
| facebookId | Owning profile/page ID (duplicate of user.id) | 100011122233344 |
| pageAdLibrary.id | Page ID reference for Ad Library use | 100011122233344 |
| inputUrl | Original input URL | https://www.facebook.com/nytimes/ |
Note: Media entries may include ocrText when accessibility captions are available. All results are saved to an Apify dataset you can download as JSON, CSV, or Excel.
Key features
-
π GraphQL-powered timeline scraping
Discovers the page/profile ID and the correct GraphQL document ID from the live site, then paginates the timeline with cursors for high-throughput Facebook posts crawling. -
β€οΈ Full engagement breakdown
Extracts likes, comments, shares, and reaction breakdowns (Like, Love, Haha, Care, Sad, Wow, Angry) β ideal for social listening and competitor analytics. -
πΌοΈ Rich media capture
Collects attachment thumbnails, dimensions, URLs, and optional accessibility captions (OCR-like alt text) for downstream creatives analysis. -
π‘οΈ Smart proxy strategy
Prefers Apify Residential proxy for success and falls back to Apify Datacenter or your custom proxies when needed β with built-in retries and backoff. -
π§ Date filtering at the source
Apply absolute or relative date filters to limit the Facebook posts crawler to your desired time window and speed up runs. -
π Developer-friendly & export-ready
Works as a Facebook posts API scraper on Apify infrastructure: integrate via Apify API, and export to CSV/JSON/Excel for pipelines and dashboards. -
π§± Production-grade reliability
No browser required. Uses robust HTTP/TLS fingerprints, defensive parsing, and cursor-based pagination to scrape Facebook posts at scale.
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 targets in startUrls:
- Full URL: https://www.facebook.com/nytimes/
- Username only: nytimes
You can mix formats; targets run sequentially to reduce rate limits.
- Set maxPosts to cap how many posts to collect per target (1β10,000).
- (Optional) Apply date filters:
- Posts Newer Than (Start Date): oldestPostDateUnified (absolute like 2024-01-01 or relative like 7 days, 2 months).
- Posts Older Than (End Date): newestPostDate (absolute or relative such as 0 days for βtodayβ).
- (Optional) Configure proxyConfiguration or leave it β the scraper prefers Residential and falls back to Datacenter automatically when possible.
- Click Start. The actor will resolve IDs, discover GraphQL doc IDs, and paginate the feed. Youβll see βDataset row β¦β logs as items are saved.
- Download results from the runβs Dataset tab (JSON, CSV, or Excel) or fetch via the Apify API.
Pro tip: Chain this Facebook posts export tool into n8n/Make.com or your data warehouse. Use the Apify Dataset API to automate βExtract Facebook posts to CSVβ in scheduled workflows.
Use cases
| Use case | Description |
|---|---|
| Marketing & social listening | Monitor public Facebook posts at scale to benchmark competitors and track content performance trends. |
| Competitor content analysis | Analyze posting cadence, formats, and reactions to prioritize your own Facebook content strategy. |
| Brand monitoring & PR | Track engagement (likes, comments, shares, reaction mix) on public Facebook posts for brand and campaign insights. |
| Content analytics for teams | Export structured post data to CSV/JSON and build dashboards for reach and resonance KPIs. |
| Academic & policy research | Collect public Facebook posts data for longitudinal studies and discourse analysis. |
| Developer pipelines (API) | Automate Facebook posts data extraction and push cleaned JSON to storage, BI, or LLM pipelines. |
Why choose Facebook Posts Scraper?
The Facebook Posts Scraper is built for precision, scale, and operational reliability.
- β Accurate post capture with reaction breakdowns and media metadata
- π Works on public Pages and profiles without login or cookies
- π Scales to thousands of posts per run with cursor-based pagination
- π Developer-first: export via Apify API to JSON/CSV/Excel for integrations
- π‘οΈ Anti-block ready: Residential/Datacenter proxy support and retry/backoff
- πΈ Cost-effective automation compared to fragile browser extensions
- π Easy to operationalize for teams (dashboards, alerts, enrichment)
Unlike unstable scraping extensions, this Facebook posts scraping software runs on production infrastructure, using stable HTTP requests and resilient parsing to keep your pipelines flowing.
Is it legal / ethical to use Facebook Posts Scraper?
Yes β when used responsibly. This public Facebook posts scraper is designed to extract only publicly available content. You should:
- Only target public Pages/profiles and respect platform terms.
- Avoid collecting private or non-public content.
- Use data in compliance with applicable laws (e.g., GDPR, CCPA).
- Consult your legal team for edge cases and jurisdiction-specific requirements.
The tool does not access logged-in content or private endpoints.
Input parameters & output format
JSON input example
{"startUrls": ["nytimes","https://www.facebook.com/Cristiano/"],"maxPosts": 25,"includeVideoTranscript": false,"oldestPostDateUnified": "2024-01-01","newestPostDate": "0 days","proxyConfiguration": {"useApifyProxy": false}}
Parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array | Yes | β | Facebook Page targets as full URLs (e.g., https://www.facebook.com/nytimes/) or usernames (e.g., nytimes). Mixed formats allowed; targets run sequentially. |
| maxPosts | integer | No | 10 | Maximum posts to collect per target. Min 1, Max 10,000. The actor stops per page after reaching this count. |
| includeVideoTranscript | boolean | No | false | βInclude Video Transcriptsβ option. When disabled in the current implementation, the actor omits post text for faster runs. |
| oldestPostDateUnified | string | No | β | Posts Newer Than (Start Date). Absolute (YYYY-MM-DD) or relative (e.g., 7 days, 2 months, 1 year). |
| newestPostDate | string | No | β | Posts Older Than (End Date). Absolute (e.g., 2024-12-31) or relative (e.g., 0 for βtodayβ or N days/months/years ago). |
| proxyConfiguration | object | No | {"useApifyProxy": false} | Proxy settings. The actor prefers Apify Residential proxy; falls back to Apify Datacenter; supports custom proxy URLs. |
JSON output example
{"facebookUrl": "https://www.facebook.com/nytimes/","postId": "123456789012345","pageName": "nytimes","url": "https://www.facebook.com/100011122233344/posts/123456789012345","time": "2024-12-01T09:32:10.000Z","timestamp": 1733045530,"user": {"id": "100011122233344","name": "The New York Times","profileUrl": "https://www.facebook.com/100011122233344","profilePic": "https://.../profile_pic.jpg"},"collaborators": [],"text": "Breaking: β¦","likes": 1542,"comments": 287,"shares": 119,"topReactionsCount": 6,"reactionLikeCount": 980,"reactionLoveCount": 410,"reactionHahaCount": 42,"reactionCareCount": 21,"reactionSadCount": 8,"reactionWowCount": 64,"reactionAngryCount": 17,"media": [{"thumbnail": "https://.../thumb.jpg","__typename": "Photo","__isMedia": "Photo","accent_color": "FFFFFFFF","photo_product_tags": [],"photo_image": {"uri": "https://.../image.jpg","height": 1080,"width": 1080},"url": "https://.../photo","id": "9876543210","feedback": {"can_viewer_comment": false,"id": "ZmVlZGJhY2s6OTg3NjU0MzIxMA=="},"ocrText": "A crowd gathers at..."}],"feedbackId": "ZmVlZGJhY2s6MTIzNDU2Nzg5MDEyMzQ1","topLevelUrl": "https://www.facebook.com/100011122233344/posts/123456789012345","facebookId": "100011122233344","pageAdLibrary": {"id": "100011122233344"},"inputUrl": "https://www.facebook.com/nytimes/"}
Note: The text field may be intentionally empty if includeVideoTranscript is set to false (for faster scraping).
FAQ
Do I need to log in to scrape Facebook posts?
No. This tool works on publicly available Facebook Pages and profiles without requiring login or cookies. It discovers the necessary IDs from the public site and uses HTTP requests to collect data.
How many posts can I scrape per target?
You can control this with maxPosts, from 1 up to 10,000 per target. The actor stops for each target once it reaches your specified limit.
Can I export to CSV?
Yes. All results are stored in an Apify dataset. From there you can download as JSON, CSV, or Excel, or fetch programmatically via the Apify API.
Does it capture comments or reactions?
It captures total comments count, total shares, total reactions, and a full reactions breakdown (Like, Love, Haha, Care, Sad, Wow, Angry). It does not extract individual comments in this actor.
Why is the text field empty in my results?
If includeVideoTranscript is false, the actor clears the text field for faster runs. Set includeVideoTranscript to true if you want the post caption text included in the output.
Can I use proxies with this scraper?
Yes. By default it prefers Apify Residential proxy for the best success rates; if unavailable, it falls back to Apify Datacenter. You can also provide custom proxy URLs via proxyConfiguration.
Does this work for private content?
No. The scraper targets public content only. Itβs not designed to access private or authenticated data.
Is there an API I can integrate with?
Yes. You can access the runβs dataset via the Apify API, making it easy to automate Facebook posts data extraction and feed your pipelines or dashboards.
Closing thoughts
The Facebook Posts Scraper is built to help teams extract public Facebook post data reliably and at scale. With engagement breakdowns, media metadata, date filtering, and export-ready datasets, itβs a powerful Facebook posts scraper tool for marketers, analysts, and developers. Connect it to your stack via the Apify API, automate βDownload Facebook postsβ to CSV or JSON, and start turning public Facebook timelines into actionable insights today.
