# Eventbrite Scraper — Event & Organizer Data (`aitorsm/eventbrite`) Actor

Efficiently scrape and extract Eventbrite event data for market research, lead generation, and event aggregation. This Eventbrite Scraper provides structured data on event details, organizers, dates, venues, and pricing, with flexible filtering options by country, city, and category.

- **URL**: https://apify.com/aitorsm/eventbrite.md
- **Developed by:** [Aitor Sanchez-Mansilla](https://apify.com/aitorsm) (community)
- **Categories:** Lead generation, Automation, Agents
- **Stats:** 704 total users, 87 monthly users, 100.0% runs succeeded, 21 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Eventbrite Events Extractor - Structured Event Data for Market Research, Lead Generation, and More

[![Eventbrite Events Extractor status](https://apify.com/actor-badge?actor=aitorsm/eventbrite)](https://apify.com/aitorsm/eventbrite)

The **Eventbrite Events Extractor** gives you structured Eventbrite **event data** at scale — for **event lead generation**, market research, competitive analysis, and building an **event organizer list** for any city or category. Each result includes detailed information such as:

- Event name
- Organizer details (name, profile, and optional website + social links)
- Event description
- Start and end dates
- Event images
- Tags, pricing, venue details, and more

With a **user-friendly visual input**, this tool is perfect for businesses, marketers, and event organizers who need clean **event data** to analyze event trends, aggregate listings, or generate leads — no app credentials or developer setup required.

### Use Cases

#### 1. **Market Research**

Businesses and event organizers can analyze trends in event types, locations, and attendance, allowing them to plan their own events more effectively.

#### 2. **Competitive Analysis**

Collect competitor event data, such as pricing, audience demographics, and popularity, to optimize your own strategies.

#### 3. **Event Aggregation**

Integrate Eventbrite events into your platform or app, offering users a comprehensive list of events based on location, category, or user preferences.

#### 4. **Event Lead Generation**

Build a targeted **event organizer list** from upcoming events and their organizers to power **event lead generation**. Especially useful for companies that sell services to event hosts — catering, ticketing, venues, marketing, and sponsorships. Pair with the [Email Extractor](https://apify.com/aitorsm/email-extractor) to turn organizer websites into contact details.

#### 5. **Personalized Recommendations**

Analyze the collected data to provide personalized event recommendations for your users based on their interests or browsing behavior.

#### 6. **Content Creation**

Generate lists of “Top Events” or “Must-Attend Conferences” for blogs, publications, or social media, offering valuable insights to your audience.

#### 7. **Automated Alerts**

Set up notifications for users when new events matching their interests are listed on Eventbrite.

#### 8. **Data Analysis for Trends**

Collecting Eventbrite events lets you build large datasets that can be analyzed to identify growing categories, changing pricing trends, or the most popular event locations.

#### 9. **Attendance Monitoring**

Monitor similar events in your niche to estimate potential attendance rates and demand for your own events.

### Cost

This Actor uses pay-per-event pricing with tiered rates:

- **No subscription** - $0.02 per event
- **Bronze Tier** - $0.015 per event
- **Silver Tier** - $0.010 per event
- **Gold Tier** - $0.005 per event

Optional **organizer enrichment** (off by default) is billed separately at **$0.015 per unique organizer enriched** per run — you are only charged for it when you turn it on.

Apify's platform costs are included, so the total amount is totally predictable for you.

### Input

The input for this Actor is highly flexible, allowing users to filter events by **country**, **city**, **category** and **keyword**.

- The **country** field is a dropdown menu that include all available countries from Eventbrite.
- The **city** field requires manual input but is resilient to common misspellings and variations. For example, "miami beach," "Miami," or "miami fl" will all correctly point to events in Miami.
- The **category** dropdown menu includes all standard categories used in eventbrite. Select "custom" to introduce your own keyword to search for events.
- The **keyword** field refers to the keyword needed to search for events when selecting the "custom" category.
- The **price** dropdown optionally restricts results to **paid** or **free** events. Leave it blank to include both.
- The **startDate** and **endDate** optional fields refer to the Start and End dates to search for events. You must specify **none or both**, it won't work if you only specify one of them.
- The **enrichOrganizers** toggle (off by default) adds each organizer's quality signals and social links to every event. It loads one extra page per unique organizer and is billed per unique organizer (see Cost).

Feel free to reach out if you need more advanced filtering options!

### Output

The data is returned in **JSON format**, which is ideal for integration into analytics platforms, websites, or apps. Below is an example of the structured output you will receive:

```json
{
       "image": {
      "edge_color_set": true,
      "edge_color": "#635c5d",
      "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F810071479%2F269258189388%2F1%2Foriginal.20240718-092159?w=512&auto=format%2Ccompress&q=75&sharp=10&rect=0%2C60%2C1920%2C960&s=74f4380880c0b31ee1d7c9bf259f065b",
      "id": "810071479",
      "crop_mask": {
        "width": 1920,
        "height": 960,
        "top_left": {
          "y": 60,
          "x": 0
        }
      },
      "aspect_ratio": "2",
      "focal_point": null,
      "original": {
        "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F810071479%2F269258189388%2F1%2Foriginal.20240718-092159?auto=format%2Ccompress&q=75&sharp=10&s=d36e8dfae12bcf8c0f1477baf7ad1a1b",
        "width": 1920,
        "height": 1080
      }
    },
    "saves": {
      "saved_by_you": false
    },
    "event_sales_status": {
      "start_sales_date": {
        "timezone": "Europe/Madrid",
        "local": "2024-08-27T00:00:00",
        "utc": "2024-08-26T22:00:00Z"
      },
      "default_message": null,
      "sales_status": "on_sale",
      "currency": "EUR",
      "message_code": null,
      "message": null,
      "message_type": null
    },
    "timezone": "Europe/Madrid",
    "id": "950668092857",
    "privacy_setting": "unlocked",
    "tickets_by": "Eventbrite",
    "primary_organizer_id": "17763795191",
    "tickets_url": "https://www.eventbrite.com/checkout-external?eid=950668092857",
    "hide_end_date": false,
    "start_date": "2024-09-21",
    "end_time": "06:00",
    "status": "live",
    "_type": "destination_event",
    "public_collections": {
      "creator_collections": {
        "object_count": 0,
        "collections": []
      }
    },
    "ticket_availability": {
      "maximum_ticket_price": {
        "currency": "EUR",
        "major_value": "18.00",
        "value": 1800,
        "display": "18.00 EUR"
      },
      "minimum_ticket_price": {
        "currency": "EUR",
        "major_value": "0.00",
        "value": 0,
        "display": "0.00 EUR"
      },
      "is_free": false,
      "has_bogo_tickets": false,
      "has_available_tickets": true,
      "is_sold_out": false
    },
    "end_date": "2024-09-22",
    "tags": [
      {
        "prefix": "EventbriteSubCategory",
        "tag": "EventbriteSubCategory/3999",
        "display_name": "Other"
      },
      {
        "prefix": "EventbriteCategory",
        "tag": "EventbriteCategory/103",
        "display_name": "Music",
        "localized": {
          "display_name": "Music"
        }
      },
      {
        "prefix": "EventbriteFormat",
        "tag": "EventbriteFormat/11",
        "display_name": "Party or Social Gathering"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/dance",
        "display_name": "dance",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/indie",
        "display_name": "indie",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/pop",
        "display_name": "pop",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/gratis",
        "display_name": "gratis",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/madrid",
        "display_name": "madrid",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/2000s",
        "display_name": "2000s",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/madridtours",
        "display_name": "madridtours",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/2000s_music",
        "display_name": "2000s_music",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/2000sparty",
        "display_name": "2000sparty",
        "prefix": "OrganizerTag"
      },
      {
        "_type": "tag",
        "tag": "OrganizerTag/madridevents",
        "display_name": "madridevents",
        "prefix": "OrganizerTag"
      }
    ],
    "eventbrite_event_id": "950668092857",
    "start_time": "23:30",
    "primary_venue": {
      "_type": "destination_venue",
      "name": "Independance Club",
      "venue_profile_id": null,
      "address": {
        "city": "Madrid",
        "country": "ES",
        "region": "Comunidad de Madrid",
        "longitude": "-3.692779899999999",
        "localized_address_display": "127 Calle de Atocha, 28012 Madrid",
        "postal_code": "28012",
        "address_1": "127 Calle de Atocha",
        "address_2": "",
        "latitude": "40.409605",
        "localized_multi_line_address_display": [
          "127 Calle de Atocha",
          "28012 Madrid"
        ],
        "localized_area_display": "Madrid"
      },
      "venue_profile_url": "",
      "id": "98290569"
    },
    "primary_organizer": {
      "_type": "destination_profile",
      "num_upcoming_events": null,
      "name": "Independance Club",
      "profile_type": "organizer",
      "num_followers": 12988,
      "url": "https://www.eventbrite.es/o/independance-club-17763795191",
      "twitter": null,
      "summary": "Independance club estÃ¡ en pleno centro de Madrid, calle Atocha, 127. Espacio multidisciplinar con aforo para 729 personas, escenario de 50 metros, pasarela de 12 metros. Independance Club, es un espac...",
      "num_saves": null,
      "image_id": "788868779",
      "followed_by_you": false,
      "facebook": "independancemadrid",
      "num_collections": null,
      "id": "17763795191",
      "website_url": null,
      "num_following": null
    },
    "series_id": null,
    "image_id": "810071479",
    "is_protected_event": false,
    "is_cancelled": null,
    "primary_venue_id": "98290569",
    "checkout_flow": "widget",
    "name": "FIESTA AÃOS 2000s",
    "language": "es-es",
    "url": "https://www.eventbrite.es/e/entradas-fiesta-anos-2000s-950668092857",
    "hide_start_date": false,
    "summary": "CONSIGUE TUS ENTRADAS  - DATE PRISA. SOLO 200 DISPONIBLES",
    "is_online_event": false,
    "eid": "epttxbkh",
    "published": "2024-07-18T09:21:34Z"
}
```

#### Fields:

- **Event Name**: The name of the event.
- **Organizer**: Organizer's name and profile link.
- **Description**: A summary or description of the event.
- **Dates**: Start and end dates.
- **Images**: Direct image URLs from Eventbrite.
- **Tags**: Categorization tags, such as event type or genre.
- **Pricing**: Ticket price range, including whether the event is free.
- **Venue**: The event's venue details, including address.

#### Simplified Overview

A simplified view of this data will be shown directly in the **Apify console**, where you can see a table of key event details including names, dates, and organizer information.

```json
{
    "name": "R&B ROOFTOP BRUNCH + DAY PARTY",
    "image.url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F799080499%2F213642457492%2F1%2Foriginal.20240630-230944?w=512&auto=format%2Ccompress&q=75&sharp=10&rect=0%2C0%2C2160%2C1080&s=cf7d590a1633568701acd9ef79a6535f",
    "primary_organizer.name": "Royal @Royaltynyc",
    "is_online_event": false,
    "start_date": "2024-09-14",
    "start_time": "15:00",
    "end_date": "2024-09-14",
    "end_time": "21:00",
    "url": "https://www.eventbrite.com/e/rb-rooftop-brunch-day-party-tickets-130323899291"
  }
```

***

### Working with the data

**Stable event ID.** Every event has `eventbrite_event_id` — a durable Eventbrite ID that does not change between runs. Use it as your unique key for deduping or incremental syncing (no need to match on title + date + venue).

**Location & coordinates.** Each event's venue is in `primary_venue`, including `primary_venue.address.latitude` / `longitude` and a full address (`localized_address_display`, `address_1`, `city`, `region`, `postal_code`, `country`). For convenience these are also surfaced flat as top-level **`latitude`**, **`longitude`**, and **`venue_address`**. Online events have no physical venue (these fields are `null`).

**Dates & time.** `start_date` (YYYY-MM-DD), `start_time` (24-hour, local), `end_date` / `end_time`, and `timezone` (IANA, e.g. `America/Los_Angeles`). A combined ISO-8601 **`start_datetime`** (local wall-clock; pair with `timezone`) is also provided.

**Cover image.** The full `image` object is included, plus a flat **`image_url`** for direct/hot-linking.

**Consistent schema.** Optional fields (e.g. `summary`, `image_url`, the location fields) are always present — `null` when empty, never silently dropped — so CSV/Excel columns and downstream parsing stay stable across runs.

**Filter paid vs free.** Set the `price` input to `paid` or `free` (leave blank for all).

**Organizer details.** Turn on `enrichOrganizers` to add each organizer's website + social links (Instagram, LinkedIn, …) and quality signals. (Direct organizer email is not part of Eventbrite's data.)

***

### How to Use

1. **Set your filters**: Choose a country, city, and category using the user-friendly input interface.
2. **Run the Actor**: Start the run, and the Actor will collect event data according to your specifications. Check Overview and All Fields tabs.
3. **Export Data**: Once the run is complete, export the data in JSON format for further analysis or integration.

***

### Run it from AI agents (MCP & x402)

This Actor is available through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp), so **AI agents** and **LLM** apps can discover and run it as a tool — handy for building event-data assistants and automated lead-research workflows. It also supports [**x402** agentic payments](https://docs.apify.com/platform/integrations/x402): an agent can run it and pay per run with USDC on Base, with no Apify account required. The structured input and output schema make it straightforward for agents to call the Actor and parse the results.

### FAQ

#### Do I need an Eventbrite account or developer credentials?

No. There is no app registration, OAuth token, or developer setup: you point the Actor at a country, city, category, keyword, and date range and get back structured **event data** for public events, ready for analysis or export. Results include optional organizer enrichment and consistent flat fields (`latitude`, `longitude`, `venue_address`, `start_datetime`, `image_url`), so your CSV/Excel columns stay stable across runs.

#### How do I get a list of event organizers in a city?

Set the **city** (and optionally **country**, **category**, or **keyword**) and run the Actor. Every event carries its organizer, so the results give you a de-duplicated **event organizer list** for that location and timeframe. Each organizer includes a name and Eventbrite profile link, and you can use the stable `primary_organizer_id` to dedupe organizers across multiple runs.

#### Can I get organizer contact details?

Turn on the **`enrichOrganizers`** toggle to add each organizer's website and social links (Instagram, LinkedIn, and more) plus quality signals. Direct organizer email is not part of Eventbrite's data — to resolve emails and phone numbers, feed those organizer websites into the [Email Extractor](https://apify.com/aitorsm/email-extractor), which turns a list of websites into emails and phones. For the full cheapest-first enrichment order (with the real incremental hit rate of each step), see [The contact-enrichment cascade](https://www.linkedin.com/pulse/contact-enrichment-cascade-what-order-fire-your-tools-aitor-165ae/).

#### What format is the output, and can I export to CSV/Excel?

Results are returned as JSON and can be exported to CSV, Excel, JSON, or XML, or pulled via API/integrations. Optional fields are always present (`null` when empty, never silently dropped), so downstream columns stay consistent across runs.

#### Can I filter by date, category, or price?

Yes. Filter by **country**, **city**, **category**, **keyword**, a **startDate**/**endDate** range, and **paid** vs **free** events. See the Input section for details.

#### Can I monitor or track Eventbrite events automatically?

Yes. Schedule the Actor to run on a recurring basis (daily or weekly) from the Apify console to **monitor** new events and **track** changes in your target city or category, keeping your **event organizer list** continuously up to date. Connect it to **n8n, Make, Zapier**, or webhooks to push fresh **event data** straight into your own tools.

#### How do I run this daily without paying for duplicates?

If you re-pull the same date window every day, events that haven't happened yet come back on every run — so you pay for them repeatedly. Because you keep the results in your own database, you only need each run to fetch what's **new**. Instead of one wide daily pull, run two small ones: one for just the newest day entering your window (set **`startDate`** and **`endDate`** to the day furthest ahead), and one for the next 2–3 days (where last-minute events get added). Dedupe on the stable **`eventbrite_event_id`** and upsert into your database. Your database still holds the full window, but your billed results track **new** events instead of total events — typically a 60%+ reduction for daily feeds. Add one full-window pull per week as a backfill if you want a safety net.

### Related Actors

- [Email Extractor](https://apify.com/aitorsm/email-extractor) — feed it the organizer websites from your results to get their emails, phones and socials.
- [Luma Events](https://apify.com/aitorsm/luma-events) — add the tech and startup events in the same city that are listed on Luma instead.
- [Meetup Events](https://apify.com/aitorsm/meetup-events) — add the community events in the same city that never appear on Eventbrite.
- [Posh Events](https://apify.com/aitorsm/posh-events) — add the nightlife and social events in the same city, with their promoters.

***

Start collecting Eventbrite events today by running this Actor on Apify. If you need additional custom features or filtering options, feel free to [mail](mailto:business@aitorsm.com) me to discuss your specific requirements. You can also find me as aitor.sm on Apify's Discord server.

If this actor has been useful to you, please consider to add it to your bookmarks 📑 on Apify.

# Actor input Schema

## `country` (type: `string`):

The country to search for events.

## `city` (type: `string`):

The city to search for events. Leave blank to search events for all cities in the country.

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

The category to search for. Leave blank to search events in all categories. Custom to search by keyword

## `keyword` (type: `string`):

The keyword to search for when selecting 'custom' category.

## `price` (type: `string`):

Filter events by price. Leave blank to include all events (paid + free).

## `startDate` (type: `string`):

Select start date to search for events in format YYYY-MM-DD. Leave both startDate and endDate blank to default to today through today + 7 days.

## `endDate` (type: `string`):

Select end date to search for events in format YYYY-MM-DD. Leave both startDate and endDate blank to default to today through today + 7 days.

## `maxResults` (type: `integer`):

Maximum total number of events to return across the whole run. Soft cap — may overshoot slightly because in-flight concurrent requests complete before the limit takes effect (overshoot ≤ ~200 events at default concurrency). Leave blank for no cap.

## `enrichOrganizers` (type: `boolean`):

Add organizer quality signals (events hosted, attendees, hosting years, verified / super-organizer badges) and social links (Instagram, LinkedIn, TikTok, YouTube, Spotify) to each event. Loads one extra page per unique organizer and is billed separately per unique organizer enriched. Leave off for listing data only.

## Actor input object example

```json
{
  "country": "spain",
  "city": "barcelona",
  "maxResults": 20,
  "enrichOrganizers": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `enrichment` (type: `string`):

No description

# 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 = {
    "country": "spain",
    "city": "barcelona",
    "category": "",
    "keyword": "",
    "price": "",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("aitorsm/eventbrite").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 = {
    "country": "spain",
    "city": "barcelona",
    "category": "",
    "keyword": "",
    "price": "",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("aitorsm/eventbrite").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 '{
  "country": "spain",
  "city": "barcelona",
  "category": "",
  "keyword": "",
  "price": "",
  "maxResults": 20
}' |
apify call aitorsm/eventbrite --silent --output-dataset

```

## MCP server setup

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

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/WNUjlCROzqWUGQgfR/builds/jUzBHGjkVpspnB36d/openapi.json
