# Eventbrite Events Scraper (`trev0n/eventbrite-scraper`) Actor

Scrape Eventbrite events by city, keyword, category, format, price and date, past the 1,000-result limit. Venues with coordinates, ticket prices, sales status and organizer websites and socials. Monitoring mode emits only new events.

- **URL**: https://apify.com/trev0n/eventbrite-scraper.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Lead generation, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 events

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Scraper

🎯 **Every Eventbrite event in any city in one clean dataset, with dates, venues on the map, ticket prices and the organizer's website and socials.**

Search any city, region, country or online events by keyword, category, format, price and date. Each event comes with its name, schedule and time zone, venue address with coordinates, category and format, organizer tags and "selling fast" signals. You can add ticket price ranges, sales status and refund policy, and the organizer's website, Facebook, X, Instagram and follower count. Most tools stop at Eventbrite's limit of 1,000 events per search. This one keeps going.

### 🚀 What Does It Do?

This scraper searches Eventbrite for you and collects **structured, ready-to-use event data**. You do not have to scroll or copy anything by hand.

💡 **Two modes of operation:**

1. **🔍 Search Mode**: choose locations ("New York", "London", "Berlin, Germany") and optionally keywords, categories, formats, a price and a date range. Every combination is searched, and the results are merged without duplicates.
2. **📋 Direct URL Mode**: paste Eventbrite search pages or single event pages and get them as they are.

🔁 **Monitoring mode** remembers what earlier runs saw. After the first run, you only get events that are new, changed or back on sale, and you only pay for those.

### 👥 Who Is This For?

| 🏢 Use Case                            | 💬 How It Helps                                                                                                 |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| 🤝 **B2B sales & sponsorship teams**   | Find the organizers behind hundreds of conferences and meetups in your market, with their websites and socials. |
| 📅 **Event aggregators & city guides** | Fill your calendar with every concert, class and festival in a city, with addresses and coordinates for maps.   |
| 🎤 **Venues & promoters**              | See what competitors run, which nights sell out, and how they price tickets.                                    |
| 📊 **Market researchers**              | Measure event activity by city, category and month, and track free versus paid events over time.                |
| 🧑‍💼 **Community & DevRel managers**     | Get every new AI, startup or developer event in your cities in Telegram or Slack each morning.                  |
| 🏨 **Hospitality & travel**            | Plan staffing and pricing around big events near your hotel or restaurant.                                      |

### ✨ Features

- 🌍 **Any place on Eventbrite**: cities, regions, countries and online events, with city names resolved for you.
- 🔍 **Keywords, 21 categories and 18 formats**: conferences, classes, networking, festivals and more, combined with each other.
- 📅 **Any date range**: Eventbrite's presets (today, this weekend, next month) or your own from/to dates.
- ♾️ **Past the 1,000-event limit**: large searches are split into smaller date ranges automatically, so a whole city can be collected.
- 📍 **Venues on the map**: full address, postal code, latitude and longitude.
- 💵 **Ticket prices (optional)**: lowest and highest price, currency, free or paid, sales status, refund policy, duration and age limit.
- 🧑‍💼 **Organizer contacts (optional)**: website, Facebook, X, Instagram, LinkedIn, followers, events hosted and total attendees.
- 🔥 **Demand signals**: "sales end soon", "few tickets left" and "going fast" flags.
- 🔁 **Incremental monitoring**: only new, updated or reappeared events after the first run, with repost detection.
- 🔔 **Instant alerts**: Telegram, Slack, Discord or any webhook.
- ⚡ **Fast & Scalable**: hundreds of events a minute, and tens of thousands per run.
- 🧹 **Deduplication**: an event found by several searches is delivered once.
- 📤 **Export Anywhere**: Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                                      | What It Does                                                                            |
| ------------------------------------------- | --------------------------------------------------------------------------------------- |
| 📍 **Locations**                            | Cities, regions or countries; add the country when a name is ambiguous                  |
| 💻 **Online events only**                   | Search online events instead of a place                                                 |
| 🔤 **Keywords**                             | Search terms such as "AI", "yoga" or "jazz"                                             |
| 🗂️ **Categories**                           | Business, music, food & drink, science & tech and 17 more                               |
| 🎪 **Formats**                              | Conferences, classes, networking, festivals, parties and 13 more                        |
| 💵 **Price**                                | Free or paid events only                                                                |
| 📅 **When / From / To**                     | Today, tomorrow, this weekend, this or next week or month, or exact dates               |
| 🔢 **Maximum results**                      | How many events to collect in one run (0 = all)                                         |
| ♾️ **Go past the 1,000-event limit**        | Split large searches into smaller date ranges                                           |
| 📑 **Maximum pages / searches in parallel** | Safety and speed controls                                                               |
| ✅ **Must / must not contain**              | Keyword filters on name, summary, category and tags                                     |
| 🚫 **Skip cancelled / online events**       | Clean up the results                                                                    |
| 🗣️ **Languages**                            | Keep events in chosen languages only                                                    |
| 💵 **Add prices & full details**            | Ticket price range, sales status, refund policy, full description and organizer summary |
| 🧑‍💼 **Add organizer contact profiles**       | Website, socials, followers and totals for every organizer                              |
| 📝 **Description format & length**          | Plain text, HTML or none, optionally shortened                                          |
| 📦 **Compact output / drop empty fields**   | A leaner dataset                                                                        |
| 🔁 **Incremental monitoring**               | Get only new, updated, reappeared or expired events                                     |
| 🔔 **Notifications**                        | Telegram, Slack, Discord or webhook alerts                                              |
| 🔗 **Direct URLs**                          | Paste Eventbrite search or event pages                                                  |

### 📦 What You Get (Output Fields)

Every event includes:

#### Event Basics

| Field           | Example                                                             |
| --------------- | ------------------------------------------------------------------- |
| eventId         | `1996122860209`                                                     |
| name            | `Son Rompe Pera`                                                    |
| summary         | `Global sensation cumbia-punk band hailing from the Mexico City`    |
| url             | `https://www.eventbrite.com/e/son-rompe-pera-tickets-1996122860209` |
| startLocal      | `2026-09-24T18:00`                                                  |
| endLocal        | `2026-09-24T20:30`                                                  |
| timezone        | `America/New_York`                                                  |
| categoryName    | `Music`                                                             |
| subcategoryName | `Alternative`                                                       |
| formatName      | `Concert or Performance`                                            |
| tags            | `["Summerconcert", "livemusicshow", "outdoor_event"]`               |
| urgencySignals  | `["salesEndSoon", "fewTickets"]`                                    |
| isOnline        | `false`                                                             |
| isCancelled     | `false`                                                             |

#### Venue & Location

| Field      | Example                                |
| ---------- | -------------------------------------- |
| venueName  | `Robert F. Wagner, Jr. Park`           |
| address    | `20 Battery Place, New York, NY 10280` |
| city       | `New York`                             |
| region     | `NY`                                   |
| postalCode | `10280`                                |
| country    | `US`                                   |
| latitude   | `40.7053`                              |
| longitude  | `-74.0188`                             |

#### Tickets (with "Add prices & full details")

| Field           | Example                                                                            |
| --------------- | ---------------------------------------------------------------------------------- |
| isFree          | `false`                                                                            |
| minPrice        | `0`                                                                                |
| maxPrice        | `50`                                                                               |
| currency        | `USD`                                                                              |
| salesStatus     | `on_sale`                                                                          |
| salesEnd        | `2026-10-22T22:00:00Z`                                                             |
| refundPolicy    | `no_refunds`                                                                       |
| durationMinutes | `150`                                                                              |
| ageRestriction  | `all_ages`                                                                         |
| description     | `We are happy to extend an invitation to our event, offering a chance to network…` |

#### Organizer (with the enrichments)

| Field                   | Example                                                  |
| ----------------------- | -------------------------------------------------------- |
| organizerName           | `Pioneer Works`                                          |
| organizerUrl            | `https://www.eventbrite.com/o/pioneer-works-20002618011` |
| organizerWebsite        | `https://pioneerworks.org/`                              |
| organizerFacebook       | `https://www.facebook.com/PioneerWorksFoundation`        |
| organizerX              | `https://x.com/PioneerWorks_`                            |
| organizerFollowers      | `9000`                                                   |
| organizerTotalEvents    | `657`                                                    |
| organizerTotalAttendees | `286345`                                                 |
| organizerVerified       | `true`                                                   |

#### Monitoring (when monitoring is on)

| Field       | Example                    |
| ----------- | -------------------------- |
| changeType  | `NEW`                      |
| firstSeenAt | `2026-09-22T08:00:00.000Z` |
| lastSeenAt  | `2026-09-23T08:00:00.000Z` |

### 📊 Example Output

```json
{
    "eventId": "1998985338960",
    "name": "FLOODLINES",
    "summary": "Where cities and oceans meet.",
    "url": "https://www.eventbrite.com/e/floodlines-tickets-1998985338960",
    "startLocal": "2026-09-25T19:00",
    "endLocal": "2026-09-25T22:00",
    "timezone": "America/New_York",
    "startUtc": "2026-09-25T23:00:00Z",
    "categoryName": "Science & Technology",
    "formatName": "Other",
    "tags": ["Panel", "Concert", "Science", "Brooklyn", "Poetry", "Ocean"],
    "urgencySignals": ["salesEndSoon"],
    "isOnline": false,
    "venueName": "Pioneer Works",
    "address": "159 Pioneer Street, Brooklyn, NY 11231",
    "city": "Brooklyn",
    "region": "NY",
    "postalCode": "11231",
    "country": "US",
    "latitude": 40.6792483,
    "longitude": -74.012154,
    "isFree": false,
    "minPrice": 0,
    "maxPrice": 0,
    "currency": "USD",
    "salesStatus": "on_sale",
    "refundPolicy": "no_refunds",
    "durationMinutes": 180,
    "ageRestriction": "all_ages",
    "performers": ["Hurray For The Riff Raff", "Madame Gandhi", "Eileen Myles"],
    "description": "Presented in partnership with Wellcome, FLOODLINES is an evening of music, poetry, science, and conversation…",
    "organizerName": "Pioneer Works",
    "organizerUrl": "https://www.eventbrite.com/o/pioneer-works-20002618011",
    "organizerWebsite": "https://pioneerworks.org/",
    "organizerFacebook": "https://www.facebook.com/PioneerWorksFoundation",
    "organizerX": "https://x.com/PioneerWorks_",
    "organizerFollowers": 9000,
    "organizerTotalEvents": 657,
    "organizerTotalAttendees": 286345,
    "organizerVerified": true,
    "scrapedAt": "2026-09-22T21:37:20.123Z"
}
```

### 📋 Dataset Views

| View                      | What You See                                                                   |
| ------------------------- | ------------------------------------------------------------------------------ |
| 👀 **Overview**           | Event, start time, venue, city, online, category, format, link                 |
| 💵 **Tickets & prices**   | Free or paid, price range, currency, sales status, signals, refunds            |
| 🧑‍💼 **Organizers**         | Organizer with website, Facebook, X, Instagram, LinkedIn, followers and totals |
| 📍 **Venues & map**       | Address, city, region, country and coordinates                                 |
| 🔁 **Monitoring changes** | What is new or updated since the last run                                      |

### ❓ FAQ

**🤔 Do I need an Eventbrite account?**
No. The scraper only reads events that anyone can see without logging in.

**♾️ Eventbrite only shows 1,000 events per search. How do I get more?**
Keep "Go past Eventbrite's 1,000-event limit" on and set Maximum results to 0 or any large number. The scraper splits big searches into smaller date ranges until each one fits, so every event in the range is collected.

**📍 How should I type a location?**
Type it the way you would say it: "London", "Austin", "Paris" or "Berlin, Germany". Add the country when a city name exists in several places. The run summary shows the place Eventbrite matched each location to.

**🔤 Can I combine a keyword with a category or price?**
Yes. Eventbrite itself cannot combine them in one search, so the scraper searches by category and price and then keeps only the events whose name, summary or tags contain your keyword.

**💵 Why is the ticket price empty?**
Prices are on each event's own page. Turn on "Add prices & full details" to get the price range, currency and sales status.

**🧑‍💼 How do I get organizer websites and social links?**
Turn on "Add organizer contact profiles". Each organizer is looked up once per run, even if they run many of the events.

**⏰ Can I run it on a schedule?**
Yes. Use a daily schedule together with monitoring mode, and you get only the new events each day.

### 🛠️ Need Custom Filters or Features?

Do you need a CRM integration, another output format, organizer email discovery, or the same data from Meetup, Luma or another event platform? **Send me a private message.** Custom work is welcome, and most requests are ready within a few days.

### ⚖️ Legal & Ethical Use

This scraper collects only publicly listed event information that anyone can view without logging in. Use the data responsibly and in line with Eventbrite's terms and the privacy and anti-spam laws that apply to you. Do not use organizer contact data for unsolicited bulk messages.

# Actor input Schema

## `locations` (type: `array`):

Cities, regions or countries, as you would type them: "New York", "London", "Berlin, Germany", "Toronto, Canada", "United States". Add the country when a city name is ambiguous. Eventbrite place slugs such as "ny--new-york" also work.

## `onlineOnly` (type: `boolean`):

Search Eventbrite's online events instead of a place. The locations list is ignored.

## `keywords` (type: `array`):

Search terms such as "AI", "startup", "yoga" or "jazz". Each keyword runs as its own search in every location. When you also pick a category, format, price or date preset, Eventbrite cannot combine them in one search, so the keywords are then applied as a filter on the results instead.

## `categories` (type: `array`):

Eventbrite categories. Each category runs as its own search. Leave empty for all.

## `formats` (type: `array`):

Event formats such as conferences, classes or networking. Combined with every category you pick.

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

Free or paid events only.

## `datePreset` (type: `string`):

Eventbrite's own date windows, in each event's local time. Leave on "Custom range" to use the dates below.

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

First day to include (YYYY-MM-DD). Defaults to today.

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

Last day to include (YYYY-MM-DD). Defaults to one year from today.

## `startUrls` (type: `array`):

Paste Eventbrite search pages (/d/{place}/{what}/) or event pages (/e/…). Search pages are paged through; event pages are fetched in full.

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

Stop after this many events (counted after filters). Set 0 for every event the searches return.

## `splitLargeSearches` (type: `boolean`):

Eventbrite shows at most 1,000 events per search. When a search has more and you asked for more, the date range is split into smaller parts so every event can be collected.

## `maxPagesPerSearch` (type: `integer`):

Extra safety cap, 20 events a page. 0 means no cap.

## `maxConcurrency` (type: `integer`):

How many search pages load at the same time, across all searches and date ranges.

## `includeKeywords` (type: `array`):

Keep only events whose name, summary, category or tags mention at least one of these.

## `excludeKeywords` (type: `array`):

Drop events whose name, summary, category or tags mention any of these.

## `excludeCancelled` (type: `boolean`):

Drop events Eventbrite marks as cancelled.

## `excludeOnline` (type: `boolean`):

Keep only in-person events in the locations you searched.

## `languages` (type: `array`):

Keep only events in these languages, e.g. "en", "de", "es". Leave empty for all.

## `includeDetails` (type: `boolean`):

Opens each event page for the ticket price range and currency, free/paid, sales status, refund policy, duration, age limit, full description and the organizer's name, event count and total attendees. Charged per event.

## `includeOrganizers` (type: `boolean`):

Opens each organizer's profile once for their website, Facebook, X, Instagram and LinkedIn links, follower count, bio and upcoming-event count. Charged once per organizer.

## `descriptionFormat` (type: `string`):

Format of the full description added with event details.

## `descriptionMaxLength` (type: `integer`):

0 keeps the full description.

## `detailConcurrency` (type: `integer`):

How many event or organizer pages to open at once.

## `compact` (type: `boolean`):

Twelve essential fields per event instead of the full record.

## `excludeEmptyFields` (type: `boolean`):

Removes fields that came back empty.

## `incrementalMode` (type: `boolean`):

Remember what previous runs saw and emit only new, updated or reappeared events. The first run stores a baseline; later runs emit far fewer records, and you pay only for those.

## `stateKey` (type: `string`):

Name the baseline this run compares against. Leave empty to derive one from the searches.

## `emitUnchanged` (type: `boolean`):

Also emit events that have not changed since the previous run.

## `emitExpired` (type: `boolean`):

Emit a record for every event that was in the baseline but is gone now.

## `skipReposts` (type: `boolean`):

Drop events that are an expired listing re-posted under a new ID.

## `webhookUrl` (type: `string`):

POSTs the run summary and emitted events as JSON.

## `telegramBotToken` (type: `string`):

Bot token from @BotFather. Stored encrypted.

## `telegramChatId` (type: `string`):

The chat or channel the Telegram bot should post into.

## `discordWebhookUrl` (type: `string`):

Discord channel webhook. Stored encrypted.

## `slackWebhookUrl` (type: `string`):

Slack incoming webhook. Stored encrypted.

## `notifyOnlyChanges` (type: `boolean`):

Stay silent when a monitoring run finds nothing new.

## `notificationLimit` (type: `integer`):

How many events each notification lists before it summarises the rest.

## `includeRunSummary` (type: `boolean`):

Attach the run statistics to the webhook payload.

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

No proxy is the default and the fastest, cheapest setting. Apify's shared datacenter proxies are refused by Eventbrite, so do not pick them.

## `proxyFallback` (type: `boolean`):

If Eventbrite starts refusing requests during a long run, the rest of the run continues through Apify residential proxies instead of losing results.

## Actor input object example

```json
{
  "locations": [
    "New York"
  ],
  "onlineOnly": false,
  "keywords": [],
  "categories": [],
  "formats": [],
  "price": "",
  "datePreset": "",
  "startDate": "",
  "endDate": "",
  "startUrls": [],
  "maxResults": 100,
  "splitLargeSearches": true,
  "maxPagesPerSearch": 0,
  "maxConcurrency": 5,
  "includeKeywords": [],
  "excludeKeywords": [],
  "excludeCancelled": true,
  "excludeOnline": false,
  "languages": [],
  "includeDetails": false,
  "includeOrganizers": false,
  "descriptionFormat": "text",
  "descriptionMaxLength": 0,
  "detailConcurrency": 5,
  "compact": false,
  "excludeEmptyFields": false,
  "incrementalMode": false,
  "stateKey": "",
  "emitUnchanged": false,
  "emitExpired": false,
  "skipReposts": false,
  "webhookUrl": "",
  "telegramChatId": "",
  "notifyOnlyChanges": true,
  "notificationLimit": 10,
  "includeRunSummary": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "proxyFallback": true
}
```

# Actor output Schema

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

No description

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

No description

## `runSummary` (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 = {
    "locations": [
        "New York"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/eventbrite-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 = {
    "locations": ["New York"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("trev0n/eventbrite-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 '{
  "locations": [
    "New York"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call trev0n/eventbrite-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,trev0n/eventbrite-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/gRR5sRyFXh2432bKA/builds/dpaYaF2UmzWlk7UDt/openapi.json
