Facebook User Posts Scraper — Public Profile Timeline avatar

Facebook User Posts Scraper — Public Profile Timeline

Pricing

from $5.00 / 1,000 post scrapeds

Go to Apify Store
Facebook User Posts Scraper — Public Profile Timeline

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

a month ago

Last modified

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/pacemorby or https://www.facebook.com/NASA and get structured post rows.
  • Engagement on every row. reactionsCount and commentsCount sit next to the text, ready for content audits.
  • Media links included. media lists the thumbnail and video file URLs Facebook exposes for the post.
  • Date windows. onlyPostsNewerThan and onlyPostsOlderThan accept YYYY-MM-DD or relative windows such as 7 days.
  • Spend guardrails. maxPostsPerProfile caps each profile and resultsLimit caps 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 postUrl values 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"
}
FieldTypeWhat it controls
profileUrlsarray of stringsRequired. Public Facebook profile or vanity URLs. m.facebook.com and trailing-slash variants work.
maxPostsPerProfileintegerPosts saved per profile, 1 to 100. Default 10.
resultsLimitintegerPosts saved across the whole run. Default 50. Your main spend control.
onlyPostsNewerThanstringLower date bound: YYYY-MM-DD or a relative window such as 7 days or 2 months.
onlyPostsOlderThanstringUpper 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.

FieldWhat it contains
profileUrlThe profile URL the post was collected from
postUrl, postIdPublic post or reel permalink and post ID
authorName, authorUrl, authorIdPublic author identity
textPost caption or body text
timestamp, timestampTextPost time in ISO 8601 and the source time string
reactionsCount, commentsCountPublic engagement totals
mediaArray of image and video URLs attached to the post
providerLabel of the collection route that returned the row
scrapedAtCollection 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 ApifyClient
client = 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 situationHelpful actionExpected outcome
A quick quality sampleStart with maxPostsPerProfile: 3A small, low-cost preview of the timeline
Many profiles in one batchSet resultsLimit to your total budgetA predictable run size
Ongoing monitoringSchedule with onlyPostsNewerThan: "7 days"Only recent posts each week
Comparing creatorsSort by reactionsCount and commentsCount per profileUrlA clear engagement ranking
A group or single post linkRoute it to the group or comments Actor aboveThe 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.