Facebook Event Scraper API
Our Facebook event scraper targets a public event page and returns structured JSON: the event name, description, start and end time, location, host, and the attending and interested counts. It reads schema.org event JSON-LD, Open Graph tags, and any embedded event entity. Facebook gates event pages behind a login for logged-out requests, so the endpoint is honest about when an event renders.
Quickstart
curl "https://api.facebookscraperapi.com/api/v1/facebook/event?url=https://www.facebook.com/events/1234567890&api_key=$API_KEY" import requests
BASE = "https://api.facebookscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass an event URL or id. Response follows the documented event shape below.
data = requests.get(
f"{BASE}/api/v1/facebook/event",
params={
"url": "https://www.facebook.com/events/1234567890",
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["name"])
print("when:", data["start_time"], "->", data["end_time"])
print("where:", data["location"])
print("host:", data["host"], "| going:", data["attending_count"]) Response
{
"id": "1234567890",
"url": "https://www.facebook.com/events/1234567890",
"name": "Downtown Summer Food Festival",
"description": "A weekend of local food trucks, live music, and family activities in the city park.",
"start_time": "2026-08-15T17:00:00-05:00",
"end_time": "2026-08-15T22:00:00-05:00",
"location": "City Park, Austin, TX",
"host": "Austin Events Co",
"attending_count": 1240,
"interested_count": 5380,
"cover_image": "https://scontent.xx.fbcdn.net/v/t39.30808-6/example_event_cover.jpg",
"thumbnail": "https://scontent.xx.fbcdn.net/v/t39.30808-6/example_event_cover.jpg",
"is_online": false,
"source": "facebook",
"data_source": "json-ld"
} | Field | Type | Description |
|---|---|---|
id | string | The event id from the URL. |
url | string | The canonical event URL. |
name | string | The event name from JSON-LD, the event entity, or og:title. |
description | string | The event description from JSON-LD, the entity, or og:description. |
start_time | string | The event start time, ISO from JSON-LD or the entity's start timestamp. |
end_time | string | The event end time when present, in the same form as start_time. |
location | string | The venue or place name from JSON-LD location or the event place. |
host | string | The event host or organizer name when exposed. |
Why it is hard
Facebook gates event pages behind a login for logged-out visitors: the www event URL commonly returns a bare app shell with no event data, and the official Graph API only reads events for Pages you administer. So a populated public event generally needs an authenticated session.
Use it for
Event discovery
Calendar building
Attendance signals
Host tracking
How it compares
| Our API | DIY (requests / headless) | Facebook Graph API | |
|---|---|---|---|
| Read a public event | When it renders, else honest diagnostic | Usually a bare CSR shell | Events for Pages you administer only |
| Setup | API key only | Residential proxies, headless browser, parsers | Meta app plus a Page access token |
| Time, location, host | Returned when the event renders | You parse it yourself | Available for your own Pages |
| Anti-bot and proxies | Built in, US residential | You build and maintain it | Not applicable |
| Attending / interested | From the entity when present | You parse it yourself | Via Insights, admin only |
| Output | Flat, validated JSON | Whatever you parse | Nested JSON you map yourself |
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is a Facebook event scraper?
A Facebook event scraper reads a public event page and returns it in a structured format. Our Facebook event scraper API takes an event URL or id and, when the event renders, returns the name, description, start and end time, location, host, attending and interested counts, and cover image as JSON. The extractor merges schema.org event JSON-LD, Open Graph tags, and any embedded event entity.
Can I scrape a public Facebook event without logging in?
Often not, and the endpoint is honest about it. Facebook gates event pages behind a login for logged-out visitors, and the www event URL commonly returns a bare app shell. When that happens, the endpoint returns a clear diagnostic rather than a fabricated event. For a reliably populated event, run the endpoint with an authenticated session.
What does the event endpoint return when it succeeds?
When an event page renders, you get the event id, canonical URL, name, description, start and end time as ISO strings, location, host, attending and interested counts, cover image, an is_online flag, and a data_source flag showing whether the fields came from JSON-LD, the entity, or og tags. Counts are null when the entity is not present.
Why are attending and interested counts sometimes null?
Those counts live in the embedded event entity, not in JSON-LD or Open Graph. When a page renders JSON-LD and og tags but not the full entity, you still get the name, time, and location, but attending_count and interested_count come back null. We never estimate engagement counts from partial data.
Do I need a Facebook API key or app?
No. You authenticate with a single facebookscraperapi key. The official Graph API only reads events for Pages you administer, so it cannot return a public event on a Page you do not own. Our endpoint reads the public event page when it renders, with no app review. The free tier includes 1,000 requests.
How should I use this endpoint given the login gate?
Treat it as an event endpoint that returns the documented shape when a page renders and reports a classifiable diagnostic when Facebook walls or shells the page logged-out. Teams that need consistent event data run it with an authenticated session, and use the honest failure signal to detect and retry blocked captures instead of accepting empty rows.