Facebook Post Search Scraper
Pricing
from $6.00 / 1,000 matching post returneds
Facebook Post Search Scraper
Search public Facebook page, profile, and group posts by keyword. Returns only posts whose text or author matches your terms, with author, timestamp, engagement counts, media, and the matched terms. Cookieless, no login. MCP-ready.
Pricing
from $6.00 / 1,000 matching post returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Search public Facebook posts by keyword across the pages, profiles, and groups you choose — and get back only the posts that match your terms, as clean structured JSON. Cookieless, no login, MCP-ready.
What it does
Give the actor (1) a list of search terms and (2) a list of public Facebook sources (page, profile, or group URLs). It scans the recent posts of each source, keyword-matches every post against your terms, and returns just the matches — with author, timestamp, engagement counts, media, outbound links, and the exact matchedTerms that triggered each hit.
This is search within the sources you specify. Facebook's own global search bar (facebook.com/search/posts) is login-walled and cannot be scraped reliably without an account; no cookieless tool can do it honestly. Instead, this actor lets you point at the pages and groups that matter to you (competitors, communities, news pages, your own page) and pull every post mentioning a keyword.
When to use it
- Brand & keyword monitoring — track every post mentioning your brand, product, or campaign across a set of pages and groups.
- Competitor watch — find competitor posts about launches, promos, or hiring.
- Community research — surface posts about a topic inside public groups.
- Lead & opportunity mining — find "looking for", "recommend", "hiring", or buying-intent posts in niche communities.
- AI agents — a clean tool call: terms + sources in, matching posts out.
Do not use it for: scraping ALL posts from a page regardless of keyword (use the companion Facebook Posts Scraper), Facebook Ads (use Facebook Ad Library Scraper), Marketplace, comments, or private/login-only content.
Output
One dataset record per matching post:
| Field | Description |
|---|---|
postUrl | Canonical Facebook post URL |
text | Post caption/body text |
matchedTerms | The search terms this post matched |
matchedFields | Which fields matched (text, author) |
authorName / authorUrl | Author or page that posted |
timestamp | ISO 8601 publish time (when available) |
reactionsCount / commentsCount / sharesCount | Engagement counts |
media | Image/video URLs on the post |
externalLinks | Outbound non-Facebook links in the post |
sourceUrl | The source URL that produced the post |
scrapeSource | Provider that returned the post |
Input
| Field | Required | Description |
|---|---|---|
searchTerms | ✅ | Keywords/phrases to look for (e.g. ["hiring", "remote"]). |
startUrls | ✅ | Public page/profile/group (or post) URLs to search within. |
matchMode | any (OR, default) or all (AND) across terms. | |
matchFields | Search text, author, or both. Default: text. | |
caseSensitive | Exact-case matching. Default: off. | |
useRegex | Treat terms as JS regular expressions. Invalid patterns fall back to literal. | |
resultsLimit | Max matching posts returned (cost cap). Default: 50. | |
maxPostsScannedPerSource | How many recent posts to scan per source. Default: 150. | |
onlyPostsNewerThan / onlyPostsOlderThan | Optional ISO date filters. |
Example input
{"searchTerms": ["mars", "moon"],"startUrls": [{ "url": "https://www.facebook.com/NASA" }],"matchMode": "any","matchFields": ["text"],"resultsLimit": 50,"maxPostsScannedPerSource": 150}
How search works
For each source, the actor pulls recent posts (paginating up to maxPostsScannedPerSource) through a managed data provider, then applies your matcher locally:
any— a post is returned if it matches at least one term.all— a post is returned only if it matches every term.- Matching is case-insensitive substring by default; enable
caseSensitiveoruseRegexfor finer control.
maxPostsScannedPerSource controls how deep the search reads each source. Rare keywords need a higher value to find matches; common keywords need less. resultsLimit caps how many matches you pay for.
Pricing
Pay-per-event (and pay-per-usage):
- Actor start — $0.00005
- Source searched — $0.02 per page/profile/group scanned
- Matching post returned — $0.006 per matched post
A run searching 5 sources and returning 40 matches costs about $0.34. You only pay the per-match fee for posts that actually match your terms.
Reliability
- Cookieless and login-free — backed by managed providers (ScrapeCreators primary, SociaVault fallback), so there are no cookies to expire.
- Public data only. Private, deleted, age-gated, or login-only sources return no posts and are reported in the run summary — they don't crash the run.
- A zero-match run is a normal, successful result (no posts contained your terms). A run where every source was blocked or empty fails honestly so you're never silently billed for nothing.
Use with AI agents (MCP)
Exposed via Apify MCP as apify--facebook-post-search-scraper. Call it with searchTerms + startUrls; it returns matching posts as structured JSON for downstream reasoning.
Related actors
- Facebook Posts Scraper — all posts from a page/profile/group (no keyword filter).
- Facebook Ad Library Scraper — Meta ad creatives by keyword/advertiser.
- Facebook Groups Scraper, Facebook Marketplace Scraper, Facebook Page Scraper.
Legal
This actor collects only publicly available Facebook data. You are responsible for complying with Facebook's Terms of Service, applicable data-protection laws (GDPR/CCPA), and for using scraped data lawfully. It does not access private content, bypass authentication, or collect data behind a login.