# Eventbrite Events Scraper (`maximedupre/eventbrite`) Actor

Collect public Eventbrite events by search filters or browse URLs. Get dates, venues, ticket details, and public organizer data when available for event lists and market research.

- **URL**: https://apify.com/maximedupre/eventbrite.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Business, Automation, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 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.
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

### 🎟️ Turn public Eventbrite events into research data

For event researchers, local planners, and developers, this Actor collects public Eventbrite events in structured rows. Get event links, dates, venues, ticket details, and organizer data when available to build event lists and compare public listings.

- Build a local list with **[Free Events in NYC Today](https://apify.com/maximedupre/eventbrite/examples/free-events-in-nyc-today)**.
- Review event listings and ticket details with **[Music Events Tickets](https://apify.com/maximedupre/eventbrite/examples/music-events-tickets)**.
- Find public **[Business Networking Events](https://apify.com/maximedupre/eventbrite/examples/business-networking-events)** for event research.
- Collect dates and public organizer details for **[Online Workshops](https://apify.com/maximedupre/eventbrite/examples/online-workshops)**.
- Gather public **[Family Events](https://apify.com/maximedupre/eventbrite/examples/family-events)** for a planning list.

#### 📦 Event and organizer details in each row

Each row is one public Eventbrite event with its ID, name, and source page link. Other fields include summaries, schedules, venues, categories, images, ticket details, and public organizer profiles when Eventbrite provides them. Missing details are not guessed.

The first eligible occurrence of each event is saved as soon as it is found. If another browse URL finds the same event, later matches are ignored and do not add details to the saved row.

#### ▶️ Find events by search or browse URL

1. Choose Search or Browse URLs.
2. For Search, set a location, keywords, category, dates, ticket price, or event type as needed.
3. For Browse URLs, paste Eventbrite browse links. Each link keeps its own filters and ignores Search options.
4. Set Maximum events for a smaller run, then start the Actor and open Events to view the dataset.

Leave `maxItems` empty to return all available results until the source is exhausted. The source may return fewer events than your limit. No Eventbrite login is needed to collect public listings.

#### ⚙️ Input

**Input fields**

`discoveryMethod` is required. Search fields apply only to Search.

| Field | Type | What it does |
| --- | --- | --- |
| `discoveryMethod` | string | Choose `search` or `browseUrls`. |
| `location` | string | Search a country, region, or city. Leave blank to search across locations. |
| `keywords` | string | Search for words in events. Leave blank for no keyword filter. |
| `category` | string | Search an Eventbrite category, such as Music or Business. Leave blank for all categories. |
| `startDate` | string | Search events starting on or after this date in `YYYY-MM-DD` form. Leave blank for no start date limit. |
| `endDate` | string | Search events starting on or before this date in `YYYY-MM-DD` form. Use a date on or after `startDate`. Leave blank for no end date limit. |
| `price` | string | Search `all`, `free`, or `paid` events. |
| `eventType` | string | Search `all`, `online`, or `physical` events. |
| `browseUrls` | array | Required for Browse URLs. A JSON list of URL strings or objects with a required `url` field. Each URL keeps its own filters. |
| `browseUrls[].url` | string | The Eventbrite browse URL when using an object entry. |
| `maxItems` | integer | Positive run-wide event limit. Leave empty to return all available results until the source is exhausted. |

This example is copied from the public input of a successful hosted default-input run:

```json
{
  "discoveryMethod": "search",
  "location": "New York, United States",
  "price": "all",
  "eventType": "all",
  "maxItems": 20
}
```

#### 🧾 Output

**Dataset link**

| Field | Type | What it does |
| --- | --- | --- |
| `events` | string | Opens the collected events in the default dataset. |

**Event fields**

Every event uses this shape. Only `id`, `name`, and `url` are required. Other fields appear when available from the source.

| Field | Type | What it does |
| --- | --- | --- |
| `id` | string | Eventbrite event ID. |
| `name` | string | Event name. |
| `url` | string | Event page link. |
| `summary` | string | Short source event summary. |
| `start` | object | Start date and time. |
| `start.date` | string | Local start date. |
| `start.time` | string | Local start time. |
| `start.timezone` | string | Start time zone. |
| `start.utc` | string | Start date and time in UTC. |
| `end` | object | End date and time. |
| `end.date` | string | Local end date. |
| `end.time` | string | Local end time. |
| `end.timezone` | string | End time zone. |
| `end.utc` | string | End date and time in UTC. |
| `isOnline` | boolean | Whether Eventbrite lists the event as online. |
| `venue` | object | Event venue details. |
| `venue.name` | string | Venue name. |
| `venue.address` | object | Venue address. |
| `venue.address.address1` | string | First street address line. |
| `venue.address.address2` | string | Second street address line. |
| `venue.address.city` | string | City name. |
| `venue.address.region` | string | State or region. |
| `venue.address.postalCode` | string | Postal code. |
| `venue.address.country` | string | Source country code. |
| `venue.latitude` | number | Venue latitude. |
| `venue.longitude` | number | Venue longitude. |
| `category` | string | Source category name. |
| `format` | string | Source event format. |
| `tags` | array | Source event tags as strings. |
| `language` | string | Source language code. |
| `image` | object | Cover image details. |
| `image.url` | string | Cover image link. |
| `image.variants` | array | Other source image sizes as objects. |
| `image.variants[].url` | string | Image link. |
| `image.variants[].width` | integer | Image width in pixels. |
| `image.variants[].height` | integer | Image height in pixels. |
| `tickets` | object | Source ticket details. |
| `tickets.price` | object | Source ticket price range. |
| `tickets.price.minimum` | number | Lowest ticket price. |
| `tickets.price.maximum` | number | Highest ticket price. |
| `tickets.price.currency` | string | Ticket currency code. |
| `tickets.availability` | string | Source ticket availability. |
| `tickets.provider` | string | Ticket provider name. |
| `status` | string | Source event status. |
| `salesStatus` | string | Source sales status. |
| `publishedAt` | string | Source publication date and time. |
| `organizer` | object | Public organizer details. |
| `organizer.id` | string | Source organizer ID. |
| `organizer.name` | string | Organizer name. |
| `organizer.url` | string | Organizer profile link. |
| `organizer.description` | string | Public organizer description. |
| `organizer.website` | string | Public organizer website link. |
| `organizer.socialLinks` | array | Public social profile links as strings. |
| `organizer.followers` | integer | Source follower count. |
| `organizer.eventsHosted` | integer | Source hosted event count. |
| `organizer.rating` | string | Source quality badge, such as `super_organizer`. |

This complete event row came from a successful current-beta run. Public source text is shown as returned:

```json
{
  "id": "1993646975772",
  "name": "Caribbean City at 4AM Bar Everyone FREE w/RSVP Every Sunday",
  "url": "https://www.eventbrite.com/e/caribbean-city-at-4am-bar-everyone-free-wrsvp-every-sunday-tickets-1993646975772",
  "summary": "Kick off the vibes early with Caribbean beats and free entry if you RSVP—don’t miss the party at 4AM Bar!",
  "start": {
    "date": "2026-10-04",
    "time": "18:00",
    "timezone": "America/New_York",
    "utc": "2026-10-04T22:00:00Z"
  },
  "end": {
    "date": "2026-10-05",
    "time": "02:00",
    "timezone": "America/New_York",
    "utc": "2026-10-05T06:00:00Z"
  },
  "isOnline": false,
  "venue": {
    "name": "4am Bar",
    "address": {
      "address1": "1446 Myrtle Avenue",
      "city": "Brooklyn",
      "region": "NY",
      "postalCode": "11237",
      "country": "US"
    },
    "latitude": 40.6988197,
    "longitude": -73.9168838
  },
  "category": "Music",
  "format": "Party or Social Gathering",
  "tags": [
    "Reggae",
    "Music",
    "Party or Social Gathering",
    "Hiphop",
    "Reggae",
    "Afrobeats",
    "Sunday",
    "Soca",
    "Konpa",
    "Sundayfunday",
    "Socamusic",
    "Caribbeancity",
    "food_and_drink"
  ],
  "language": "en-us",
  "image": {
    "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192252670%2F48251508672%2F1%2Foriginal.20260831-035406?crop=focalpoint&fit=crop&auto=format%2Ccompress&q=75&sharp=10&fp-x=0.5&fp-y=0.5&s=692dc1b81b3bd8c895e35249e652aac5",
    "variants": [
      {
        "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192252670%2F48251508672%2F1%2Foriginal.20260831-035406?auto=format%2Ccompress&q=75&sharp=10&s=76b3d829150e564811f1c7ffbe043b55",
        "width": 1080,
        "height": 1350
      },
      {
        "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192252670%2F48251508672%2F1%2Foriginal.20260831-035406?crop=focalpoint&fit=crop&w=320&auto=format%2Ccompress&q=75&sharp=10&fp-x=0.5&fp-y=0.5&s=5d2868a37c58ae5b2fc86074fd139268"
      },
      {
        "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192252670%2F48251508672%2F1%2Foriginal.20260831-035406?crop=focalpoint&fit=crop&w=1024&auto=format%2Ccompress&q=75&sharp=10&fp-x=0.5&fp-y=0.5&s=f9e17d18cbae2477d30dea4d4e7c20a9"
      },
      {
        "url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192252670%2F48251508672%2F1%2Foriginal.20260831-035406?crop=focalpoint&fit=crop&w=640&auto=format%2Ccompress&q=75&sharp=10&fp-x=0.5&fp-y=0.5&s=24105c8631fad376a4f82b69cd627347"
      }
    ]
  },
  "tickets": {
    "price": {
      "minimum": 0,
      "maximum": 108.55,
      "currency": "USD"
    },
    "availability": "available",
    "provider": "Eventbrite"
  },
  "status": "started",
  "salesStatus": "on_sale",
  "publishedAt": "2026-07-10T04:55:51Z",
  "organizer": {
    "id": "5494940201",
    "name": "JiggyTime Ent",
    "url": "https://www.eventbrite.com/o/jiggytime-ent-5494940201",
    "description": "Click here to subscribe to our text messages.",
    "website": "https://jiggytimeevents.com/",
    "socialLinks": [
      "https://twitter.com/JIGGYTIMEJAY",
      "https://www.facebook.com/JiggyTimeFanPage"
    ],
    "followers": 3457,
    "eventsHosted": 603,
    "rating": "super_organizer"
  }
}
```

#### 💳 Pricing

The charged outcome is one public event read successfully and saved to your dataset. Available event and organizer details are part of that event. See the Store pricing panel for the current rate.

#### 🔌 Integrations

Open the Events dataset link after a run. Use Apify dataset exports or the Apify API to read the saved rows in your own workflow.

https://www.youtube.com/watch?v=bNACk1_S_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Do Search filters apply to Browse URLs?

No. Each browse URL keeps its own filters. The fields in Search options are ignored for Browse URLs.

##### What happens when organizer details are missing?

The event can still be saved. Optional organizer fields appear only when public source data is available.

##### Can I collect private events, attendees, or buy tickets?

The Actor collects publicly listed events. It does not access private or restricted events, collect attendee information, or buy tickets.

##### How do I keep repeated events out of my dataset?

The Actor saves the first eligible occurrence of each source event and ignores later matches in the same run.

##### Can I leave Maximum events empty?

Yes. Leaving it empty returns all available results until the source is exhausted. This does not promise complete coverage of all Eventbrite events.

##### Do I need an Eventbrite login?

No. This Actor discovers public Eventbrite listings without an Eventbrite login.

##### Where can I check the original event?

Open the `url` in the event row to see its page on the official Eventbrite website. Listings and ticket details may change after your run.

### 📝 Changelog

**v0.0** (05-10-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~eventbrite/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Meetup Events Scraper](https://apify.com/maximedupre/meetup) collects public community events and groups for local event research.
- [10times Events Scraper](https://apify.com/maximedupre/10times-events-scraper) collects trade shows and conferences for business event lists.
- [Posh Events Scraper](https://apify.com/maximedupre/posh-events) collects public Posh events, ticket prices, and organizer details for nightlife research.
- [Fever Events Scraper](https://apify.com/maximedupre/fever-events) collects city experiences, venues, and ticket prices for activity lists.
- [Bandsintown Scraper](https://apify.com/maximedupre/bandsintown) collects concerts and artist profiles for music event research.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `discoveryMethod` (type: `string`):

Choose how to find public Eventbrite events.

## `location` (type: `string`):

Enter a country, region, or city, such as New York, United States. Leave blank to search across locations. Applies to Search.

## `keywords` (type: `string`):

Enter words to find in events, such as jazz. Leave blank to search without keywords. Applies to Search.

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

Enter an Eventbrite category name, such as Music or Business. Leave blank for all categories. Applies to Search.

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

Find events that start on or after this date. Leave blank for no start date limit. Applies to Search.

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

Find events that start on or before this date. Use a date on or after From date. Leave blank for no end date limit. Applies to Search.

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

Choose free events, paid events, or both. Applies to Search.

## `eventType` (type: `string`):

Choose online events, physical events, or both. Applies to Search.

## `browseUrls` (type: `array`):

Add a JSON list of Eventbrite browse URLs. Each item can be a URL string or an object with a required url field that holds the browse URL. Example: \["https://www.eventbrite.com/d/ny--new-york/music--events/"]. Object example: \[{"url":"https://www.eventbrite.com/d/ny--new-york/music--events/"}]. Each URL keeps its own search filters. Required when you choose Browse URLs.

## `maxItems` (type: `integer`):

Stop after this many events across the run. Leave blank to collect all available events until the source has no more results.

## Actor input object example

```json
{
  "discoveryMethod": "search",
  "location": "New York, United States",
  "price": "all",
  "eventType": "all",
  "maxItems": 20
}
```

# Actor output Schema

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

Open the collected events.

# 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 = {
    "discoveryMethod": "search",
    "location": "New York, United States",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/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 = {
    "discoveryMethod": "search",
    "location": "New York, United States",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/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 '{
  "discoveryMethod": "search",
  "location": "New York, United States",
  "maxItems": 20
}' |
apify call maximedupre/eventbrite --silent --output-dataset

```

## MCP server setup

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