Facebook Events Scraper
Pricing
from $2.39 / 1,000 item extracteds
Facebook Events Scraper
Export public Facebook event details and organizer event lists with dates, venues, hosts, ticket links, media, and engagement data to CSV, JSON, Excel, or API.
Pricing
from $2.39 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Facebook event details and organizer event lists to a clean dataset you can export to CSV, JSON, Excel, Google Sheets, or consume through the Apify API.
What does Facebook Events Scraper do?
Facebook Events Scraper collects public event pages and public organizer hosted-event lists. Use it to monitor event calendars, enrich lead lists, track local event activity, or build research datasets without manually opening every event page.
The Actor accepts direct Facebook event URLs, numeric event IDs, and organizer hosted-event URLs such as facebook.com/{page}/upcoming_hosted_events.
Who is it for?
- Event marketers building outreach lists
- Local media and community researchers tracking upcoming events
- Tourism, venue, and entertainment teams monitoring public calendars
- Data teams enriching event IDs with names, dates, venues, hosts, and media
- Analysts who need repeatable exports instead of manual copy-paste work
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | No | Direct event URLs, page/profile hosted-event URLs, or group event-list URLs. Keyword search URLs are intentionally not exposed because current public search routes return empty results. |
eventIds | array | No | Plain Facebook event IDs to scrape directly. Use this when you already have numeric event IDs. |
maxItems | integer | No | Maximum number of event records to save. Default is 10. |
includePastEvents | boolean | No | Collect organizer past-events lists instead of upcoming lists and allow past detail records. |
proxyConfiguration | object | No | Standard Apify proxy configuration. The default uses Apify Residential Proxy with session rotation on inaccessible/private/cookies, rate-limit, proxy, network, and TLS failures. |
Ready-to-run examples
- Facebook Events Scraper: Event Details extracts one public event with dates, venue, host, ticket, media, engagement, and provenance fields.
- Export Facebook Organizer Events Data collects up to five public events from an organizer's hosted-events page for CSV, JSON, or API workflows.
- Facebook Events API Example for Developers demonstrates mixed organizer and event-ID input with deduplicated structured output.
Every example is a public Apify task with a safe input, the overview dataset view, a current-build run, and verified non-empty output. Open one to inspect its input or run it as-is.
Example input
{"startUrls": [{ "url": "https://www.facebook.com/events/1855253805343101" }],"maxItems": 1,"includePastEvents": false}
Output
Each dataset item represents one Facebook event.
| Group | Fields |
|---|---|
| Identity and provenance | type, discoveredVia, id, eventId, inputUrl, url, canonicalUrl, sourceUrl, sourceType, scrapedAt |
| Core event details | name, description, isOnline, isCanceled, isPast, eventType, privacyInfo |
| Dates and times | formattedDate, dateTimeSentence, timezone, startTimestamp, endTimestamp, startISO, endISO, startDate, endDate, utcStartDate, utcEndDate, startTime, duration, durationSeconds |
| Venue and coordinates | location, locationName, locationAddress, address, locationCity, locationCountry, locationLat, locationLng, latitude, longitude, onlineDetails |
| Hosts and organizers | hosts, organizators, organizedBy, hostName, hostUrl, hostId, hostType, hostPhotoUri, hostCount |
| Media and links | photo, photos, photoUri, photoUrl, imageUrl, imageUri, imageCaption, video, videoUrl, videoThumbnailUri, videoThumbnailUrl, coverVideo, ticketUrl, ticketsInfo, externalLinks |
| Categories, series, and children | categories, discoveryCategories, categoryLabel, categoryCount, parentEvent, parentEventId, siblingEvents, siblingEventIds, hasChildEvents, childEvents, eventFrequency |
| Engagement and compatibility | usersResponded, usersGoing, usersInterested, paidContent, isClassEvent, isLiveAudioRoom, isRemoteLearningClass, isRemoteLearningCourse, groupEventPinnedToFeatured, hasRecordingAvailable |
usersGoing and usersInterested are included as explicit null compatibility aliases when only a combined response count is publicly available.
Example output
{"type": "event","eventId": "1855253805343101","name": "Public event name","url": "https://www.facebook.com/events/1855253805343101","dateTimeSentence": "Sat, Aug 9 at 10:00 AM UTC+02","utcStartDate": "2026-08-09T08:00:00.000Z","hostName": "Event organizer","locationName": "Venue name","usersResponded": 123,"discoveredVia": "event","scrapedAt": "2026-08-01T14:30:00.000Z"}
Pricing
This Actor uses pay-per-event pricing:
- A small one-time
startcharge is applied when a run starts. - The primary
itemcharge is applied for each Facebook event record saved to the dataset. - Failed inputs that produce no dataset items do not create per-item charges.
- See the live Pricing tab for current rates.
Use maxItems to control spend. Organizer lists can contain several events, so set a low limit for test runs and increase it once the output matches your workflow.
Limits and behavior
- Only public Facebook surfaces are supported.
- Private events, login-only pages, deleted events, and blocked pages may not return data.
- Organizer list inputs are deduplicated by event ID before enrichment.
includePastEventsswitches organizer list collection from upcoming to past events.- If all inputs fail or produce no records, the Actor fails clearly instead of returning a silent empty success.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/facebook-events-scraper').call({eventIds: ['1855253805343101'],maxItems: 1,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/facebook-events-scraper').call(run_input={'eventIds': ['1855253805343101'],'maxItems': 1,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~facebook-events-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"eventIds":["1855253805343101"],"maxItems":1}'
MCP and AI agents
Use this Actor through the official Apify MCP server. The focused URL exposes only Facebook Events Scraper.
$claude mcp add --transport http apify-facebook-events "https://mcp.apify.com?tools=fetch_cat/facebook-events-scraper"
{"mcpServers": {"apify-facebook-events": {"url": "https://mcp.apify.com?tools=fetch_cat/facebook-events-scraper"}}}
Example prompts:
- "Run Facebook Events Scraper for this event ID and summarize the date, venue, and host."
- "Collect up to 5 upcoming Sziget Festival Facebook events and return the dataset as a table."
- "Export public Facebook event URLs from this organizer list and include ticket links when available."
Related actors
More Facebook scrapers
- Facebook Ads Library Scraper
- Facebook Comments Scraper
- Facebook Marketplace Scraper
- Facebook Pages Scraper
- Facebook Reels Scraper
FAQ
Can I export public Facebook events to CSV or JSON without logging in?
Yes. Provide public Facebook event URLs or public organizer event-list URLs, then export Facebook events data from the Apify dataset as CSV, JSON, Excel, Google Sheets, or via API.
Can I scrape Facebook organizer event lists through an API?
Yes. Use this Actor as a Facebook events API endpoint through Apify: send organizer URLs, set maxItems, and read normalized event records from the dataset.
Can it scrape private Facebook events?
No. The Actor is designed for public event pages and public organizer event lists only.
Why did my organizer URL return fewer events than expected?
Facebook may expose only a limited public list for anonymous visitors. The Actor saves every public event it can discover and logs the discovered count.
Can I scrape past events?
Yes. Set includePastEvents to true and provide an organizer hosted-events URL.
Does it support keyword search?
No. Keyword search is deferred because current public search routes return empty results and would create unreliable empty runs.
How do I keep a test run cheap?
Use one direct eventIds value or one direct event URL with maxItems: 1.
Support and reproducibility
Open an issue from the Actor page if a run fails, returns fewer events than expected, or produces incorrect fields. Include the run ID or run URL, exact input JSON, expected output, actual output, and one reproducible public Facebook URL.