The Facebook events API is gone. Here is what to use instead
Developers keep arriving at Meta's documentation expecting to search public events by keyword and city, the way you could years ago. That capability was withdrawn. This page explains exactly what remains, and what to do if you need event data anyway.
What the Graph API still does
The event object still exists, and you can still read events in one narrow situation: those belonging to a page or group you administer, with a token that carries the right permissions and an app that has passed review. That covers a venue reading back its own calendar. It does not cover anything else.
What it no longer does
- Public event search. Querying events by keyword, city or coordinates is not available to third-party apps. This is the endpoint most tutorials still describe, and it is the reason those tutorials end in an error.
- Reading arbitrary pages' events. Without administering the page, you have no route to its calendar.
- Attendee data. Guest lists are gone for third parties, for good reasons.
The pattern is consistent with what Meta did across the platform after 2018: permissions that let apps read broadly across the graph were closed, and what remains is scoped to assets you own.
What people try, and why it fails
| Attempt | Outcome |
|---|---|
| Applying for extended permissions | The permission that granted public event search is not on the list you can request. |
| A page access token for someone else's page | Requires that page's owner to install your app and grant it. |
| Old npm and PyPI wrappers | They wrap endpoints that no longer answer. Check the last release date before you install one; several popular ones stopped years ago. |
| Automating a logged-in account | Works until the account is restricted, and it puts you outside the legal position that protects reading public pages while signed out. |
The practical alternative
Everything you are trying to reach through the API is on the public event page already: title, date and time, venue with coordinates, description, ticket link, organizer and the response counts. A scraper reads those pages the way a visitor who is not signed in sees them and hands them back as records.
The Facebook Events Scraper does exactly that, and it fills the two gaps that hurt most:
- Keyword and city search. The thing the API took away. Give it
comedy,Prague, or both. - Any page's events. Point it at a venue's upcoming or past events without owning the page.
It behaves like an API in the ways that matter. You call it over HTTP, results land in a dataset you can read as JSON or CSV, and it plugs into schedules, webhooks, Make, Zapier and n8n. There is no app review, no token from Meta and no page ownership.
Calling it from code
curl -X POST "https://api.apify.com/v2/acts/alfalfa~facebook-events-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchQueries":["comedy New York"],"maxEvents":50}'
Poll the run, or register a webhook and let it call you when the run finishes. For long jobs avoid the synchronous endpoints; they cut off after a few minutes, which is the single most common integration mistake people make on the platform.
What you get back
One record per event, with utcStartDate and utcEndDate in ISO 8601, the venue including latitude and longitude, the ticket link, the organizing page, and the going and interested counts. Recurring events return every one of their dates rather than only the next. Optionally each event carries the organizer's published contact email.
Questions people ask
Is this allowed?
It reads only what Facebook shows to anyone without an account. A US court held in Meta v. Bright Data that Meta's terms do not bar scraping public data while logged out, and Meta dropped the remainder of that case. Using a logged-in account is a different matter, which is why this approach does not.
Will it keep working when Facebook changes things?
Facebook changes constantly, which is the honest answer any vendor should give you. What matters is how quickly breakage gets fixed. Report a problem on the Actor's Issues tab and expect a fix in about a day.
How much does it cost?
$5 per 1,000 events, with platform usage and residential proxies included, and no start fee. You are billed only for events that reach your dataset.
Try the Facebook Events Scraper Or send events to a calendar