Facebook Posts Scraper - Pages, Profiles & Timelines
Pricing
from $0.60 / 1,000 posts
Facebook Posts Scraper - Pages, Profiles & Timelines
Facebook posts scraper for Pages and profiles: scrape public posts with text, date, reactions, comments and shares counts, photos, videos and links. Whole timelines or a date range; export to JSON, CSV, Excel or via API. No login, no cookies. $0.75 per 1,000 posts.
Pricing
from $0.60 / 1,000 posts
Rating
0.0
(0)
Developer
Social Scrapers
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
2
Monthly active users
12 hours ago
Last modified
Categories
Features
Share
This Facebook Posts Scraper extracts public posts from any Facebook profile or Page: text, date, link, reactions, comments and shares counts, photos and videos with their alt text, shared posts and links. Choose the newest 20 posts or a whole timeline going back years, keep only posts newer than a date, and download the results as JSON, CSV or Excel. No Facebook account, no login, no cookies. It costs $0.75 per 1,000 posts.
What does Facebook Posts Scraper do?
Facebook Posts Scraper reads a profile's or Page's public timeline the way a logged-out visitor sees it and turns every post into a clean row of data:
- 📰 Any public profile or Page: brands, media, public figures, creators, organisations, local businesses.
- ⏪ Full timelines: the newest posts, a set number, or every post the timeline lists (
maxPostsPerProfile: 0). - 📅 Date filter: keep only posts newer than a date (
2026-01-31,31/01/2026,Jan 31 2026) or an age (7 days,2w,3 months,yesterday); reading stops once the timeline goes past it. - 📊 Engagement: reactions, comments and shares counts on every post.
- 🖼️ Media: photos and videos with their links, image URLs and Facebook's own alt text.
- 💸 Pay only for posts saved: private, empty or missing profiles cost nothing, and the run stops cleanly at the spending limit you set.
Because it runs on the Apify platform, you also get the API, scheduling, integrations, monitoring and proxy rotation without writing any code.
What data can you extract from Facebook posts?
| Field | Example | What it is |
|---|---|---|
text | Nice shades. 😎 This structure, called a sunshade… | The post's text (null for a photo or video without a caption) |
createdAt, timestamp | 2026-11-06T18:55:18.000Z, 1793991318 | When the post was published (ISO 8601 and Unix seconds) |
url, postId | https://www.facebook.com/NASA/posts/… | The post's link and numeric ID |
reactionsCount | 710 | All reactions: Like, Love, Haha, Wow, Sad, Angry, Care |
commentsCount, sharesCount | 39, 53 | Comments and shares |
media | [{ "type": "photo", … }] | Photos and videos: type, link, image or thumbnail URL, alt text |
sharedPost | { "text": …, "url": …, "authorName": … } | The original post, when this post is a share |
linkTitle | <title of the shared article> | The title of a shared link |
authorId, authorName, authorUrl, authorPictureUrl | NASA - National Aeronautics and Space Administration | Who wrote the post |
profileId, inputUrl, scrapedAt | 100044561550831 | The timeline the post is on, the entry you gave, and when it was read |
Every item has every field. Anything a post doesn't have comes back as null (or [] for media), so your spreadsheet columns stay the same from run to run.
How to scrape Facebook posts
- Click Try for free (or Start) on this page.
- In Facebook profiles and Pages, paste links such as
https://www.facebook.com/NASA, numeric IDs or usernames, one per line. - Set Max posts per profile (for example
100, or0for every post) and, if you like, Only posts newer than (for example3 months). - Click Start and wait for the run to finish. A profile's newest 20 posts take a few seconds.
- Download the posts from the Output tab as JSON, CSV, Excel or HTML, or read them through the API.
How much does it cost to scrape Facebook posts?
$0.75 per 1,000 posts, platform usage and proxies included. You pay one post event for each post saved, nothing else:
| Your Apify plan | Price per 1,000 posts |
|---|---|
| Free and Starter (Bronze) | $0.75 |
| Scale (Silver) | $0.675 (−10%) |
| Business (Gold) | $0.60 (−20%) |
Two examples:
- The latest 20 posts of 100 brand Pages = 2,000 posts = $1.50.
- A Page's whole timeline of 5,000 posts = $3.75.
Profiles and Pages that don't exist, are private or have no public posts are not charged; the run log lists them. To cap a run's cost, set Maximum cost per run in the run options: the scraper saves posts until the next one would go over it, then stops cleanly and keeps everything saved. Apify's free plan comes with monthly usage credit, enough to try this scraper on thousands of posts.
Input example
{"startUrls": ["https://www.facebook.com/NASA", "https://www.facebook.com/profile.php?id=100044561550831"],"maxPostsPerProfile": 100,"onlyPostsNewerThan": "3 months","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
| Field | Type | Description |
|---|---|---|
startUrls | array of strings | Profiles and Pages: https://www.facebook.com/<username>, https://www.facebook.com/profile.php?id=<ID>, https://www.facebook.com/people/<name>/<ID>/, mobile links, numeric IDs or usernames. Share links from the Facebook app (https://www.facebook.com/share/…, fb.me/…) work too; a link to a post reads its author's posts. Duplicates are read once. |
maxPostsPerProfile | integer, 0 or more | Most recent posts to save per profile, newest first. Default 20. 0 = every post the timeline lists. |
onlyPostsNewerThan | string | Only posts published on or after this date (2026-01-31, 2026-1-31, 31/01/2026, Jan 31 2026), date-time (2026-01-31T18:00:00Z) or age (7 days, 2w, 3 months, 1 year, yesterday). Dates are UTC days; with both day and month 12 or less (01/02/2026) the date is read month/day/year. Empty = no date limit. |
proxyConfiguration | object | Keep the default: Apify Proxy with the RESIDENTIAL group. |
Output example
A real post from NASA's Page (text and image link shortened):
{"postId": "1679274853567884","url": "https://www.facebook.com/NASA/posts/pfbid0i5jtfWbHAByDj1XDZ3R9XWEwLM97sDCDJAvCakqEf3pvwkqwnLw3jQMKRaNMXRw1l","text": "Nice shades. 😎\n\nThis structure, called a sunshade, will fly on our NEO (Near-Earth Object) Surveyor, a spacecraft that will scout out nearby asteroids and comets…","createdAt": "2026-11-06T18:55:18.000Z","timestamp": 1793991318,"reactionsCount": 710,"commentsCount": 39,"sharesCount": 53,"media": [{"type": "photo","url": "https://www.facebook.com/photo/?fbid=1679274836901219&set=a.416661013162614","thumbnailUrl": "https://scontent.xx.fbcdn.net/v/…/892374373_1104277122356398_3961455661216587791_n.png","altText": "Two strips of inky black solar arrays cross diagonally over the scene. In the background is a stark white clean room…"}],"sharedPost": null,"linkTitle": null,"authorId": "100044561550831","authorName": "NASA - National Aeronautics and Space Administration","authorUrl": "https://www.facebook.com/NASA","authorPictureUrl": "https://scontent.xx.fbcdn.net/v/…/243095782_416661036495945_3843362260429099279_n.png","profileId": "100044561550831","inputUrl": "https://www.facebook.com/NASA","scrapedAt": "2026-11-08T10:53:46.172Z"}
Use cases
- Social media monitoring: follow what brands, public figures and creators post, and how people react.
- Competitor analysis: compare posting frequency, formats (photo, video, link, text) and engagement across Pages.
- Content research: find the posts that got the most reactions and shares on any topic's leading Pages.
- Brand and media monitoring: collect public posts about launches, campaigns or events from the accounts that matter to you.
- Research datasets: build multi-year timelines of public posts for academic or market research, with stable fields and timestamps.
- Influencer vetting: check how active a creator is and what their posts get before you work with them.
Use Facebook Posts Scraper via API, Python, JavaScript and integrations
Run the scraper from your own code with the Apify API or an Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY-APIFY-TOKEN' });const run = await client.actor('socialscrapers/facebook-profile-posts-scraper').call({startUrls: ['https://www.facebook.com/NASA'],maxPostsPerProfile: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
from apify_client import ApifyClientclient = ApifyClient("MY-APIFY-TOKEN")run = client.actor("socialscrapers/facebook-profile-posts-scraper").call(run_input={"startUrls": ["https://www.facebook.com/NASA"], "maxPostsPerProfile": 100})for post in client.dataset(run["defaultDatasetId"]).iterate_items():print(post["createdAt"], post["reactionsCount"], post["text"])
- Schedules: collect new posts every day or week with an Apify schedule and
onlyPostsNewerThan: "1 day"or"7 days". - Integrations: send the posts to Google Sheets, Slack, Airtable, Make, Zapier or n8n, or trigger your own webhook when a run finishes.
- AI agents: call the scraper as a tool through the Apify MCP server.
Limits
- Public data only, no login. The scraper sees what Facebook shows a logged-out visitor: posts shared only with friends, and private profiles, are not available.
- The pinned post is left out; posts come newest first. Facebook can list fewer posts than a profile has.
- Comment and reaction counts are included, not the comments themselves.
- Share links (
https://www.facebook.com/share/…,fb.me/…, links to a post, reel or photo) are followed to the profile they name, at no charge. Links in the barepfbid…format can't be read: use the profile's username, numeric ID orprofile.php?id=link. - Facebook image and video links expire after some days: download the media if you need to keep it.
FAQ
Is it legal to scrape Facebook posts?
This scraper only reads data that Facebook shows publicly to anyone who isn't logged in. Public data can still contain personal data, which laws such as the GDPR protect, so collect only what you need for a legitimate purpose and check the rules that apply to you. Apify explains the basics in Is web scraping legal?.
Do I need a Facebook account or cookies?
No. Facebook Posts Scraper never logs in and never asks for cookies, so no account of yours is ever at risk.
How many posts can I scrape from one Page?
As many as its timeline lists: set maxPostsPerProfile to 0. Big Pages go back years. The first 20 posts arrive in one request and older posts in pages of 3, so whole timelines take longer than recent posts.
Why did a profile return fewer posts than I asked for?
The timeline has fewer public posts, the date in onlyPostsNewerThan was reached, or the run hit its maximum cost. The run log says which for every profile, and how far back it went.
Why did my run finish with no posts?
Facebook showed nothing public for that profile: it is private, shows its posts only to logged-in visitors, has none, or no longer exists; or Facebook refused the requests even after 5 attempts on fresh IPs. The run still ends Succeeded, its status message says which, and nothing is charged. Only a run of 3 or more profiles that Facebook refused entirely ends Failed, because that means the scraper itself is being blocked.
Can I paste a link from the Facebook app's Share button?
Yes. Share links such as https://www.facebook.com/share/1AbCdEfGh/ and fb.me/… links are followed to the profile or Page they open, without logging in and without charge. A share link to a single post reads the posts of that post's author.
How do I get only new posts?
Set Only posts newer than to an age such as 1 day and run the scraper on a daily schedule.
Does it work for Facebook Pages and personal profiles?
Yes. Pages and public personal profiles take the same input and give the same fields.
Which proxy should I use?
The default, Apify Proxy RESIDENTIAL. Facebook doesn't show public posts to visitors from datacenter IPs.
Other scrapers by Social Scrapers
| Scraper | What it gets |
|---|---|
| Facebook Groups Scraper | Posts from public Facebook groups |
| Facebook Pages Scraper | Public details of Facebook Pages and profiles: contact info, address, rating |
| Facebook Ads Library Scraper | Ads from Meta's public Ad Library |
| Instagram Profile Scraper | Instagram profiles and their latest posts |
| Instagram Post Scraper | Instagram posts, reels and comments |
| Threads Scraper | Threads profiles, posts and replies |
| X (Twitter) Profile Scraper | X profiles: bio, followers, counts |
| Reddit Scraper | Reddit posts, comments, users and search |
| Quora Scraper | Quora questions, answers and profiles |
| YouTube Scraper | YouTube videos, channels, search and comments |
| YouTube Transcript Scraper | Transcripts and captions of YouTube videos |
| LinkedIn Jobs Scraper | LinkedIn job listings |