# Facebook Event Scraper (`data_minds/facebook-event-scraper`) Actor

Scrape public Facebook events with no login or cookies. Get dates, places, coordinates, going and interested counts, tickets, organizers and descriptions from searches, page or group lists and event links. Bulk input, date filters. Export JSON, CSV or Excel for event discovery.

- **URL**: https://apify.com/data_minds/facebook-event-scraper.md
- **Developed by:** [Data Minds](https://apify.com/data_minds) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**Facebook Event Scraper** is an Apify Actor that extracts public Facebook events from search queries, search and explore links, page and group event lists, or single event links. Get dates, places, going and interested counts, tickets and organizers as JSON, CSV or Excel, with no login or cookies. Pricing is pay per event: **$5.00 per 1,000 events on the Free plan, down to $3.50 on the Gold plan**. [🚀 Try it free](https://apify.com/data_minds/facebook-event-scraper)

### What can Facebook Event Scraper do?

- 🔎 **Search and links in one run** - run a facebook event search with queries like "Sport New York", or paste event, search, explore, page and group links. It covers facebook group events and facebook page events. As a facebook event search scraper it also handles bulk lists.
- 📅 **Date and category filters** - narrow results to facebook events by date, search facebook events by location with queries like "Music Berlin", and keep event categories such as Music, Food or Art.
- ⚡ **Live results** - each event lands in the Output table as soon as it is read, so you can watch the table fill.
- 🎫 **Attendance and tickets** - collect facebook event attendance (going, interested, responded) and facebook event tickets (link, price, provider).
- 🙈 **No login needed** - scrape facebook events without login: no Facebook account, login or cookies are required.
- 📦 **Easy export** - get facebook events to excel or facebook events to json from the Dataset tab. Use the API for a facebook events download.
- 🔄 **Platform features** - schedules, webhooks, integrations and the Apify API work out of the box.

#### What data can I extract from Facebook?

Each event is one row in the main table. Related tables hold organizers, suggested events and the status of every input. The [Facebook](https://www.facebook.com) data below is public event data only.

| Field | Description |
|---|---|
| 🔖 `inputUrl`, `url`, `id`, `name`, `mobileUrl` | The query or link that produced the event, the event link, event id, title and a mobile link. |
| 🖼 `imageUrl`, `imageCaption` | Cover image link and its accessibility caption. |
| 🕒 `dateTimeSentence`, `utcStartDate`, `startTime`, `endTime`, `timezone` | Date and time as shown on Facebook, start and end in UTC (ISO 8601), a short start label and the time zone. |
| ⏳ `duration`, `durationMinutes`, `isPast`, `isCanceled`, `isHappeningNow` | Duration text and minutes, plus flags for past, canceled and running events. |
| 🔁 `eventFrequency`, `hasChildEvents`, `childEventsCount`, `childEvents` | One-off or recurring events and the other occurrences of a series. |
| 📍 `address`, `location`, `latitude`, `longitude`, `cityPage` | One-line address, place details (name, country code, street, city), coordinates and the city page. |
| 🌐 `isOnline`, `onlineEventType` | Whether the event is one of the online events and what kind of online event it is. |
| 👥 `usersGoing`, `usersInterested`, `usersResponded`, `usersInterestedIsApproximate` | Going, interested and responded counts, and whether the interested count is rounded. |
| 🎫 `ticketsInfo`, `paidContent` | Ticket links, price, title, subtitle and provider, and whether a non-free price is shown. |
| 🎤 `organizedBy`, `organizators`, `hosts`, `lineup` | Organizer name, organizers and event hosts with link and verified flag, and the event lineup of performers or speakers. |
| 📝 `description`, `externalLinks`, `hashtags`, `discoveryCategories`, `categories` | Full event description, links and hashtags found in it, and the category labels. |
| 🔒 `eventType`, `privacyInfo` | Audience type of the event and its privacy label. |
| 🧩 `hasRecordingAvailable`, `isClassEvent`, `isLiveAudioRoom`, `isRemoteLearningClass`, `isRemoteLearningCourse`, `isSaleEvent`, `groupEventPinnedToFeatured` | Flags for event formats and for group events pinned as featured. |
| ✏ `nameChanged`, `dateChanged` | Whether the name or date was edited. |
| 🔗 `relatedEvents`, `parentEventId` | Events Facebook suggests next to this one, and the series id you asked for when a link pointed to a recurring series. |
| 📥 `sourceType`, `sourceRank`, `scrapedAt` | Input type (search, explore, page, group or event), position within its input and the collection time in UTC. |

Whether you need facebook event data for a dashboard or facebook events data for analysis, every field above is public event data. Only public data is returned. A field is empty when Facebook does not show it for an event.

### What can you do with the data from Facebook events?

**🎯 Event discovery**

1. Add `searchQueries` such as "Music Berlin" and set `dateRange` to `this_weekend`.
2. Set `category` to the types you like and run the Actor.
3. Use the `dateTimeSentence`, `address` and `ticketsInfo` columns for events near me style lists and upcoming events guides.

**📣 Event lead generation**

1. Paste page links into `urls` to cover event promoters you want to reach.
2. Export facebook event organizers from the organizers table, with host names and links, for event organizer research.
3. Rank events by `usersGoing` and `usersInterested` to pick the biggest audiences.

**🕵 Competitor event monitoring**

1. Add the links of rival pages and groups to `urls`, using their upcoming or past events lists.
2. Schedule the Actor and compare runs to see new and past events.
3. Send results to a spreadsheet or webhook for competitor event monitoring.

**🏟 Venue research and trend analysis**

1. Search a city with `searchQueries` for market research and keep `maxEvents` high.
2. Group rows by `location` and `discoveryCategories` for venue research.
3. Compare counts over time for event trend analysis and event marketing research.

**🗓 Event aggregator**

1. Collect local events data and facebook event listings from several queries in one run.
2. Use `utcStartDate`, `endTime` and `isOnline` to fill an event calendar or an event listing website.

### How do I use Facebook Event Scraper?

1. Open **Facebook Event Scraper** on Apify and click **Try for free**.
2. Paste links into **Event links**, add **Search queries**, or use both.
3. Set **Maximum events**; use 0 to collect every event that can be found.
4. Pick a **Date range** and a **Category** if you want filters.
5. Click **Start** and watch the log and the Output tab fill in.
6. Open the **Dataset** tab and export as JSON, CSV or Excel, or call the API.

### How much does it cost to scrape Facebook events?

Facebook Event Scraper uses pay-per-event pricing: you pay for each event saved to the main table. Platform usage is billed in addition. The prices below come from the live Apify pricing for this Actor.

| Plan | Price per event | Per 1,000 events |
|---|---|---|
| 🆓 Free | $0.005 | $5.00 |
| 🥉 Bronze | $0.0045 | $4.50 |
| 🥈 Silver | $0.004 | $4.00 |
| 🥇 Gold | $0.0035 | $3.50 |

A run also pays one start event of $0.00005 per GB of memory, minimum one. This Actor runs with 1 GB (1024 MB) of memory by default, so the start event is 1 event = $0.00005. Organizers, related events and inputs tables, failed events and skipped events are not charged as results.

Worked example: 200 events on the Silver plan cost 200 x $0.004 = $0.80 for results, plus the $0.00005 start event, plus platform usage.

#### Is scraping Facebook events free?

You can try Facebook Event Scraper on the Free plan, where each event costs $0.005 ($5.00 per 1,000 events). Higher plans pay less per event, down to $3.50 per 1,000 on Gold. Set a maximum cost per run to cap spending.

#### How much does Facebook Event Scraper cost per 1,000 results?

One result is one event. For 1,000 events you pay $5.00 on the Free plan, $4.50 on Bronze, $4.00 on Silver and $3.50 on Gold, plus the $0.00005 start event and platform usage billed in addition. Use the Maximum events field to stop at the number you need.

### Input

Give the Actor search queries, links, or both, and you can get facebook events in bulk. At least one query or link is required. The date range filter and the category filter are optional, like all other fields.

| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
| `urls` | array of strings | No\* | Event links, search links (also with filters), explore links, page links (`/upcoming_hosted_events` or `/past_hosted_events`) and group links (`/groups/NAME/events`), one per line. | Example: `https://www.facebook.com/events/search/?q=Sport%20New%20York` |
| `searchQueries` | array of strings | No\* | Topics ("Sport"), places ("New York") or both ("Sport New York"), one search per line. | Default: empty |
| `maxEvents` | integer | No | Maximum events in total across all queries and links. Use 0 for every event that can be found. | Default: 10 |
| `dateRange` | string | No | Only events that touch this period: `any`, `today`, `tomorrow`, `this_week`, `this_weekend`, `next_week`, `7d`, `14d`, `30d`, a date like `2026-10-20` or a period like `2026-10-20~2026-10-27`. Does not apply to single event links. | Default: `any` |
| `category` | string | No | Only events in these categories, such as Music, Food, Art, Sports or Party. Separate several with commas; either one matches. Does not apply to single event links. | Default: empty |
| `proxyConfiguration` | object | No | Optional connection settings. Leave the default and the Actor handles the connection automatically. | Default: `{"useApifyProxy": false}` |

\*Provide at least one of `urls` or `searchQueries`.

Example input:

```json
{
  "urls": ["https://www.facebook.com/events/search/?q=Sport%20New%20York"],
  "searchQueries": ["Music Berlin"],
  "maxEvents": 50,
  "dateRange": "this_weekend",
  "category": "Music, Food",
  "proxyConfiguration": { "useApifyProxy": false }
}
```

### Output

Results go to the Apify dataset. Open the **Output** tab to browse the table views (overview, schedule, place, attendance, tickets, organizers, details, related events and source) and export to JSON, CSV, Excel, XML or HTML from the Dataset tab or the API. Each event is one row, and the main table is the only one billed.

Event row (main table):

```json
{
  "inputUrl": "Sport New York",
  "url": "https://www.facebook.com/events/1234567890123456/",
  "id": "1234567890123456",
  "name": "Example City Sports Expo",
  "eventFrequency": "SINGLE",
  "eventType": "PUBLIC_TYPE",
  "privacyInfo": { "title": "Public", "iconName": "globe-asia" },
  "imageUrl": "https://example.com/cover.jpg",
  "imageCaption": "Example cover image",
  "dateTimeSentence": "Tuesday 3 November 2026 at 12:00 EST",
  "utcStartDate": "2026-11-03T17:00:00.000Z",
  "startTime": "Tue, 3 Nov at 12:00 EST",
  "duration": "4 hours",
  "isPast": false,
  "isCanceled": false,
  "address": "1 Example Street, Example City, NY 10001, United States",
  "location": { "name": "Example Arena", "countryCode": "US", "city": "Example City" },
  "description": "Join us for an example event. #sports",
  "externalLinks": ["https://example.com"],
  "discoveryCategories": ["Sports"],
  "usersGoing": 414,
  "usersInterested": 3345,
  "usersResponded": 3759,
  "ticketsInfo": { "buyUrl": "https://example.com/tickets", "price": "USD 20", "title": "Tickets", "subtitle": null, "ticketProvider": "Example Tickets" },
  "paidContent": true,
  "organizedBy": "Example Organizer",
  "organizators": [{ "id": "100000000000001", "url": "https://example.com/organizer", "name": "Example Organizer", "isVerified": false }],
  "isOnline": false,
  "hasChildEvents": false,
  "childEvents": [],
  "hasRecordingAvailable": false,
  "isClassEvent": false,
  "isLiveAudioRoom": false,
  "isRemoteLearningClass": false,
  "isRemoteLearningCourse": false,
  "groupEventPinnedToFeatured": false,
  "endTime": "2026-11-03T21:00:00.000Z",
  "timezone": "EST",
  "durationMinutes": 240,
  "isHappeningNow": false,
  "onlineEventType": null,
  "latitude": 40.75,
  "longitude": -73.99,
  "cityPage": { "id": "100000000000002", "name": "Example City" },
  "categories": [{ "label": "Sports", "url": "https://example.com/category", "id": "1" }],
  "hosts": [{ "id": "100000000000001", "url": "https://example.com/organizer", "name": "Example Organizer", "isVerified": false, "type": "Page", "profilePictureUrl": "https://example.com/host.jpg" }],
  "hashtags": ["sports"],
  "usersInterestedIsApproximate": false,
  "childEventsCount": 0,
  "lineup": [],
  "nameChanged": false,
  "dateChanged": false,
  "isSaleEvent": false,
  "relatedEvents": [],
  "parentEventId": null,
  "mobileUrl": "https://example.com/m/1234567890123456",
  "sourceType": "search",
  "sourceRank": 1,
  "scrapedAt": "2026-10-18T10:00:00Z"
}
```

Organizers table (one row per host of each event):

```json
{
  "eventId": "1234567890123456",
  "eventName": "Example City Sports Expo",
  "eventUrl": "https://www.facebook.com/events/1234567890123456/",
  "hostId": "100000000000001",
  "hostName": "Example Organizer",
  "hostUrl": "https://example.com/organizer",
  "isVerified": false,
  "hostType": "Page",
  "profilePictureUrl": "https://example.com/host.jpg",
  "scrapedAt": "2026-10-18T10:00:00Z"
}
```

Related events table (one row per suggested event):

```json
{
  "eventId": "1234567890123456",
  "eventName": "Example City Sports Expo",
  "relatedEventId": "6543210987654321",
  "relatedEventUrl": "https://www.facebook.com/events/6543210987654321/",
  "relatedEventName": "Example Fun Run",
  "dateTimeSentence": "Saturday 7 November 2026 at 09:00 EST",
  "place": "Example Park",
  "usersGoing": 120,
  "usersInterested": 560,
  "scrapedAt": "2026-10-18T10:00:00Z"
}
```

Inputs table (one row per query or link you gave, including failed ones):

```json
{
  "input": "Sport New York",
  "type": "search",
  "status": "ok",
  "events": 50,
  "error": null
}
```

A `SUMMARY` record in the key-value store holds run totals: `events`, `eventsBilled`, `requests`, `rateLimitPauses`, `durationSeconds`, `firstEventAfterSeconds`, `rejectedByFilters` and `inputs`.

#### Notes and limitations

- Only public events are returned. Private, deleted or age-restricted events are skipped; the reason appears in the run log, and for single event links also in the Inputs table.
- Date range and category filters do not apply to single event links.
- For a page or group link, only the events on its first page can be collected. Use search queries to find more.
- Some keywords return no public events. Try a more specific query.
- If the site asks the Actor to slow down, it pauses and may return fewer events than requested.
- Going and interested counts can be missing for some events, and the interested count can be rounded (`usersInterestedIsApproximate`).
- Results can differ from what you see when logged in to Facebook.

### FAQ

#### Is it legal to scrape Facebook events?

Facebook Event Scraper collects only publicly visible event data. You are responsible for complying with applicable laws and the site's terms, and personal data such as organizer names may fall under GDPR or CCPA. Read [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/). This is not legal advice.

#### How to scrape Facebook events step by step?

Add search queries or links, set Maximum events, and optionally a date range and category. Start the run, then export the Dataset. Each event row has its date, place, attendance, tickets and organizers. The section above, How do I use Facebook Event Scraper, lists every step, so you can follow it from the first click.

#### Do I need a Facebook account or cookies?

No. Facebook Event Scraper works without a Facebook account, login or cookies, so you can scrape Facebook events without login. It reads only what a visitor can see, which means private events and anything behind a login are not available. You do not need an API key from Facebook either.

#### How many events can I get per run?

Set Maximum events to the number you need, or 0 to collect every event that can be found. Each event is saved as soon as it is read, so partial results are available during the run. The number you actually get depends on how many matching public events exist for your queries and links.

#### How do I export Facebook events to CSV or Excel?

Open the Dataset tab of your run, choose a view such as Overview or Schedule, and pick CSV, Excel, JSON, XML or HTML. You can also download the same data through the Apify API. Organizers, related events and inputs have their own tables, so you can export each one on its own.

#### Can I schedule runs or use webhooks and integrations?

Yes. Use Apify schedules for scheduled runs of Facebook Event Scraper, daily or weekly, and add webhooks to start other tools when a run finishes. Results can flow to spreadsheets, databases and automation platforms through Apify integrations. This is useful for event monitoring where you compare new events against earlier runs.

#### Can I use Facebook Event Scraper through the API or MCP?

Yes. You can start runs and fetch results with the Apify API and clients, and connect the Actor to AI tools through the Apify MCP server. This makes it a practical facebook events scraper and Facebook events API alternative for your own apps. See the [Apify API documentation](https://docs.apify.com/api/v2) for the details.

#### Why am I getting fewer events than expected?

Common reasons are filters that are too narrow, queries with few public events, private or deleted events, and pauses when the site asks the Actor to slow down. Page and group links give only their first page of events. Check the Inputs table for each input status and the run log for skipped events, then widen the filters.

#### Facebook Event Scraper not working?

Open the Inputs table and the run log first: each input shows a status, and failed inputs show a reason. If an input shows no events, try a more specific query, a wider date range or a different link. If the problem continues, open a ticket in the Issues tab with your run link.

### Related Actors

| Actor | Use it to |
|---|---|
| 🔗 [Facebook Pages Scraper](https://apify.com/data_minds/facebook-pages-scraper) | Extract Facebook page details such as emails, phones, likes, followers, business hours and social links for organizers and venues. |
| 🔗 [Facebook Reels Scraper](https://apify.com/data_minds/facebook-reels-scraper) | Extract Facebook Reels captions, play counts, reactions, hashtags and video links. |
| 🔗 [Google Maps Leads Scraper](https://apify.com/data_minds/google-maps-leads-scraper) | Turn Google Maps into business leads: name, address, phone, website, rating, reviews and hours, useful for venue research. |

### Support and disclaimer

Found a bug or need a feature? Open an issue in the **Issues** tab. For custom solutions, integrations or questions, contact hello.dataminds@gmail.com. Facebook Event Scraper is independent and not affiliated with Facebook or Meta; trademarks belong to their owners. It collects publicly available data only, and you are responsible for complying with applicable laws and the site's terms.

*Last updated: 2026-10-18*

# Actor input Schema

## `urls` (type: `array`):

Facebook events links, one per line: event links, search links (also with filters), explore links, page links (/upcoming_hosted_events or /past_hosted_events) and group links (/groups/NAME/events). Bulk input is supported. Leave empty if you use search queries.

## `searchQueries` (type: `array`):

Topics (Sport), places (New York) or both (Sport New York). One search per line. Leave empty if you use links.

## `maxEvents` (type: `integer`):

Maximum number of events to collect in total across all queries and links. Use 0 for every event that can be found.

## `dateRange` (type: `string`):

Only events that touch this period. Pick one from the list, or type a date like 2026-10-20 or a period like 2026-10-20~2026-10-27. Does not apply to single event links.

## `category` (type: `string`):

Only events in these categories, e.g. Music, Food, Art, Sports, Party. Separate several with commas (either one matches). Leave empty for all. Does not apply to single event links.

## `proxyConfiguration` (type: `object`):

Optional. Leave the default and the Actor handles the connection automatically. Change it only if you need specific connection settings.

## Actor input object example

```json
{
  "urls": [
    "https://www.facebook.com/events/search/?q=Sport%20New%20York"
  ],
  "searchQueries": [],
  "maxEvents": 10,
  "dateRange": "any",
  "category": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `events` (type: `string`):

All collected events, overview view.

## `organizers` (type: `string`):

One row per organizer of each event.

## `related` (type: `string`):

Events Facebook suggests next to each event.

## `sources` (type: `string`):

One row per search query or link you gave, with its status and event count.

## `summary` (type: `string`):

Totals for the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.facebook.com/events/search/?q=Sport%20New%20York"
    ],
    "maxEvents": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_minds/facebook-event-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.facebook.com/events/search/?q=Sport%20New%20York"],
    "maxEvents": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("data_minds/facebook-event-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.facebook.com/events/search/?q=Sport%20New%20York"
  ],
  "maxEvents": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call data_minds/facebook-event-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_minds/facebook-event-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DbLSELhty0HHCNAiA/builds/Vd47eWfbMBXvz6SjL/openapi.json
