Facebook User Posts Scraper — Public Profile Timeline
Pricing
from $5.00 / 1,000 post scrapeds
Facebook User Posts Scraper — Public Profile Timeline
Scrape recent public posts from Facebook user and profile URLs, with text, post URL, author, timestamps, reactions, comments and media. No cookies or login needed; for groups, use Facebook Group Posts Scraper.
Pricing
from $5.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
4
Monthly active users
a month ago
Last modified
Categories
Share
What is Facebook User Posts Scraper — Public Profile Timeline?
Facebook User Posts Scraper extracts recent public posts from Facebook profile and vanity URLs into a clean dataset. Each row is one public post with its text, post URL and ID, author name and ID, ISO timestamp, reaction and comment counts, and the image and video URLs attached to it. Social media analysts, creator-marketing teams, brand researchers and AI agents use it to watch public timelines of creators, public figures and brand Pages, with no Facebook account, cookie or login.
Why teams use it
- Profile URL in, posts out. Paste
https://www.facebook.com/pacemorbyorhttps://www.facebook.com/NASAand get structured post rows. - Engagement on every row.
reactionsCountandcommentsCountsit next to the text, ready for content audits. - Media links included.
medialists the thumbnail and video file URLs Facebook exposes for the post. - Date windows.
onlyPostsNewerThanandonlyPostsOlderThanacceptYYYY-MM-DDor relative windows such as7 days. - Spend guardrails.
maxPostsPerProfilecaps each profile andresultsLimitcaps the whole run.
Best fit for this Actor
- Designed for public personal profiles, creator timelines and public brand Pages that post openly.
- Best fit for competitive content tracking, creator audits and feeding recent public posts into social-listening or research pipelines.
- For posts inside Facebook Groups, use Facebook Group Posts Scraper, which is built around group URLs.
- When you want the conversation under a post, pass the
postUrlvalues to Facebook Post Comments Scraper next. - For page follower and like counts, continue with Facebook Followers Scraper.
Example workflow: weekly creator content audit
A creator-partnerships manager starts with five creator profiles her brand is considering. She sends them in profileUrls with maxPostsPerProfile set to 15 and onlyPostsNewerThan set to 30 days. The dataset returns each post's text, timestamp, reactionsCount, commentsCount and media. She exports it to a spreadsheet, compares average reactions per creator, then passes the strongest posts' postUrl values to the comments scraper to read audience sentiment. She schedules the same input weekly with onlyPostsNewerThan set to 7 days so each run adds only the latest posts.
Input
{"profileUrls": ["https://www.facebook.com/NASA"],"maxPostsPerProfile": 15,"resultsLimit": 150,"onlyPostsNewerThan": "7 days"}
| Field | Type | What it controls |
|---|---|---|
profileUrls | array of strings | Required. Public Facebook profile or vanity URLs. m.facebook.com and trailing-slash variants work. |
maxPostsPerProfile | integer | Posts saved per profile, 1 to 100. Default 10. |
resultsLimit | integer | Posts saved across the whole run. Default 50. Your main spend control. |
onlyPostsNewerThan | string | Lower date bound: YYYY-MM-DD or a relative window such as 7 days or 2 months. |
onlyPostsOlderThan | string | Upper date bound in the same formats. |
Profile and Page timelines are the scope. Group URLs, Marketplace, Ad Library and single post permalinks belong to the related Actors listed above.
Output
One dataset row per public post.
| Field | What it contains |
|---|---|
profileUrl | The profile URL the post was collected from |
postUrl, postId | Public post or reel permalink and post ID |
authorName, authorUrl, authorId | Public author identity |
text | Post caption or body text |
timestamp, timestampText | Post time in ISO 8601 and the source time string |
reactionsCount, commentsCount | Public engagement totals |
media | Array of image and video URLs attached to the post |
provider | Label of the collection route that returned the row |
scrapedAt | Collection time in ISO 8601 |
{"profileUrl": "https://www.facebook.com/NASA","postUrl": "https://www.facebook.com/reel/28263630716612782","postId": "1641734060655297","authorName": "NASA - National Aeronautics and Space Administration","authorUrl": "https://www.facebook.com/100044561550831","authorId": "100044561550831","text": "What happens when we detect an asteroid that could pose a threat to Earth? We have the behind-the-scenes story. Tune in and watch Planetary Defenders, now streaming on NASA+.","timestampText": "2026-09-28T15:27:19.000Z","timestamp": "2026-09-28T15:27:19.000Z","reactionsCount": 620,"commentsCount": 40,"media": ["https://scontent-bos5-1.xx.fbcdn.net/v/t15.5256-10/828077842_n.jpg","https://video-bos5-1.xx.fbcdn.net/o1/v/t2/f2/m412/AQNwXXNN.mp4"],"scrapedAt": "2026-10-01T01:38:43.375Z"}
Each run also writes OUTPUT and RUN_SUMMARY records to the default key-value store with the run outcome (such as COMPLETE, VALID_EMPTY or INVALID_INPUT) and itemsPushed. Export the dataset as JSON, CSV, Excel or HTML from the Output tab.
Pricing
This Actor uses Pay per event with Apify platform usage included in the event price. You pay for two events:
- Actor Start, once per run.
- Post scraped, once for each public post saved to the dataset.
Worked example: three creator profiles at 10 posts each come to one Actor Start event plus 30 Post scraped events. A valid profile with no posts in your date window adds no Post scraped events. Set resultsLimit as your budget cap and check the live Pricing tab on this page for current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~facebook-user-posts-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"profileUrls": ["https://www.facebook.com/NASA"], "maxPostsPerProfile": 5, "resultsLimit": 5}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/facebook-user-posts-scraper").call(run_input={"profileUrls": ["https://www.facebook.com/NASA"], "maxPostsPerProfile": 5})posts = list(client.dataset(run["defaultDatasetId"]).iterate_items())top = sorted(posts, key=lambda p: p.get("reactionsCount", 0), reverse=True)[:3]for post in top:print(post["postUrl"], post["reactionsCount"])
Use it with AI agents (MCP)
Through Apify MCP the Actor is available to Claude, ChatGPT, Cursor and other MCP clients. An example prompt:
Get the last 10 public posts from https://www.facebook.com/NASA, then summarize the three posts with the most reactions and list their post URLs.
The agent receives post rows with text, engagement and media, reads them with get-dataset-items, and can cite postUrl and scrapedAt as provenance. OUTPUT.outcome tells it whether the run was complete or the date window simply held no posts. Cost scales with saved posts, so resultsLimit keeps agent runs scoped.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A quick quality sample | Start with maxPostsPerProfile: 3 | A small, low-cost preview of the timeline |
| Many profiles in one batch | Set resultsLimit to your total budget | A predictable run size |
| Ongoing monitoring | Schedule with onlyPostsNewerThan: "7 days" | Only recent posts each week |
| Comparing creators | Sort by reactionsCount and commentsCount per profileUrl | A clear engagement ranking |
| A group or single post link | Route it to the group or comments Actor above | The right tool for that entity |
Builder's note
I built this as a focused profile-timeline tool because profile posts, group posts and comments each have different inputs and different questions behind them. I designed the input to accept only profile and Page timelines and to route other Facebook URLs to sibling Actors, which keeps every row in this dataset the same kind of record. Date windows accept relative values like 7 days because I found that is how people actually phrase monitoring jobs.
FAQ
Do I need a Facebook account or cookies?
No. The Actor reads public timeline data with no login, cookie or account.
Which profiles work?
Public personal profiles, creator profiles and public Pages whose posts are visible to everyone. Friends-only content stays outside this public-data scope.
How do I get only new posts?
Schedule the Actor with onlyPostsNewerThan set to a relative window that matches your schedule, such as 7 days for a weekly run.
Responsible use
This Actor collects public Facebook posts only. Posts can include names and other personal data protected by laws such as the GDPR and CCPA, so use the results with a lawful basis and respect Meta's terms. Facebook is a trademark of its owner, and this independent Actor is not affiliated with or endorsed by Meta or Facebook. For questions, open a ticket in the Issues tab.