๐ Facebook Posts Search Scraper Plus
Pricing
from $3.99 / 1,000 results
๐ 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
Maintained by CommunityActor stats
0
Bookmarked
34
Total users
11
Monthly active users
3 days ago
Last modified
Categories
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 โ
startUrlsdistinguishes 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,reactionAngryare extracted from Facebook's internal reaction-ID map, in addition to the aggregatelikescount - Author/page split โ a nested
authorobject (id,name,profileUrl,pic) is captured separately from the page-levelpageName/pageId/facebookUrlfields - 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[]andmentions[]parsed from the post text,textLength,wordCount,externalLinkDomain, and aresultKind/postTypeclassification (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 faked0, so you can tell "zero engagement" apart from "unknown" - Post-processing filters โ
keywords,excludeKeywords,minLikes,minComments,minShares,startDate,endDate, and thepostTimeRangepreset all run before a row is written, so you never pay for rows you'd filter out downstream - Multi-provider AI enrichment โ one
aiEnhancementtoggle covers Anthropic, OpenAI, Google, xAI, DeepSeek, Perplexity, and Mistral, auto-detected from theaiModelname
How Facebook Posts Search Scraper Plus compares to other Facebook scrapers
| Feature | Facebook Posts Search Scraper Plus | Facebook Posts Search (scraper_one) | Facebook Search Posts (scrapeforge) |
|---|---|---|---|
| Output format | Typed JSON, null for unknown counts | JSON | JSON |
| Reaction-type breakdown | 7 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 input | Post/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 search | Posts only | Posts only | Posts, Pages, Groups, People, Videos, Events โ per its listing (observed on the Apify Store on 2026-07-26) |
| Post-processing filters | Keyword include/exclude + min engagement + date window, applied before a row is charged | Not 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 enrichment | Optional, 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 model | Pay 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.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
searchQueries | No | array | Topics to search on Facebook (via Google site:facebook.com). Each keyword runs as a separate search. | ["football", "tech news"] |
startUrls | No | array | Direct 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/"] |
hashtags | No | array | Hashtags to search (the leading # is optional). Each becomes a #tag search. | ["worldcup", "#nasa"] |
maxPosts | No | integer | Maximum posts to collect per keyword / hashtag / start URL. Range 1โ1000. Default 50. | 50 |
postTimeRange | No | string (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" |
keywords | No | array | Keep a post only if its text contains at least one of these (case-insensitive). | ["transfer", "signing"] |
excludeKeywords | No | array | Drop a post if its text contains any of these (case-insensitive). | ["giveaway", "casino"] |
minLikes | No | integer | Keep 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 |
minComments | No | integer | Keep only posts with at least this many comments. Same unknown-count rule as minLikes. Default 0. | 5 |
minShares | No | integer | Keep only posts with at least this many shares. Same unknown-count rule as minLikes. Default 0. | 2 |
startDate | No | string (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" |
endDate | No | string (datepicker) | Keep only posts created on/before this date. Same format rules as startDate. | "2026-07-26" |
aiEnhancement | No | boolean | Add sentiment, emotion, language, topics, and a spam score for each post's text. Default false. | true |
aiModel | No | string (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" |
aiApiKey | No | string (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-..." |
proxyConfiguration | No | object (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/1150692399746997orhttps://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 tomaxPosts. 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=footballor afacebook.com/hashtag/...URL โ the query is extracted and routed through the same keyword-discovery pipeline used forsearchQueries.
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
| Strategy | Best for | Run pattern | Output format |
|---|---|---|---|
| Real-time enrichment | Per-lead / per-event lookups | Single Actor call, small maxPosts | JSON appended to an existing record |
| Scheduled monitoring | Ongoing brand/competitor tracking | Recurring Apify Schedule, short postTimeRange | JSON diffed on postId between runs |
| Bulk dataset build | Research corpora, training sets | One call per source, high maxPosts | CSV/JSONL export, concatenated |
๐ด Related Facebook Scrapers & Tools
| Scraper Name | What it extracts |
|---|---|
| Facebook Page Posts & Comments Scraper | A Page's full post history plus comment threads |
| Facebook Group Posts & Engagement Scraper | Posts and engagement inside a specific Facebook Group |
| Facebook Reels Scraper With Engagement Analytics | Reels with dedicated engagement analytics |
| Facebook URL to Id Extractor | Resolves 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 Scraper | The X/Twitter equivalent of profile and post extraction |
| Website Contact & Email Extractor | Complementary โ 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 ApifyClientimport csvclient = 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.
Is it legal to scrape Facebook?
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.
