Facebook Posts Scraper avatar

Facebook Posts Scraper

Pricing

Pay per usage

Go to Apify Store
Facebook Posts Scraper

Facebook Posts Scraper

Scrape public Facebook posts, reels, videos, and visible engagement data from pages, profiles, and public groups. Unofficial actor, not affiliated with Facebook or Meta.

Pricing

Pay per usage

Rating

5.0

(1)

Developer

Netdesignr

Netdesignr

Maintained by Community

Actor stats

1

Bookmarked

15

Total users

9

Monthly active users

a day ago

Last modified

Categories

Share

Scrape public Facebook posts, reels, videos, and engagement data from pages, profiles, and public groups. This Apify actor is designed for lower-cost public-surface extraction, cleaner pricing, and API-first workflows without requiring a Facebook login.

Pages, profiles, groups, reels | No login | Keyword filters | API-ready | AI workflow friendly

Why use this Facebook scraper

  • Extract public Facebook posts from pages, profiles, and public groups.
  • Capture reels and video post URLs alongside captions, thumbnails, and visible engagement.
  • Filter by keyword and date without making users pay an extra add-on for date filtering.
  • Choose fast, balanced, or full extraction depending on cost and depth.
  • Export results to JSON, CSV, Excel, XML, RSS, or any dataset format supported by Apify.
  • Run on demand, schedule recurring runs, or call it through the Apify API from your own app.

What data can you extract from Facebook posts

FieldDescriptionIncluded
sourceTypepage, profile, or groupAlways
sourceNameName of the Facebook sourceAlways
canonicalSourceUrlCanonical page, profile, or group URLAlways
postIdStable post, reel, story, photo, or video identifierAlways
postUrlClean Facebook post URLAlways
timeBest-effort ISO time when parseableUsually
timeTextVisible Facebook time label such as 19h or 2dAlways
textVisible post or reel caption textUsually
textReferencesHashtags and visible external linksUsually
totalReactionsTotal visible reactionsWhen visible
commentsVisible comment countWhen visible
sharesVisible share countWhen visible
mediaMedia URLs detected on the post cardWhen visible
thumbnailsThumbnails from images or video cardsWhen visible
videoBest-effort video metadataWhen visible
topCommentsPreviewSmall visible comment preview blockOptional
pageSource metadata such as followers, category, intro, websiteUsually
warningsHonest warnings when Facebook exposes partial dataAlways

What makes this actor different

  • Public-surface first: built around logged-out Facebook pages, profiles, reels, and groups that are visible without a session.
  • Cleaner pricing model: meant to launch with one simple per-result price instead of charging extra for date filters.
  • Better control: fast, balanced, and full modes let users tune speed and cost.
  • Better observability: every run stores RUN_META so operators can audit empty runs, retries, and failures.
  • Better output hygiene: tracking parameters are removed from Facebook URLs before results are stored.

Example workflows and case-study use cases

  • Brand monitoring: track the latest posts and reels from competitor pages each morning and export them into Slack, Sheets, or your warehouse.
  • Hospitality marketing: monitor hotel, resort, and venue pages to compare post cadence, reel usage, and visible engagement across markets.
  • Lead research: pull public posts from local businesses, creators, or communities and use visible links and hashtags to enrich outreach lists.
  • AI knowledge pipelines: schedule daily runs and feed cleaned Facebook post data into retrieval, summarization, or agent workflows.

How to scrape Facebook posts

  1. Open this actor in Apify Store and click Try for free.
  2. Paste one or more Facebook page, profile, or group URLs into startUrls.
  3. Set maxPosts and choose fast, balanced, or full.
  4. Optionally add keywordFilter, dateFrom, dateTo, or top comment previews.
  5. Start the run and export the dataset in the format you need.

Input parameters

ParameterTypeDefaultDescription
startUrlsarray[]Main list of Facebook pages, profiles, or public groups
pageOrProfileUrlsarray[]Shortcut list for pages and profiles
groupUrlsarray[]Shortcut list for public Facebook groups
maxPostsinteger25Maximum posts emitted across all targets
dateFromstringnoneKeep posts on or after YYYY-MM-DD
dateTostringnoneKeep posts on or before YYYY-MM-DD
keywordFilterarraynoneOnly keep posts whose visible text matches one of the keywords
extractionModestringbalancedfast, balanced, or full
includeTopCommentsbooleanfalseInclude visible top comments when Facebook shows them
commentPreviewLimitinteger2Max visible comment previews per post
includeTranscriptsbooleanfalseBest-effort video transcript extraction in richer runs
deduplicatebooleantrueRemove duplicates across overlapping sources
proxyConfigurationobjectnoneOptional proxy configuration for harder targets
debugModebooleanfalseAdds extra diagnostics for troubleshooting
emptyRunPolicystringretry_then_warnControls exit behavior when a reachable public surface emits zero posts; runs where every target errors still fail

Example input

{
"startUrls": [
{ "url": "https://www.facebook.com/NASA" }
],
"maxPosts": 50,
"extractionMode": "balanced",
"dateFrom": "2026-03-01",
"keywordFilter": ["design", "launch", "website"],
"includeTopComments": true,
"commentPreviewLimit": 3
}

Output example

{
"sourceType": "page",
"sourceName": "NetDesignr",
"canonicalSourceUrl": "https://www.facebook.com/netdesignr",
"postId": "pfbidExample123",
"postUrl": "https://www.facebook.com/netdesignr/posts/pfbidExample123",
"time": "2026-03-17T18:40:00.000Z",
"timeText": "19h",
"text": "We just launched a new website performance and UX audit workflow for growing brands.",
"totalReactions": 14,
"comments": 3,
"shares": 1,
"warnings": ["timestamp_estimated_from_relative_time"],
"scrapedAt": "2026-03-18T17:42:00.000Z"
}

Facebook scraper API examples

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('netdesignr/facebook-posts-scraper').call({
startUrls: [{ url: 'https://www.facebook.com/NASA' }],
maxPosts: 25,
extractionMode: 'balanced',
includeTopComments: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("netdesignr/facebook-posts-scraper").call(run_input={
"startUrls": [{"url": "https://www.facebook.com/NASA"}],
"maxPosts": 25,
"extractionMode": "balanced",
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/netdesignr~facebook-posts-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url": "https://www.facebook.com/NASA"}],
"maxPosts": 25,
"extractionMode": "balanced"
}'

Pricing and monetization

This actor uses simple per-result pricing based on dataset items. The pricing model is designed to stay straightforward, with no separate add-on fee for date filtering.

FAQ

Can I scrape Facebook pages without logging in?

Yes, for public surfaces that Facebook exposes to logged-out browsers. Private or restricted pages, groups, and profiles may return partial or empty data.

Does this actor support Facebook reels?

Yes. Reels are extracted as Facebook post URLs and marked as video media when they are visible on the public page.

Can I filter by date?

Yes. dateFrom and dateTo work against the visible publish time that Facebook exposes on public surfaces. When Facebook only shows relative times such as 19h, the actor stores an estimated timestamp and a warning.

Do I need proxies?

Not always. Many public pages work without them. Proxies are helpful when Facebook serves a degraded or region-sensitive logged-out experience.

Can I use this as a Facebook API alternative?

Yes, for public post collection, competitor monitoring, research, and content analysis. This actor is useful when you need public Facebook post data without building and maintaining your own scraper stack.

What are the main limitations?

Exact timestamps, full reaction breakdowns, and transcripts depend on what Facebook exposes publicly. The actor does not invent missing values and reports partial-visibility warnings instead.

Use this actor only for data you have the right to collect and process. Respect Facebook's terms, local law, privacy obligations, and any downstream compliance requirements such as GDPR or CCPA. Review Apify's documentation and your legal requirements before using scraped public data in production.