Facebook Post Search Scraper avatar

Facebook Post Search Scraper

Pricing

from $6.00 / 1,000 matching post returneds

Go to Apify Store
Facebook Post Search Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

8 days ago

Last modified

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:

FieldDescription
postUrlCanonical Facebook post URL
textPost caption/body text
matchedTermsThe search terms this post matched
matchedFieldsWhich fields matched (text, author)
authorName / authorUrlAuthor or page that posted
timestampISO 8601 publish time (when available)
reactionsCount / commentsCount / sharesCountEngagement counts
mediaImage/video URLs on the post
externalLinksOutbound non-Facebook links in the post
sourceUrlThe source URL that produced the post
scrapeSourceProvider that returned the post

Input

FieldRequiredDescription
searchTermsKeywords/phrases to look for (e.g. ["hiring", "remote"]).
startUrlsPublic page/profile/group (or post) URLs to search within.
matchModeany (OR, default) or all (AND) across terms.
matchFieldsSearch text, author, or both. Default: text.
caseSensitiveExact-case matching. Default: off.
useRegexTreat terms as JS regular expressions. Invalid patterns fall back to literal.
resultsLimitMax matching posts returned (cost cap). Default: 50.
maxPostsScannedPerSourceHow many recent posts to scan per source. Default: 150.
onlyPostsNewerThan / onlyPostsOlderThanOptional 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 caseSensitive or useRegex for 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.

  • 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.

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.