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/profile URLs. Returns text, post URL, author, timestamps, reactions, comments, and media. Cookieless ScrapeCreators + SociaVault. Not for Groups or follower rosters. MCP-ready. $0.005/post.

Pricing

from $5.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Facebook User Posts Scraper

Scrape recent public posts from Facebook user and profile URLs. Paste one or more profile vanity links (for example https://www.facebook.com/pacemorby); each dataset row is one public post with text, post URL, author, timestamps, reactions, comments, shares, and media when Facebook exposes them.

This Actor is cookieless and login-free. It reads public timeline data through ScrapeCreators (primary) with SociaVault fallback, runs on Apify (API, schedules, webhooks, MCP), and returns flat JSON ready for agents and dashboards.

Facebook is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by Meta or Facebook.

Best fit for this Actor

  • Monitor public-figure and personal-brand Facebook timelines for competitive content
  • Pull engagement snapshots (reactions / comments / shares) for creator audits
  • Feed recent public posts into social listening, CRM enrichment, or content research
  • Agent workflows that need profile URL → structured posts without a browser session

Not this Actor? Use Facebook Posts Scraper for multi-source page/group/direct post jobs, Facebook Group Posts Scraper for Groups, and Facebook Followers Scraper for page follower/like counts (not the login-gated follower roster).

Practical scenario

A brand analyst pastes https://www.facebook.com/pacemorby with maxPostsPerProfile: 3. The Actor normalizes the URL, calls the profile-posts provider chain, keeps three public posts with text and engagement, charges three post-scraped events, and writes OUTPUT / RUN_SUMMARY with COMPLETE when every profile succeeds.

Quick start input

{
"profileUrls": ["https://www.facebook.com/pacemorby"],
"maxPostsPerProfile": 3,
"resultsLimit": 20,
"provider": "auto"
}

Input reference

FieldTypeWhat it controls
profileUrlsarrayRequired public profile / vanity URLs. Prefill: pacemorby. Also accepts public Pages such as NASA.
maxPostsPerProfileintegerCap per profile (1–100). Prefill 3 for quality tests; default 10.
resultsLimitintegerHard cap across the whole run (1–500). Primary spend control.
onlyPostsNewerThanstringOptional YYYY-MM-DD or relative windows such as 7 days / 2 months.
onlyPostsOlderThanstringOptional upper date bound. Posts with unparseable timestamps are kept.
providerenumauto (ScrapeCreators → SociaVault), or pin one provider for diagnostics.

Group URLs, Marketplace, Ads Library, and individual post/reel permalinks are rejected as invalid input — route those jobs to the sibling Actors above.

What data you receive

One dataset item is one public Facebook post.

{
"profileUrl": "https://www.facebook.com/pacemorby",
"postUrl": "https://www.facebook.com/pacemorby/posts/1234567890",
"postId": "1234567890",
"authorName": "Pace Morby",
"authorUrl": "https://www.facebook.com/pacemorby",
"authorId": "100012345",
"text": "New project update for the team…",
"timestamp": "2026-09-01T12:00:00.000Z",
"timestampText": "2026-09-01T12:00:00+0000",
"reactionsCount": 120,
"commentsCount": 14,
"sharesCount": 3,
"media": ["https://scontent.xx.fbcdn.net/v/example.jpg"],
"provider": "scrapecreators",
"scrapedAt": "2026-09-22T12:00:00.000Z"
}
FieldMeaning
profileUrlCanonical profile URL that was scraped
postUrl / postIdPublic post permalink and ID when available
authorName / authorUrl / authorIdAuthor identity fields when exposed
textCaption / body text
timestamp / timestampTextISO time when parseable + raw provider string
reactionsCount / commentsCount / sharesCountPublic engagement aggregates
mediaImage/video URLs when present
providerscrapecreators or sociavault
scrapedAtISO scrape timestamp

You can download the dataset as JSON, CSV, Excel, or HTML from the Output tab. OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, and run diagnostics.

Coverage contract

  • In scope: Public personal profiles and public vanity / Page timelines visible without login; cursor pagination; cookieless providers.
  • Out of scope: Private / friends-only / age-gated timelines; Messenger; full follower rosters; Groups as the primary product; video transcripts; login or cookie BYOK.
  • Valid profile with no matching public posts → VALID_EMPTY (no post-scraped charges).
  • Empty / non-Facebook / group / post-permalink input → INVALID_INPUT.
  • Total provider outage with zero rows → UPSTREAM_FAILED.
  • Missing owner provider keys → CONFIG_ERROR.

Pricing

Pay per event + platform usage pass-through (isPPEPlatformUsagePaidByUser: true):

EventPrice
apify-actor-start$0.00005 (once per run)
post-scraped$0.005 per saved public post

Invalid input and fully empty valid runs are not charged the post event. See the Actor Pricing tab for the live table. Providers return about 3 posts per API page, so deeper maxPostsPerProfile values cost more upstream credits.

Rough cost examples

  • Prefill 3 posts → about $0.015 PPE + small compute usage
  • 20 posts → about $0.10 PPE (+ start)

How to use

  1. Open the Actor in Apify Console and paste one or more public Facebook profile URLs.
  2. Keep maxPostsPerProfile at 3 for a cheap quality sample; raise resultsLimit only when you need more rows.
  3. Start the run, then export the dataset or read it from the API / MCP.

API example

curl "https://api.apify.com/v2/acts/khadinakbar~facebook-user-posts-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profileUrls":["https://www.facebook.com/pacemorby"],"maxPostsPerProfile":3}'

MCP note

On Apify MCP this Actor appears as apify--facebook-user-posts-scraper (or khadinakbar/facebook-user-posts-scraper). Pass profileUrls and read dataset rows for postUrl, text, and engagement fields. Check RUN_SUMMARY.outcome before treating an empty dataset as an outage.

Agent prompt card

Use khadinakbar/facebook-user-posts-scraper with profileUrls: ["https://www.facebook.com/pacemorby"], maxPostsPerProfile: 3. Read postUrl, text, reactionsCount, commentsCount, and provider. If the job is a Group URL, call facebook-group-posts-scraper instead. If you only need follower counts, call facebook-followers-scraper.

Best results tips

  • Prefer profiles that publish publicly (creators, public figures, brand Pages with open timelines).
  • Use resultsLimit as the spend guardrail on multi-profile batches.
  • Pin provider only when diagnosing a specific upstream; leave auto for production.
  • Pair timeline posts with Facebook Followers Scraper when you also need page follower/like counts.

Builder's note

Native Facebook HTML for personal timelines is login-walled. The working path is ScrapeCreators GET /v1/facebook/profile/posts (about three posts per credit) with SociaVault GET /v1/scrape/facebook/profile/posts as fallback. Input validation deliberately rejects /groups/, Marketplace, Ads Library, and post permalinks so this SKU stays a clean “user/profile posts” tool and routes Groups / general posts / follower counts to portfolio siblings.

Use only for public Facebook data and lawful marketing, research, or brand-safety workflows. Respect Meta’s terms and applicable privacy laws. Do not use this Actor to access private profiles, scrape people who have not made content public, or build unauthorized contact databases. You are responsible for how you store and process the results.

Support

Open an Issue on the Actor page for bugs or feature requests. Custom enrichment pipelines and private deployments are available on request.