# Eventbrite Scraper (`lergassy/eventbrite-scraper`) Actor

\[$1.50/1K events] Eventbrite events for any city, keyword, category or date: name, dates and time zone, venue and address with coordinates, category, image, online flag, plus ticket price range, organizer and description per event. Paste a search URL or type a location. No fee per run, no browser.

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

## Pricing

from $1.10 / 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

Every event on any Eventbrite search page — a city, a keyword, a category, a weekend — as one row per event: name, dates and time zone, venue and address with coordinates, category and tags, image, online flag, and with details on, the ticket price range, organizer and full description. Paste a search URL or type a location. **$1.50 per 1,000 events (plus $1.50 per 1,000 for prices and organizer), no fee per run, no fee per search, error rows free.**

### What is Eventbrite Scraper?

Eventbrite Scraper reads the event data Eventbrite renders into its own search pages and event pages and returns it as a flat table you can download as JSON, CSV or Excel or pull through the API. No browser, no login, nothing to configure: give it a search page from the site or a location and a keyword, and it walks through every page of results.

It is built for people who need events in bulk: local media and city guides, venue and tourism boards, event-marketing agencies checking what competes for the same weekend, researchers, and anyone feeding a calendar, a map or a recommendation model.

### What data can Eventbrite Scraper extract?

| Field | What it holds |
|---|---|
| `eventId`, `name`, `url`, `ticketsUrl` | The event, its page and the checkout link |
| `summary` | Short description from the listing |
| `startDate`, `startTime`, `endDate`, `endTime`, `timezone`, `startsAt` | When, in the event's own time zone |
| `venueName`, `address`, `city`, `region`, `country`, `postalCode`, `latitude`, `longitude` | Where — full address and coordinates for maps |
| `isOnline`, `isCancelled`, `isSeries`, `seriesId`, `occurrencesInSeries` | Online events, cancelled events, recurring series with their number of dates |
| `category`, `subcategory`, `format`, `tags` | Eventbrite's own classification ("Music", "Jazz", "Concert or Performance") |
| `imageUrl`, `language`, `publishedAt`, `organizerId` | Listing metadata |
| `urgency` | Eventbrite's own signals: "Few tickets left", "Popular", "Sales end soon" |
| `priceMin`, `priceMax`, `currency`, `isFree` ($) | With details: cheapest and most expensive ticket |
| `organizerName`, `organizerUrl`, `description` ($) | With details: who runs it, their page, full text |
| `eventStatus`, `attendanceMode`, `ticketAvailability`, `startsAtIso`, `endsAtIso` ($) | With details: scheduled/postponed/cancelled, offline/online, availability, ISO timestamps with offset |
| `searchUrl`, `position`, `page`, `scrapedAt` | Where the row came from and when |

Every row carries `type: "event"`. A search that yields nothing produces one `type: "error"` row that says what to check; error rows cost nothing.

### How much does it cost to scrape Eventbrite?

Two events: **$0.0015 per event** on the free plan (down to $0.0009 on the highest plans), and **$0.0015 per event for details** — prices, organizer, description — which is on by default and can be switched off for the fastest bulk run. No fee per run, no fee per search, no fee per page, no proxy charge — Eventbrite is read directly, and only a challenged request moves to a residential address.

| Plan | Per event | Per event with details | Events per $1 (with details) |
|---|---|---|---|
| Free | $0.0015 | $0.003 | 333 |
| Bronze | $0.0014 | $0.0028 | 357 |
| Silver | $0.0012 | $0.0024 | 416 |
| Gold | $0.0011 | $0.0022 | 454 |
| Platinum, Diamond | $0.0009 | $0.0018 | 555 |

The $5 of free monthly credit on Apify's free plan buys about 1,600 events with prices. Every event in Berlin this weekend (about 450) costs $1.35.

#### Bulk export: what 50,000 events actually cost

This Actor is built for volume — every city in a country, every category, every week. Because there is no fee per run and no fee per search, the bill is the number of events you keep and nothing else.

| Job | This Actor | Most-used Actor in this category |
|---|---|---|
| 50,000 events across 100 runs | **$150** (with prices and organizer) | $1,000 |

Checked on the Apify Store on 23 September 2026 against the Actor with the most monthly users for "eventbrite"; its per-run fee is counted in, as ours would be if we charged one. Some Actors here ask less per row — this table compares against the one buyers actually use most.

### How to scrape Eventbrite

1. On eventbrite.com, search for what you want — a city, a category, "this weekend", a keyword — and copy the address: `https://www.eventbrite.com/d/germany--berlin/yoga/`. Or type **Location** (`Berlin, Germany`) and a **Keyword** and let the Actor build the URL.
2. Set **Maximum events**. Eventbrite serves 20 per page and up to 10,000 per search.
3. Leave **details** on for prices and organizer, or switch it off for a faster, cheaper listing-only run.
4. Press **Start**. Download the table, or read it through the API.

### ⬇️ Input

#### All events in Bali with prices (the form's default — about 30 seconds)

```json
{
  "startUrls": ["https://www.eventbrite.com/d/indonesia--bali/all-events/"],
  "maxEvents": 20,
  "includeDetails": true
}
```

#### Everything happening in Berlin this weekend

```json
{
  "location": "Berlin, Germany",
  "dates": "this_weekend",
  "maxEvents": 1000
}
```

#### Every online AI event, listing only, as fast as possible

```json
{
  "startUrls": ["https://www.eventbrite.com/d/online/ai/"],
  "maxEvents": 5000,
  "includeDetails": false
}
```

### ⬆️ Output

```json
{
  "type": "event",
  "eventId": "1982763392682",
  "name": "Bali 2026 Emergency Care Conference",
  "url": "https://www.eventbrite.com.au/e/bali-2026-emergency-care-conference-tickets-1982763392682",
  "ticketsUrl": "https://www.eventbrite.com/checkout-external?eid=1982763392682",
  "summary": "Three days of emergency medicine in Seminyak…",
  "startsAt": "2026-10-19T17:30:00",
  "timezone": "Asia/Makassar",
  "isOnline": false,
  "isSeries": false,
  "venueName": "Hotel Indigo Bali Seminyak Beach",
  "address": "Jalan Camplung Tanduk No. 10, Seminyak, Bali 80361",
  "city": "Seminyak",
  "country": "ID",
  "latitude": -8.6905,
  "longitude": 115.1602,
  "category": "Health & Wellness",
  "subcategory": "Medical",
  "format": "Conference",
  "tags": ["Health & Wellness", "Medical", "Conference"],
  "imageUrl": "https://img.evbuc.com/…",
  "priceMin": 99,
  "priceMax": 1249,
  "currency": "AUD",
  "isFree": false,
  "organizerName": "EMS Conferences Australia",
  "organizerUrl": "https://www.eventbrite.com.au/o/…",
  "eventStatus": "EventScheduled",
  "attendanceMode": "Offline",
  "searchUrl": "https://www.eventbrite.com/d/indonesia--bali/all-events/",
  "position": 1,
  "scrapedAt": "2026-09-23T07:40:12.000Z"
}
```

Export as JSON, CSV, Excel, XML or RSS from the **Dataset** tab, or fetch the same rows with one API call.

### Use cases for Eventbrite data

#### City guides and local media

A weekly "what's on" for every neighbourhood, with prices and a map, from one scheduled run.

#### Venues, hotels and tourism

What competes for your dates; which organizers are active in your city; how full the calendar is around a holiday.

#### Event marketing and sponsorship

Find organizers by category and city, with their pages, before the outreach.

#### Research and AI

Thousands of events with coordinates, categories, prices and descriptions — training data for recommenders, demand curves for a region, a live feed for an assistant.

### Integrations and Eventbrite API

Run the Actor from your own code with the [Apify API](https://docs.apify.com/api/v2) or the Python and JavaScript clients, from n8n, Make and Zapier through the Apify nodes, straight into Google Sheets, or on a schedule with a webhook when the run finishes:

```
https://api.apify.com/v2/acts/lergassy~eventbrite-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN
```

#### Use it from Claude, Cursor or any MCP agent

Every Apify Actor is available as a tool through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). Add the server and an agent can ask "what jazz events are in Lisbon next week" and get rows back.

### 🤖 For AI Agents & LLM Apps

- One row type, flat fields; `tags` and `urgency` are the only arrays.
- `startsAtIso` carries the UTC offset; `latitude`/`longitude` are numbers.
- `isFree` and `priceMin` answer the first question a user asks.
- Error rows carry `type: "error"` with a plain-English `error` string and cost nothing.

### Troubleshooting

- **Error row "No events on this search page"** — Eventbrite did not recognise the place. Copy the URL from the site instead of typing the location, and check the `country--city` spelling.
- **`priceMin` empty with details on** — the event has no public ticket offer (registration by request, or sold out). `ticketAvailability` and `detailsError` say why.
- **`bot check` in the log** — Eventbrite's protection challenged a request; the Actor retries and moves to a residential address by itself. Datacenter proxies are challenged most often — leave the proxy setting off unless you need a specific country.

### ❓ FAQ

#### Is it legal to scrape Eventbrite?

The Actor reads only public event listings, without logging in — the same information any visitor sees. Organizer names are business names as published on the site. How you store and use the data is subject to the laws of your country and Eventbrite's terms; consult a lawyer for commercial projects.

#### Doesn't Eventbrite have an API?

Eventbrite's API lets an organizer manage their own events; the public search endpoint that returned any city's events was closed in 2020. This Actor is the practical alternative.

#### Can I get past events?

Search pages show upcoming events only. Run on a schedule and keep the rows to build a history.

#### Do I need proxies?

No. The Actor connects directly and falls back to Apify residential addresses only when challenged; both are included in the price.

#### What happens on an error?

You get an error row that explains the problem in plain words. Error rows are never billed.

### Your feedback

If a field is missing or a search page does not parse, open an issue on the Actor page with the URL — it is usually fixed within a day. If the Actor saved you time, a review on the Store helps other buyers find it.

### You might also like

| Actor | What it does |
|---|---|
| [Google News Scraper](https://apify.com/lergassy/google-news-scraper) | Headlines for any query, topic or publisher from Google News |
| [Booking.com Hotels Scraper](https://apify.com/lergassy/booking-hotels-scraper) | Hotels with prices, rooms and rates for any destination and dates |
| [Airbnb Scraper](https://apify.com/lergassy/airbnb-scraper) | Listings for any place and dates with prices, ratings and calendar |
| [Google Flights Scraper](https://apify.com/lergassy/google-flights-scraper) | Flight prices, price calendars and booking links |
| [Website Contacts API](https://apify.com/lergassy/website-contacts-api) | E-mails, phones and social profiles from any website |

# Actor input Schema

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

Search pages copied from eventbrite.com, e.g. <code>https://www.eventbrite.com/d/indonesia--bali/all-events/</code>, <code>https://www.eventbrite.com/d/germany--berlin/yoga/</code>, <code>https://www.eventbrite.com/d/online/ai/</code>. Categories, dates and keywords in the URL are respected. Used together with or instead of <b>Location</b>.

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

<code>City, Country</code> as on Eventbrite, e.g. <code>Berlin, Germany</code>, <code>Bali, Indonesia</code>, or <code>online</code>. Builds the search URL for you.

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

Optional word to search within the location: <code>yoga</code>, <code>startup</code>, <code>jazz</code>.

## `dates` (type: `string`):

Date filter for a location search (search URLs carry their own).

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

Per run, across all searches. Eventbrite serves 20 per page.

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

Opens each event page (one extra request per event) for the price range and currency, free/paid flag, organizer name and page, full description, event status and attendance mode.

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

Off by default: Eventbrite answers Apify's own addresses, while its bot check challenges datacenter proxies. If a request is challenged, the run retries and moves to a residential address by itself.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.eventbrite.com/d/indonesia--bali/all-events/"
  ],
  "dates": "all",
  "maxEvents": 20,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

One flat row per event: id, name, URL and tickets URL, start and end date and time with time zone, venue, address, city, country and coordinates, category, subcategory and tags, image, online and series flags, and with details on: price range and currency, free flag, organizer, description, status.

# 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 = {
    "startUrls": [
        "https://www.eventbrite.com/d/indonesia--bali/all-events/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/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 = { "startUrls": ["https://www.eventbrite.com/d/indonesia--bali/all-events/"] }

# Run the Actor and wait for it to finish
run = client.actor("lergassy/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 '{
  "startUrls": [
    "https://www.eventbrite.com/d/indonesia--bali/all-events/"
  ]
}' |
apify call lergassy/eventbrite-scraper --silent --output-dataset

```

## MCP server setup

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