Facebook Event Search Scraper
Pricing
from $3.99 / 1,000 results
Facebook Event Search Scraper
Facebook Event Search Scraper extracts event names, dates, locations, descriptions, organizers, categories, attendee data, and other public event information. Automate event discovery, market research, competitor analysis, audience research, and lead generation.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScraperForge
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Facebook Event Search Scraper — Discover Public Events by Keyword at Scale
Search Facebook Events by topic and export every matching public event as a clean row: event title, numeric event ID, a direct link to the event page, the keyword that found it, and a UTC scrape timestamp.
Feed it a list of topics — stand-up comedy, AI summit, techno, startup meetup Berlin — and it works through each one independently, up to 100,000 events per keyword. No Facebook account, no cookies, no login.
What is Facebook Event Search Scraper?
This Actor is a discovery engine for Facebook's public event search. It answers one question, quickly and cheaply:
"Which public Facebook events exist right now for these topics, and where do I find them?"
Facebook has no public API for searching events, and the events dashboard is an infinite-scroll interface with no export. This Actor drives that search programmatically, paginating cursor by cursor and streaming results into a dataset.
The output is deliberately compact — an ID, a title and a working URL per event. That makes it the ideal first stage of a pipeline: run this to find events, then feed the url column into an event-detail scraper when you need dates, venues, hosts and attendee counts.
What data can you extract?
| Field | Type | What it gives you |
|---|---|---|
event_id | string | Facebook's numeric event ID — a stable key for deduplication across runs |
title | string | Event title as shown in search results |
url | string | Direct link to the public Facebook event page |
query | string | Which of your keywords produced this row |
type | string | Always search_event — identifies the record type |
scrapedAt | string | UTC ISO timestamp of collection |
Scope, stated plainly: this Actor returns event discovery data. Dates, venues, descriptions, hosts, ticket links and attendee counts live on the event pages themselves and are not part of this output. That is a deliberate design choice — it keeps discovery fast and inexpensive at scale.
Why teams scrape Facebook events
For event aggregators and community builders
A topic-based event feed for a city or scene is tedious to maintain by hand and stale within days. One scheduled run rebuilds it, and deduplicating on event_id gives you a clean "what's new this week" list automatically.
For event-services sales teams
Every event has an organiser who needs something: catering, AV, ticketing, photography, venues, sponsorship. Searching your category and city produces a live pipeline of organisers who are actively planning something right now — far better timing than a static business list.
For market and competitive research
Counting events per keyword over time is a genuine measure of scene activity. Run the same keyword weekly and you can see whether a niche is growing, and which promoters are publishing the most.
For content and community curation
Newsletters, city guides, Discord servers and calendars all need a steady supply of relevant events. This turns curation into a filter step rather than a search step.
For researchers
Public event volume by topic and city is a useful proxy for cultural and commercial activity, and the compact row shape makes large longitudinal datasets cheap to build.
How to scrape Facebook events step by step
- Open the Actor and add your search terms in What should we search for? — one keyword or phrase per line.
- Set How many events per keyword. Start at 10–50 while you check relevance.
- Leave Proxy on Apify Residential — this matters (see below).
- Click Start. Rows stream into the Output tab as each keyword is worked through.
- Export as CSV, Excel or JSON, or pull the dataset from the Apify API.
⬇️ Input
Example input
{"startUrls": ["stand-up comedy", "live music", "AI summit"],"maxEvents": 200}
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array of strings | — (required) | Your search terms, one per line (e.g. "stand-up comedy", "startup meetup Berlin"). Each is searched independently. |
maxEvents | integer | 10 | Maximum events collected per keyword, from 1 to 100,000. Higher values mean more pagination and longer runs. |
proxyConfiguration | object | Apify Proxy, RESIDENTIAL | Keep residential enabled. Facebook blocks Apify's datacenter IP ranges, so cloud runs without residential proxy usually return nothing. Blocked requests are retried up to 3× with automatic escalation from datacenter to residential. |
Field-name note: the input is called
startUrlsfor backwards compatibility, but it takes keywords, not URLs.
Getting better results
- Short, specific phrases beat broad ones.
techno Berlinreturns fresher, more relevant events thanevents. - Pair a topic with a place to keep results local:
yoga retreat Lisbon. - Run several narrow keywords instead of one wide one — coverage improves substantially.
⬆️ Output
Example output
{"type": "search_event","event_id": "1234567890123456","title": "Friday Night Stand-Up — Open Mic","url": "https://www.facebook.com/events/1234567890123456/","query": "stand-up comedy","scrapedAt": "2026-08-10T09:41:07Z"}
Rows are flat, so CSV and Excel exports load cleanly with no flattening or post-processing.
Usage recipes
Cover a whole scene in one city
{"startUrls": ["live music Berlin","techno Berlin","jazz Berlin","open mic Berlin"],"maxEvents": 200}
Industry-wide discovery
{"startUrls": ["AI conference", "machine learning summit", "data science meetup"],"maxEvents": 2000}
Weekly "what's new" monitor
Save the input as a Task, attach a weekly Schedule, and compare event_id values between runs — anything unseen is a newly published event. Route it to Slack or a Google Sheet and the feed maintains itself.
Two-stage enrichment pipeline
Run this Actor for discovery, export the url column, then pass those URLs to a Facebook event-detail Actor to add dates, locations, hosts and attendee counts. Discovery stays cheap; enrichment is applied only to events you actually care about.
How does this compare to Facebook's official Graph API?
Facebook removed public event search from the Graph API years ago. The endpoints that remain require a reviewed app with elevated permissions and are scoped to events your own app or Page manages — there is no sanctioned way to search all public events by keyword.
This Actor works from the public events search interface that any logged-out visitor can use, which is why it needs no app, no review process and no token. The trade-off is scope: you get the discovery fields the search surface exposes, not the full event object the old API returned.
Integrate and automate
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraperforge/facebook-event-search-scraper").call(run_input={"startUrls": ["stand-up comedy", "live music"],"maxEvents": 100,})for ev in client.dataset(run["defaultDatasetId"]).iterate_items():print(ev["query"], "|", ev["title"], "|", ev["url"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('scraperforge/facebook-event-search-scraper').call({startUrls: ['stand-up comedy', 'live music'],maxEvents: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
REST API
curl -X POST "https://api.apify.com/v2/acts/scraperforge~facebook-event-search-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":["stand-up comedy"],"maxEvents":100}'
n8n, Make, Zapier and AI agents
Trigger the Actor from n8n, Make, Zapier or an MCP-capable AI agent using Apify's integrations — for example, an agent that searches a topic, filters the titles, and drafts outreach to the organisers.
Schedules and webhooks
Attach a Schedule for a rolling event feed, and use webhooks to notify your system on completion. Results can also be pushed directly into Google Sheets, Airtable, Slack or Google Drive.
Pricing and what you are charged for
Pay-per-event: a small Actor-start charge plus a charge per event row delivered to your dataset. Because each row is small and the Actor does one focused job, large-scale discovery stays inexpensive.
Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run.
Note on proxies: Apify Residential proxy traffic is billed separately by the platform according to your plan, and residential is effectively required here.
Limits, reliability and blocking
- Residential proxy is effectively mandatory. Facebook blocks Apify's datacenter ranges; runs without residential typically return zero rows. This is the single most common cause of an empty run.
maxEventsis per keyword, so three keywords at 500 each can return up to 1,500 rows.- Facebook's event search has finite depth for any given phrase. A narrow keyword may return fewer events than your cap — that is the result set, not a failure.
- Public events only. Private and invite-only events never appear in public search.
- Results vary slightly by proxy location, because Facebook tailors event search geographically.
- Default run options are 4 GB memory and a 1-hour timeout; raise the timeout for long keyword lists at high caps.
Is it legal to scrape Facebook events?
This Actor reads publicly listed events — the same results any logged-out visitor sees in Facebook's own event search. It does not log in, join events, access private events, or bypass any protection.
Event titles and pages are published by organisers precisely so that people find them. If you use the data for outreach to organisers, that outreach is still subject to GDPR, ePrivacy and local marketing rules — a public listing is not consent to be contacted commercially. You are responsible for ensuring your use complies with Facebook's terms and applicable law.
❓ Frequently asked questions
Do I need a Facebook account or cookies?
No. The Actor reads public event search results without any authentication.
Does it return event dates and locations?
No — it returns event ID, title and URL. Use those URLs with an event-detail scraper to add dates, venues, hosts and attendee counts.
Why is the input field called startUrls if it takes keywords?
Backwards compatibility with earlier versions. Put plain search terms in it; URLs are not expected.
Can I search by city?
Yes, indirectly — include the city in the keyword, for example "comedy night Amsterdam".
Why did my run return zero events?
Almost always the proxy. Confirm Apify Proxy is enabled with the RESIDENTIAL group and run again.
Why did I get fewer events than maxEvents?
Facebook had no more results for that phrase. Add more keyword variations to widen coverage.
How do I get only new events each week?
Schedule the run and deduplicate on event_id. Anything not present in your previous export is new.
Can I scrape private or invite-only events?
No. Only publicly listed events are accessible.
Which export format should I use?
CSV or Excel — the rows are flat, so no flattening is needed. JSON works equally well for pipelines.
How many events can one run collect?
Up to 100,000 per keyword, multiplied by the number of keywords, subject to how deep Facebook's search goes for each phrase.
🔗 Related scrapers
- Facebook Groups Search Scraper — find public groups by keyword, the community equivalent of this Actor.
- Facebook Posts Search Scraper — search public Facebook posts by keyword.
- Facebook Search Scraper — discover Facebook business pages by category and location.
- Facebook Ads Library Scraper — see which of these organisers and brands are running paid ads.
Browse the full collection on the ScraperForge profile.
💬 Feedback
Need event dates, location fields, or a discovery-plus-enrichment pipeline in one Actor? Open an issue on the Issues tab of this Actor.