Facebook Post Scraper
Pricing
from $10.00 / 1,000 results
Facebook Post Scraper
Collect posts from public Facebook Pages — captions, reactions, comments, shares, image/video URLs, and Page details. Paste a Page URL and run. (Beta)
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Rush
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Collect posts from public Facebook Pages with engagement metrics, media URLs, and author details. Just paste a Page URL and run.
Built for marketers, researchers, and lead-gen teams who need clean Facebook content data ready to drop into spreadsheets, dashboards, or downstream pipelines.
What you get
For every post collected, you receive a flat record with:
| Group | Fields |
|---|---|
| Identifiers | post_id, post_url, post_type |
| Page | page_id, page_username, page_name, page_url, page_avatar_url, page_is_verified, page_category |
| Content | text, hashtags, mentioned_users |
| Timing | creation_timestamp_utc, creation_iso, creation_human |
| Engagement | reaction_count, like_count, love_count, haha_count, wow_count, sad_count, angry_count, care_count, comment_count, share_count, view_count |
| Media | image_urls, video_url, video_thumbnail_url, video_duration_seconds |
| Live indicator | is_live_video |
| Provenance | extracted_at_utc, source_url |
| Status (filled when an input couldn't be collected) | error |
Successful records have error: null. When a Page can't be loaded — or when an input URL is rejected up front — the dataset also includes one row for that input with the error field filled in. On these rows, post-content fields stay empty, extracted_at_utc is always populated, and source_url carries the input you submitted. page_username and page_url are populated when the input was a recognisable Page URL. To get successful posts only, filter where error is null.
A note on the three timing fields: creation_timestamp_utc is a number for sorting and date math, creation_iso is a standard date string most data tools expect, and creation_human is a friendly format like April 24, 2026 at 21:25 UTC for reports. Pick whichever your tool prefers — they all describe the same moment.
Inputs
| Field | Type | Description |
|---|---|---|
startUrls | array of URLs | Public Facebook Page URLs (e.g. https://www.facebook.com/nasa). Up to 20 per run. |
resultsLimit | integer | Maximum posts per Page (10–100, default 20). |
onlyPostsNewerThan | date | Skip posts older than this date (2026-01-01 or 7 days). |
onlyPostsOlderThan | date | Skip posts newer than this date (2026-04-01 or 30 days). |
Personal profiles, groups, and events are not supported — those need different actors.
Use cases
- Brand monitoring: track engagement on competitor Pages over time.
- Content research: discover what's working for top creators in a niche.
- Lead generation & influencer vetting: vet candidate Pages individually — check category, verification badge, post style, and recent engagement signals.
- Trend analysis: collect post data across multiple Pages for sentiment or topic modelling.
How it works
- Paste one or more public Page URLs.
- Choose how many posts to collect per Page (10–100).
- Optionally narrow by date range.
- Run — output arrives as a flat dataset, ready to drop into a spreadsheet, BI tool, or downstream pipeline.
No login required, no account at risk, no credentials kept.
Good to know
- Public Pages only. Personal profiles, private groups, and events need different actors.
- Recent posts only. Public Pages expose a recent window of posts. Very old archives are out of scope for this actor.
- Larger jobs work best in smaller runs. If you have many Pages to collect, splitting them across several smaller runs (5–10 Pages each) usually works better than one large run.
- Some fields may be null. When a post or Page doesn't publish a field publicly, you'll see
nullfor that field rather than a guess. - Field names and types stay consistent across runs. Facebook itself can change what's available publicly, in which case some fields may become null until the actor is updated.
FAQ
Q. Why do I sometimes get fewer posts than I asked for? A. The Page may have fewer posts available publicly than your limit, or your date filter excluded some. Both are normal and not errors.
Q. Can you scrape private Pages or groups? A. No. This actor only handles public Pages.
Q. The top post on a Page seems to be the same one for several days. Is the actor cached? A. No — that's most likely the Page's pinned post. Pinned posts stay at the top of a Page until the owner unpins them.
Q. My run finished with one or more failed Pages. What does that mean?
A. One or more of your inputs couldn't be processed. Each failed input appears in the dataset as a row with the error field filled in. The source_url field carries what you submitted, so you can always trace the row back to the input. Common causes: the Page wasn't loadable (temporary issue or restricted Page), or the URL pointed to a group, event, or personal profile by mistake.
Q. What if I hit issues on a big run? A. If a run hits a temporary limit, the remaining Pages are recorded with a status row so you can re-submit them later in a smaller batch.
Q. Can I get reaction breakdowns (Like vs Love vs Haha)? A. Yes — when the breakdown is available for a post, the per-reaction fields are populated alongside the total reaction count.
Disclaimer
This actor extracts publicly accessible information that Facebook makes available to non-logged-in visitors. It does not log in, does not bypass any access control, and does not collect non-public data.
You are responsible for using the output in compliance with Facebook's Terms of Service, GDPR / CCPA / your local privacy law, and any platform-specific data-use restrictions. Results depend on what Facebook makes publicly available and may vary over time.
For learning and research. This actor is provided for educational and research purposes — please use it ethically and consider the privacy of the people whose Pages and posts appear in the results.
Beta. The actor is currently in beta. There may be missing fields, edge-case bugs, or behaviour you don't expect.
Test before going large. We recommend running a small batch first (one or two Pages) to confirm the output matches what you need before launching a big run.
Feedback welcome. If something doesn't behave as you'd expect, please open an issue on the actor's page so we can take a look.
More tools you might like
If this actor fits your workflow, take a look at our other Apify scrapers for Threads, TikTok, Instagram, and other platforms.