๐Ÿ” Facebook Posts Search Scraper Plus avatar

๐Ÿ” Facebook Posts Search Scraper Plus

Pricing

from $3.99 / 1,000 results

Go to Apify Store
๐Ÿ” Facebook Posts Search Scraper Plus

๐Ÿ” Facebook Posts Search Scraper Plus

๐Ÿ”Ž Facebook Posts Search Scraper finds and extracts public Facebook posts by keyword or hashtag โ€” capturing text, links, reactions, comments, timestamps & authors. ๐Ÿ“Š Export to CSV/JSON for social listening, competitor analysis, content research & trend tracking. ๐Ÿš€

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

34

Total users

11

Monthly active users

3 days ago

Last modified

Share

Facebook Posts Search Scraper โ€” Posts, Authors and Reactions

Facebook Posts Search Scraper Plus finds and extracts public Facebook posts by keyword, hashtag, or direct URL and returns them as typed, normalized JSON โ€” post text, per-type reaction breakdown, comments and shares, author and page identity, media (images, video HD/SD, link previews), and a pack of derived analytics fields, all ready to load without HTML parsing. Unlike scrapers that hand back raw markup, every field here is a typed key: numbers stay numbers, unknown engagement counts stay null instead of a faked 0, and an optional multi-provider AI step can tag each post's text with sentiment, emotion, topics, and a spam score before it ever reaches your pipeline. This guide covers every input, every output field, and how teams actually run this Actor for monitoring, enrichment, and dataset-building workloads.

๐Ÿงญ What Does Facebook Posts Search Scraper Plus Do?

Facebook Posts Search Scraper Plus searches public Facebook content for a keyword, hashtag, or a list of direct URLs, and returns each matching post as a structured record. It works entirely against logged-out, publicly reachable Facebook pages โ€” no Facebook account or login is required, and none of the input parameters accept credentials. Discovery for keyword and hashtag searches runs through Google's public search index (site:facebook.com) rather than Facebook's own search, then each discovered URL is fetched and parsed for post data.

  • Search by free-text keyword (searchQueries) or hashtag (hashtags), each run as its own search
  • Scrape a specific post, video, reel, or photo directly from its URL (startUrls)
  • Expand a Facebook Page or profile URL into its recent posts automatically
  • Route a pasted Facebook search URL through the same keyword-discovery pipeline
  • Extract a 7-way reaction breakdown (like, love, haha, wow, care, sad, angry) in addition to the total reaction count
  • Split author/page identity into its own object, separate from the post itself
  • Apply post-processing filters (keyword include/exclude, minimum engagement, date window) before anything is written to the dataset
  • Optionally enrich each post's text with an LLM (sentiment, emotion, language, topics, spam score) from any of seven providers

โšก Features & Capabilities

Facebook Posts Search Scraper Plus groups its capabilities into discovery, extraction depth, and optional AI enrichment.

Core features

  • Three discovery modes โ€” keyword search (searchQueries), hashtag search (hashtags), and direct URL input (startUrls) can all be combined in a single run
  • URL-type awareness โ€” startUrls distinguishes a direct post/video/reel/photo URL (scraped as one row), a page/profile root (expanded into its recent posts), and a Facebook search URL (routed through keyword discovery)
  • Reaction-type breakdown โ€” reactionLike, reactionLove, reactionHaha, reactionWow, reactionCare, reactionSad, reactionAngry are extracted from Facebook's internal reaction-ID map, in addition to the aggregate likes count
  • Author/page split โ€” a nested author object (id, name, profileUrl, pic) is captured separately from the page-level pageName/pageId/facebookUrl fields
  • Rich media capture โ€” every distinct post image (images[]), HD and SD video URLs (videoHdUrl, videoSdUrl), video duration in seconds (videoDurationSeconds), and an external link-preview attachment (linkPreview.url, .domain, .title)
  • Derived analytics pack โ€” engagementTotal, engagementVelocity (engagement per hour since posting), hashtags[] and mentions[] parsed from the post text, textLength, wordCount, externalLinkDomain, and a resultKind/postType classification (post, video, reel, photo, link, text, or page-root)
  • Null-safe engagement โ€” when Facebook's logged-out HTML doesn't expose a count, the field is written as null, never a faked 0, so you can tell "zero engagement" apart from "unknown"
  • Post-processing filters โ€” keywords, excludeKeywords, minLikes, minComments, minShares, startDate, endDate, and the postTimeRange preset all run before a row is written, so you never pay for rows you'd filter out downstream
  • Multi-provider AI enrichment โ€” one aiEnhancement toggle covers Anthropic, OpenAI, Google, xAI, DeepSeek, Perplexity, and Mistral, auto-detected from the aiModel name

How Facebook Posts Search Scraper Plus compares to other Facebook scrapers

FeatureFacebook Posts Search Scraper PlusFacebook Posts Search (scraper_one)Facebook Search Posts (scrapeforge)
Output formatTyped JSON, null for unknown countsJSONJSON
Reaction-type breakdown7 types (like/love/haha/wow/care/sad/angry)Reaction object, up to 7 labeled types, per its listing (observed on the Apify Store on 2026-07-26)Reaction object, 7 labeled types, per its listing (observed on the Apify Store on 2026-07-26)
Direct URL inputPost/video/reel/photo/page/profile/search URLs (startUrls)Not documented on its listing (observed on the Apify Store on 2026-07-26)Not documented on its listing (observed on the Apify Store on 2026-07-26)
Multi-entity searchPosts onlyPosts onlyPosts, Pages, Groups, People, Videos, Events โ€” per its listing (observed on the Apify Store on 2026-07-26)
Post-processing filtersKeyword include/exclude + min engagement + date window, applied before a row is chargedNot documented on its listing (observed on the Apify Store on 2026-07-26)Date and location filters, per its listing (observed on the Apify Store on 2026-07-26)
AI text enrichmentOptional, 7 LLM providers (sentiment/emotion/language/topics/spam)Not documented on its listing (observed on the Apify Store on 2026-07-26)Not documented on its listing (observed on the Apify Store on 2026-07-26)
Pricing modelPay per event (row_result)Pay per event, per its listing (observed on the Apify Store on 2026-07-26)Pay per result, per its listing (observed on the Apify Store on 2026-07-26)

If your use case is feeding structured data to an LLM or agent, the output-format row is the decision-maker โ€” HTML parsing inside an agent loop is a reliability failure mode, not a feature. A null on an unknown engagement count is also more useful to a downstream pipeline than a silently-faked zero, because your code can branch on "unknown" instead of treating it as "no engagement."

When another tool might suit you better

If your workload needs Facebook Pages, Groups, People, or Events as first-class search targets โ€” not just posts โ€” scrapeforge's Facebook Search Posts actor advertises six distinct search types on its listing (observed on the Apify Store on 2026-07-26), which this Actor does not attempt; it is post-search only, with page/profile expansion as a secondary path via startUrls. If you specifically need location-pinned post search, scraper_one's listing documents a location filter (observed on the Apify Store on 2026-07-26) that this Actor has no equivalent for.

Facebook Posts Search Scraper Plus within the Scrapio data stack

Facebook Posts Search Scraper Plus covers posts discovered by keyword, hashtag, or URL. For a Facebook Page's full post history and its comment threads, use Facebook Page Posts & Comments Scraper. For posts and engagement inside a specific Facebook Group, use Facebook Group Posts & Engagement Scraper. For Reels specifically, with dedicated engagement analytics, use Facebook Reels Scraper With Engagement Analytics. To resolve a vanity Facebook URL to its numeric page/profile ID first, use Facebook URL to Id Extractor.

Why do developers and data teams scrape Facebook?

๐Ÿข Brand monitoring and social listening teams

A marketing or comms team feeds searchQueries with a brand name or campaign hashtag, sets minLikes/minComments thresholds to filter out noise, and schedules repeat runs to catch new posts as they appear. Each row's text, pageName, author.name, engagementTotal, and sentiment (when aiEnhancement is on) land in the dataset ready to route into a dashboard or alerting tool, without anyone touching raw HTML. Because startUrls also accepts direct Page URLs, the same run can track a competitor's official Page alongside open keyword search.

๐Ÿ“Š AI training data and RAG indexing

The text field is the high-information field for both use cases: for RAG, post text plus hashtags[] and mentions[] give an LLM searchable context about a topic or brand conversation without needing to re-crawl Facebook at query time. For training data, the consistently-structured numeric fields (likes, comments, shares, engagementTotal, textLength, wordCount) and the categorical postType/resultKind fields provide a clean, uniform feature set across every row โ€” no per-record schema drift to normalize. When aiEnhancement is enabled, sentiment, emotion, topics[], and language are pre-computed labels that can seed a training set directly instead of requiring a separate labeling pass.

๐Ÿ“ฑ Competitive and market intelligence

Track a competitor's public Page by passing its URL through startUrls, or track a market topic through searchQueries. The engagementVelocity field (engagement per hour since the post was published) is the metric worth watching over time โ€” a spike signals a post is over-performing relative to a brand's normal pace, which is a stronger competitive signal than a raw engagement total taken at a single point in time.

๐Ÿ”ฌ Research and academic use

Social and market researchers can build a keyword- or hashtag-defined corpus of public posts for content analysis, without needing a Facebook developer account. Every field documented here comes from publicly accessible Facebook pages fetched logged-out โ€” no private groups, no friends-only content, and no authenticated session is involved anywhere in the pipeline.

๐ŸŽฅ Product and SaaS development

Teams building a monitoring dashboard, a brand-mention alerting tool, or a lead-enrichment product can run this Actor on a schedule and treat the dataset as a normalized upstream feed โ€” postId is stable per post, so downstream deduplication and incremental syncs can key off it directly instead of re-deriving an identifier from the URL.

๐Ÿš Input Parameters

None of the 16 input parameters are required โ€” an empty input defaults to a searchQueries: ["football"] demo run.

ParameterRequiredTypeDescriptionExample Value
searchQueriesNoarrayTopics to search on Facebook (via Google site:facebook.com). Each keyword runs as a separate search.["football", "tech news"]
startUrlsNoarrayDirect Facebook URLs to scrape. Accepts post/video/reel/photo URLs (one post each), page/profile URLs (expanded to recent posts), and Facebook search URLs (routed through keyword discovery).["https://www.facebook.com/NASA/"]
hashtagsNoarrayHashtags to search (the leading # is optional). Each becomes a #tag search.["worldcup", "#nasa"]
maxPostsNointegerMaximum posts to collect per keyword / hashtag / start URL. Range 1โ€“1000. Default 50.50
postTimeRangeNostring (select)Keep only posts newer than this preset, using each post's detected creation time. Posts without a detected date are dropped when a window is set. Options: "" (All time), 24h, 7d, 30d, 90d."7d"
keywordsNoarrayKeep a post only if its text contains at least one of these (case-insensitive).["transfer", "signing"]
excludeKeywordsNoarrayDrop a post if its text contains any of these (case-insensitive).["giveaway", "casino"]
minLikesNointegerKeep only posts with at least this many total reactions. Posts with an unknown count are dropped when the threshold is > 0. Default 0 (no filter).10
minCommentsNointegerKeep only posts with at least this many comments. Same unknown-count rule as minLikes. Default 0.5
minSharesNointegerKeep only posts with at least this many shares. Same unknown-count rule as minLikes. Default 0.2
startDateNostring (datepicker)Keep only posts created on/after this date. Absolute (YYYY-MM-DD) or relative ("7 days", "1 month"). Posts without a detected date are dropped when set."2026-06-01"
endDateNostring (datepicker)Keep only posts created on/before this date. Same format rules as startDate."2026-07-26"
aiEnhancementNobooleanAdd sentiment, emotion, language, topics, and a spam score for each post's text. Default false.true
aiModelNostring (enum)AI provider/model. Provider is auto-detected from the name prefix: claude-* = Anthropic, gpt-*/o1/o3 = OpenAI, gemini-* = Google, grok-* = xAI, deepseek-* = DeepSeek, sonar* = Perplexity, mistral-* = Mistral. Default "claude-haiku-4-5"."claude-haiku-4-5"
aiApiKeyNostring (secret)API key for the selected provider. If empty, the matching provider env var is used: ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, PERPLEXITY_API_KEY, or MISTRAL_API_KEY."sk-ant-..."
proxyConfigurationNoobject (proxy)Proxy settings for Facebook page requests. Google SERP discovery always uses the built-in GOOGLE_SERP proxy group regardless of this setting. Default {"useApifyProxy": true}.{"useApifyProxy": true}

Example input:

{
"searchQueries": ["football"],
"startUrls": ["https://www.facebook.com/NASA/"],
"hashtags": ["worldcup"],
"maxPosts": 100,
"postTimeRange": "30d",
"minLikes": 10,
"aiEnhancement": true,
"aiModel": "claude-haiku-4-5",
"proxyConfiguration": { "useApifyProxy": true }
}

Supported URL types and input formats

startUrls accepts three distinct URL shapes, each handled differently:

  • Direct post/video/reel/photo URL โ€” e.g. https://www.facebook.com/BleacherReportFootball/posts/1150692399746997 or https://www.facebook.com/reel/123456789 โ€” scraped as exactly one dataset row.
  • Page or profile root URL โ€” e.g. https://www.facebook.com/NASA/ โ€” the page's HTML is fetched, its recent post permalinks are harvested, and each is scraped as its own row, up to maxPosts. If no post links can be harvested, the page-root record itself is emitted so the run isn't empty.
  • Facebook search URL โ€” e.g. https://www.facebook.com/search/top/?q=football or a facebook.com/hashtag/... URL โ€” the query is extracted and routed through the same keyword-discovery pipeline used for searchQueries.

searchQueries and hashtags accept plain strings; a hashtag entry can be given with or without its leading # ("nasa" and "#nasa" both resolve to the same #nasa search).

๐Ÿ“ฆ Output Format

Every result is written to the Actor's default dataset as one flat JSON object per post, with the author and linkPreview sub-objects also flattened into the dataset's default table view (author.name, author.id, linkPreview.domain, etc.).

Output for Posts

{
"resultKind": "post",
"postType": "photo",
"time": "2026-07-20 14:32:05",
"timestamp": 1784644325,
"scrapedAt": "2026-07-26T09:15:00Z",
"pageName": "NASA",
"pageId": "13497669772",
"facebookId": "13497669772",
"facebookUrl": "https://www.facebook.com/NASA",
"postId": "1150692399746997",
"postFacebookId": "1150692399746997",
"url": "https://www.facebook.com/NASA/posts/1150692399746997",
"topLevelUrl": "https://www.facebook.com/13497669772/posts/1150692399746997",
"link": "https://www.facebook.com/NASA/posts/1150692399746997",
"text": "New images from the James Webb Space Telescope show unprecedented detail of a distant nebula. #JWST #space",
"likes": 18189,
"comments": 399,
"shares": 2456,
"engagementTotal": 21044,
"engagementVelocity": 146.14,
"viewsCount": null,
"thumb": "https://scontent.fbcdn.net/v/example_thumb.jpg",
"images": ["https://scontent.fbcdn.net/v/example1.jpg", "https://scontent.fbcdn.net/v/example2.jpg"],
"videoHdUrl": null,
"videoSdUrl": null,
"videoDurationSeconds": null,
"linkPreview": null,
"hashtags": ["jwst", "space"],
"mentions": [],
"externalLinkDomain": null,
"textLength": 108,
"wordCount": 16,
"rankInResultSet": 1,
"searchQuery": "NASA",
"sentiment": "positive",
"emotion": "excitement",
"language": "en",
"topics": ["space exploration", "astronomy"],
"spamScore": 0.02
}

Output for Authors & Pages

pageName, pageId, facebookId, and facebookUrl describe the Page or profile the post was made on. The nested author object captures the poster identity separately โ€” for a brand Page, this is usually the Page itself; for a personal-profile post, it's the individual who posted:

{
"author": {
"id": "13497669772",
"name": "NASA",
"profileUrl": "https://www.facebook.com/13497669772",
"pic": "https://scontent.fbcdn.net/v/author_profile_pic.jpg"
}
}

Output for Engagement & Reactions

The reaction breakdown is written both as a reactions object and as seven flattened top-level fields for easier dataset-view filtering and CSV export:

{
"likes": 18189,
"comments": 399,
"shares": 2456,
"engagementTotal": 21044,
"engagementVelocity": 146.14,
"reactions": { "like": 15200, "love": 2100, "haha": 450, "wow": 310, "care": 90, "sad": 25, "angry": 14 },
"reactionLike": 15200,
"reactionLove": 2100,
"reactionHaha": 450,
"reactionWow": 310,
"reactionCare": 90,
"reactionSad": 25,
"reactionAngry": 14,
"viewsCount": null
}

Reaction-type coverage depends on what a given post's logged-out HTML exposes โ€” when the per-type breakdown isn't present, reactions is null and the individual reaction* fields stay null rather than defaulting to 0. The same null-safety applies to likes, comments, and shares themselves.

Schema stability and export options

Field names are fixed by this Actor's own extraction code, not read live from Facebook's markup structure, so they stay stable even when Facebook changes its front-end HTML โ€” only the extraction regexes behind the scenes would need updating, which doesn't change the output schema you build against. Every dataset produced by a run can be exported from the Apify platform as JSON, JSONL, CSV, Excel, HTML table, or XML from the Storage โ†’ Dataset tab, or pulled programmatically through the Apify API/SDK.

๐Ÿ’ก Facebook Posts Search Scraper Plus Strategy Guide

๐ŸŽฏ Strategy 1: Real-time enrichment pipeline

Trigger a run whenever a new lead or record needs a Facebook-presence check: pass the record's Facebook Page URL through startUrls, set maxPosts to a small number (e.g. 5) to pull only its most recent activity, and turn on aiEnhancement to get sentiment and topics on each post's text. Append engagementTotal, sentiment, and pageName back to your CRM or lead record as enrichment fields โ€” the run completes as a single Actor call per lead, so it fits directly into an event-driven pipeline step.

๐ŸŽฏ Strategy 2: Scheduled monitoring and alerting

Use an Apify Schedule to run the same searchQueries or startUrls set on a recurring cadence. Diff each run's output against the previous run on postId to find new posts, and on engagementTotal/engagementVelocity to catch a post that's over-performing. Set postTimeRange to a short window (24h or 7d) on each scheduled run so you only pay for genuinely new posts rather than re-scraping the same history every time.

๐ŸŽฏ Strategy 3: Bulk dataset build

For a research or training-data corpus, run one Actor call per keyword/hashtag/URL with maxPosts set to the volume you need per source (up to the schema maximum of 1000), and let the Apify platform run them as separate Actor runs or, within a single run, as parallel tasks (this Actor already fans out multiple searchQueries/hashtags concurrently inside one run โ€” no external orchestration is needed for that case). Export each run's dataset to CSV or JSONL and concatenate.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentPer-lead / per-event lookupsSingle Actor call, small maxPostsJSON appended to an existing record
Scheduled monitoringOngoing brand/competitor trackingRecurring Apify Schedule, short postTimeRangeJSON diffed on postId between runs
Bulk dataset buildResearch corpora, training setsOne call per source, high maxPostsCSV/JSONL export, concatenated
Scraper NameWhat it extracts
Facebook Page Posts & Comments ScraperA Page's full post history plus comment threads
Facebook Group Posts & Engagement ScraperPosts and engagement inside a specific Facebook Group
Facebook Reels Scraper With Engagement AnalyticsReels with dedicated engagement analytics
Facebook URL to Id ExtractorResolves a vanity Facebook URL to its numeric page/profile ID
Instagram Hashtag Scraper (Posts, Likes and Comments)The Instagram equivalent of hashtag-based post discovery
Twitter Profile & Tweets ScraperThe X/Twitter equivalent of profile and post extraction
Website Contact & Email ExtractorComplementary โ€” enrich a discovered Page's linked website with contact details

How to integrate Facebook Posts Search Scraper Plus with your stack

Facebook Posts Search Scraper Plus works with any language or tool that can make an HTTP request, since it runs on the Apify platform and is reachable through the standard Apify API and client SDKs.

Python

from apify_client import ApifyClient
import csv
client = ApifyClient("<YOUR_APIFY_TOKEN>")
queries = ["football", "world cup"]
all_rows = []
for query in queries:
run = client.actor("facebook-posts-search-scraper-plus").call(
run_input={
"searchQueries": [query],
"maxPosts": 50,
"minLikes": 10,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
all_rows.append(item)
with open("facebook_posts.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["pageName", "text", "likes", "comments", "shares", "url"])
writer.writeheader()
for row in all_rows:
writer.writerow({k: row.get(k) for k in writer.fieldnames})
print(f"Saved {len(all_rows)} posts to facebook_posts.csv")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('facebook-posts-search-scraper-plus').call({
searchQueries: ['football'],
maxPosts: 50,
aiEnhancement: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} posts`);
console.log(items.map((i) => ({ page: i.pageName, likes: i.likes, url: i.url })));

Async and scheduled pipelines

For large jobs, start the run through the Apify API and poll the run's status endpoint or the dataset's item count rather than holding a synchronous connection open โ€” the Actor itself has no webhook-delivery input, but Apify webhooks can be attached to any run at the platform level to notify your system on completion. For recurring jobs, an Apify Schedule triggers the same input on a cron-style cadence without any code running on your side between runs.

๐ŸŽฏ Who Needs Facebook Posts Search Scraper Plus? (Use Cases & Industries)

๐Ÿข Marketing and social listening teams

A social listening team monitors a product launch by setting searchQueries to the campaign hashtag and minComments to filter out low-engagement noise, then reviews text, engagementTotal, and (with aiEnhancement on) sentiment for each post to gauge public reaction within hours of launch.

๐Ÿ“Š AI/ML and data engineering teams

Data teams building a RAG index or a classifier training set pull text, hashtags[], and the sentiment/topics/language AI fields as a pre-labeled, uniformly structured feed โ€” no separate annotation pipeline needed for the fields this Actor already computes.

๐Ÿ“ฑ Competitive intelligence analysts

An analyst tracks a competitor's official Page through startUrls, watching engagementVelocity over successive scheduled runs to spot which posts are over-performing the Page's historical pace, and externalLinkDomain to see which outside content the competitor is amplifying.

๐Ÿ”ฌ Researchers

Academic and market researchers build keyword- or hashtag-scoped corpora of public post text and engagement metrics for content-analysis or public-opinion studies, working only with data that Facebook already serves to a logged-out visitor.

๐ŸŽฅ Product and SaaS builders

Teams building a brand-monitoring dashboard or a lead-enrichment API run this Actor as a backend data source, keying on the stable postId field for deduplication and incremental sync logic in their own product.

Scraping publicly accessible web data is generally lawful in the United States โ€” in hiQ Labs, Inc. v. LinkedIn Corp. (9th Cir. 2019), the court held that accessing data that isn't gated behind a login does not violate the Computer Fraud and Abuse Act, a precedent widely cited for public-data scraping generally, though it was decided in a LinkedIn-specific dispute and is not a Facebook-specific ruling. Separately, scraping in a way that breaches a platform's Terms of Service can expose the scraper to civil breach-of-contract claims from that platform, which is a different question from criminal liability. Because this Actor's output includes personal identifiers for individual posters โ€” names, profile URLs, and profile pictures in the author object โ€” storing or using that data may also trigger data protection obligations (e.g. GDPR in the EU/UK, or similar state-level laws) depending on your jurisdiction and how you use it. Facebook Posts Search Scraper Plus returns only publicly accessible data. What you do with that data is your responsibility โ€” consult legal counsel for commercial applications involving personal data.

โ“ Frequently asked questions

Does Facebook Posts Search Scraper Plus work without a Facebook account?

Yes. The Actor fetches Facebook pages logged-out and none of its 16 input parameters accept Facebook credentials. Keyword and hashtag discovery goes through Google's public search index rather than Facebook's own logged-in search.

How does Facebook Posts Search Scraper Plus handle Facebook's anti-scraping measures?

It routes keyword/hashtag discovery through Apify's dedicated GOOGLE_SERP proxy group, fetches each Facebook page through Apify Proxy (configurable via proxyConfiguration, defaulting to {"useApifyProxy": true}), retries failed fetches up to three times with a short backoff, and randomizes a 1โ€“2 second delay between consecutive page fetches within a search.

Can I run Facebook Posts Search Scraper Plus at scale without getting blocked?

The Actor retries transient fetch failures automatically and paces requests with randomized delays between page fetches, but there is no published uptime or success-rate guarantee for large-scale runs โ€” treat proxy and fetch reliability as variable, and design your pipeline to handle a run that returns fewer posts than maxPosts requested (the SERP discovery step also caps at 500 result pages internally, so extremely high maxPosts values on a single query are bounded by that ceiling).

How fresh is the data Facebook Posts Search Scraper Plus returns?

Live per run โ€” every post is fetched from Facebook at the time the Actor runs, not served from a cache. scrapedAt records the exact UTC timestamp of extraction for each row, separate from time/timestamp, which record when the post itself was published.

Which Facebook fields work best for AI training and RAG indexing?

For RAG, the text field carries the highest information density, and hashtags[]/mentions[] add searchable topical and reference context. For training data, the numeric fields (likes, comments, shares, engagementTotal, textLength, wordCount) and categorical fields (postType, resultKind, sentiment, language) are consistently structured across every row. All fields return as typed primitives โ€” strings, numbers, arrays, or null โ€” requiring no additional normalization before use in an LLM context window.

Does using Facebook Posts Search Scraper Plus involve personal data?

Yes โ€” the author object (id, name, profileUrl, pic) and pageName can identify individual posters, not just brand Pages. The Actor returns only publicly available data as Facebook serves it to a logged-out visitor; the lawful basis for storing and using that data in your own systems is your responsibility as the data controller.

Does Facebook Posts Search Scraper Plus work with Claude, ChatGPT, and other AI agent tools?

Yes, as an HTTP endpoint callable through the Apify API โ€” any agent framework that can make an HTTP request or use the Apify client SDK can trigger a run and read back the dataset. Every field is returned as typed JSON, so no HTML parsing step is required before passing results into an LLM context window.

How does Facebook Posts Search Scraper Plus compare to other Facebook scrapers?

scrapeforge's Facebook Search Posts genuinely covers more ground for searches that need Pages, Groups, People, or Events as result types, per its listing (observed on the Apify Store on 2026-07-26) โ€” this Actor is posts-focused. scraper_one's Facebook Posts Search advertises a location filter this Actor has no equivalent for (observed on the Apify Store on 2026-07-26). In exchange, Facebook Posts Search Scraper Plus documents a wider set of post-processing filters (keyword include/exclude, three separate engagement minimums, and an absolute or relative date window), a 7-type reaction breakdown, and built-in multi-provider AI text enrichment that neither competitor's listing documents as of the same check date.

โ„น๏ธ Disclaimer

Facebook Posts Search Scraper Plus extracts only publicly available data from Facebook. This tool is intended for lawful use cases only. Users are responsible for complying with Facebook's terms of service and applicable data protection laws in their jurisdiction.