ParseForge Scrapers

Facebook Search Scraper - Posts by Keyword

parseforge/facebook-search-scraper

Social mediaLead generation

Searches Facebook by keyword for pages, groups, posts or videos, ranked as Facebook lists them. Page results carry 35 fields: name, URL, category, about and mission, likes, followers, rating and reviews, check-ins, hours, price range, address, phone, email, website and verification.

Run this scraper See the API call
Total users
63
Monthly active
20
Total runs
1.3K
Bookmarked
0
Last modified
8 days ago

This scraper was last updated on .

What does the Facebook Search Scraper - Posts by Keyword return?

ParseForge

Facebook Search Scraper

Scrape Facebook pages, groups and events by keyword, up to a million per run. Get structured data from public listings without login or API key. Export to CSV, JSON, Excel, or XML.

Low minimum charge: $0.005 to start a run, then you only pay for the results you get.

Facebook Search is locked behind a login wall and the official API only covers your own pages. This actor finds the public Facebook pages, groups and events that match your keywords, then opens each one to read its public profile: category, follower counts, contact details, business information. Each result comes back as a flat row, ready for analysis.

Who uses it What they scrape Facebook for
Market researchers Which brands and communities dominate a niche on Facebook
Lead generation teams Find Facebook pages and groups that match an ideal customer profile
Community managers Find the Facebook groups and events around a topic or place
OSINT analysts Map public Facebook entities around a person, brand, or event

What it does

This Actor finds Facebook pages, groups or events matching your keywords and returns each one as a flat row.

  • ๐Ÿ” Search types: pages, groups or events, one type per run.
  • ๐Ÿ“‹ Multiple queries: pass a list of search terms and get results for all of them in one dataset.
  • ๐Ÿงพ Page details: each result is opened on Facebook for category, followers, phone, email, website, verified status, map coordinates and business information. Turn it off with enrichPages: false for a faster, cheaper run.
  • ๐Ÿ‘ฅ Groups get group data: member count, privacy (public or private), group id and description.
  • ๐Ÿ“… Events get event data: start and end time in ISO 8601, the date sentence with its timezone, venue and map coordinates, organizer, cancelled flag, and the interested and going counts.
  • โš™๏ธ Result caps: resultsPerQuery per term and maxItems for the whole run, from 1 to 1,000,000.
  • ๐Ÿงฎ You pay for data, not for misses: a result Facebook shows no public data for is still written to your dataset, marked with error, and is not charged.
  • ๐Ÿ“ค Export ready: download as CSV, JSON, Excel, or XML from the Apify dataset.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Facebook data

๐Ÿ“ˆ Track brand presence.

A market researcher runs weekly searches for a brand name across pages and groups to see which communities are growing and what competitors appear.

๐ŸŽฏ Build lead lists.

A sales team searches for industry keywords in pages and groups, then exports the results to enrich their CRM with Facebook company pages.

๐Ÿง  Map communities.

A community manager searches groups and events for a city or a topic to find where the audience already gathers.

๐Ÿ•ต๏ธ Investigate entities.

An OSINT analyst runs a person's name or an event keyword across all three search types to map the related public pages, groups and events.

Why choose this scraper

What you get
No login or API key Reads public search listings directly, so you skip OAuth and app registration
One fixed schema Every result, whether a page, group or event, lands in the same flat structure
Bulk queries Run dozens or hundreds of search terms in a single actor run
Scale on demand Collect up to a million results per run on Apify's infrastructure

How it compares

No other Store actor targets Facebook the same way, so the honest comparison is with the alternatives teams actually weigh.

Facebook Search Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Facebook changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with a list of search queries and pick one search type: pages, groups or events. resultsPerQuery caps each term, maxItems caps the run. Turn enrichPages off if you only need what the listing shows. The Input tab lists every parameter.

A first run with the defaults:

{
  "queries": [
    "nike",
    "apple"
  ],
  "searchType": "pages",
  "maxItems": 10
}

A larger pull:

{
  "queries": [
    "nike",
    "apple"
  ],
  "searchType": "pages",
  "resultsPerQuery": 50,
  "maxItems": 200
}

Listings only, no page visits, at a third of the price:

{
  "queries": [
    "running club madrid"
  ],
  "searchType": "groups",
  "enrichPages": false,
  "maxItems": 100
}

Events near a city, with times and venues:

{
  "queries": [
    "concert madrid",
    "food festival madrid"
  ],
  "searchType": "events",
  "resultsPerQuery": 20,
  "maxItems": 40
}

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Facebook Search Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Facebook through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/facebook-search-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your search query is not too specific. Try a broader term, or switch to a different search type. A run that finds nothing ends as a success with an empty dataset and charges you nothing beyond the Actor start, and the run's status message says which of your queries came back empty.

Why did the run stop before reaching my max results?

Facebook may not have more results for that query and search type. The actor stops when the public listing is exhausted.

Can I search for groups and pages in the same run?

No. Each run uses one search type. Run the actor multiple times with different search types if you need more than one.

Why do some rows have an error field?

Facebook serves a login wall instead of a public profile for some results. Those rows are still written so you can see what was found, they carry the URL and the listing title, and they are not charged.

A groups run returned rows with error and nothing else.

Facebook refuses group pages from datacenter IPs more aggressively than it refuses business pages. Switch the proxy to a residential group, or set enrichPages: false to keep the listing data (name, URL and snippet) without opening each group.

The run stopped early and said so. Why?

The Actor watches its own run timeout and stops starting new queries when there is not enough time left to finish one, so the results it already collected are written rather than lost. Raise the run timeout to collect the rest.

Why are some fields empty in my results?

Facebook does not always show the same metadata for every result. Empty fields mean that information was not present in the public listing.

FAQ

Question Answer
Do I need a Facebook account or API key? No. This actor reads public Facebook Search listings without login or API credentials.
What search types can I scrape? Pages, groups and events. You choose one type per run.
Can I search for multiple queries at once? Yes. Pass a list of search queries and the actor will collect results for each one in a single run.
How many results can I get? You can set a maximum from 1 to 1,000,000 results per run. The actor stops when it reaches that cap or when no more results are available.
What data does each result include? Pages: name, URL, slug, page ID, category and categories, description, follower and talking-about counts, verified status, phone, email, website, mission and about text, address, city, country, latitude and longitude, rating and review counts, founding date, opening hours, price range, Messenger link, profile and cover photos. Groups: group ID, name, description, member count and privacy. Events: event ID, name, description, start and end time, the date sentence with its timezone, venue, coordinates, organizer and organizer ID, privacy, cancelled flag, interested and going counts, ticket link. Facebook does not publish every field for every result, so a field it does not show comes back null.
Can I export the data? Yes. Download your dataset as CSV, JSON, Excel, or XML directly from Apify.
Is this legal? You are responsible for complying with Facebook's terms of service and applicable laws. This actor only accesses publicly available search listings.
Can I schedule recurring runs? Yes. Use Apify's scheduler to run this actor daily, weekly, or on any custom interval.
What if I get no results for a query? Facebook may return no results for very specific or uncommon queries. Try a broader term or a different search type. The run still succeeds and charges nothing for the empty queries.
Can I scrape Facebook profiles or private content? No. This actor reads public listings and public page profiles only. It does not log in, and it does not access personal profiles, private groups, or any content behind a login.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

What input does the Facebook Search Scraper - Posts by Keyword accept?

FieldTypeWhat it doesDefault
queries required array One search term per line. Terms are de-duplicated, and a single line holding a comma- or newline-separated list is split for you. ["nike","apple"]
searchType string (3 options) What to search for. One type per run. pages
resultsPerQuery integer How many results to collect for each query, before the overall maximum applies. 10
maxItems integer Maximum number of results for the whole run. Left empty, it is queries x results per query. 10
enrichPages boolean Open each result on Facebook to collect contact details, counters, category and business information. Turn it off for a faster, cheaper run that returns only what the search listing shows. true
proxyConfiguration object Facebook blocks datacenter traffic quickly. Apify Proxy is used by default. {"useApifyProxy":true}

How much does the Facebook Search Scraper - Posts by Keyword cost?

from $8.00 per 1,000 results

Charged forWhat it isPrice each
Result item Facebook page match with basic metadata. $0.008 to $0.012
Page enrichment Fires per result when enrichPages is enabled. Bundles contact info, verified status, business details and mission. $0.012 to $0.018
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.00445 to $0.005

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Facebook Search Scraper - Posts by Keyword API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~facebook-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      "nike",
      "apple"
    ],
    "searchType": "pages",
    "resultsPerQuery": 10,
    "maxItems": 10,
    "enrichPages": true
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "queries": [
    "nike",
    "apple"
  ],
  "searchType": "pages",
  "resultsPerQuery": 10,
  "maxItems": 10,
  "enrichPages": true
}

What do users say about the Facebook Search Scraper - Posts by Keyword?

No reviews yet. Be the first.

How do I report an issue with the Facebook Search Scraper - Posts by Keyword?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Facebook Search Scraper - Posts by Keyword on Apify All scrapers