Facebook Events Scraper avatar

Facebook Events Scraper

Pricing

from $2.39 / 1,000 item extracteds

Go to Apify Store
Facebook Events Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldTypeRequiredDescription
startUrlsarrayNoDirect 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.
eventIdsarrayNoPlain Facebook event IDs to scrape directly. Use this when you already have numeric event IDs.
maxItemsintegerNoMaximum number of event records to save. Default is 10.
includePastEventsbooleanNoCollect organizer past-events lists instead of upcoming lists and allow past detail records.
proxyConfigurationobjectNoStandard 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

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.

GroupFields
Identity and provenancetype, discoveredVia, id, eventId, inputUrl, url, canonicalUrl, sourceUrl, sourceType, scrapedAt
Core event detailsname, description, isOnline, isCanceled, isPast, eventType, privacyInfo
Dates and timesformattedDate, dateTimeSentence, timezone, startTimestamp, endTimestamp, startISO, endISO, startDate, endDate, utcStartDate, utcEndDate, startTime, duration, durationSeconds
Venue and coordinateslocation, locationName, locationAddress, address, locationCity, locationCountry, locationLat, locationLng, latitude, longitude, onlineDetails
Hosts and organizershosts, organizators, organizedBy, hostName, hostUrl, hostId, hostType, hostPhotoUri, hostCount
Media and linksphoto, photos, photoUri, photoUrl, imageUrl, imageUri, imageCaption, video, videoUrl, videoThumbnailUri, videoThumbnailUrl, coverVideo, ticketUrl, ticketsInfo, externalLinks
Categories, series, and childrencategories, discoveryCategories, categoryLabel, categoryCount, parentEvent, parentEventId, siblingEvents, siblingEventIds, hasChildEvents, childEvents, eventFrequency
Engagement and compatibilityusersResponded, 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 start charge is applied when a run starts.
  • The primary item charge 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.
  • includePastEvents switches 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 ApifyClient
import os
client = 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().items
print(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."

More Facebook scrapers

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.

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.