# Eventbrite Scraper: Events, Ticket Prices, Venues, Organizers (`datagleaner/eventbrite-scraper`) Actor

Eventbrite scraper: search events by city, keyword and date, or read event links. Returns name, dates with timezone, venue and map position, ticket price range, organizer, tags and image. No login, no API key, no browser. $1.50 per 1,000 events.

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

## Pricing

$1.50 / 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 Scraper: events by city, keyword and date, with ticket prices and organizers

**Scrape Eventbrite events for any city, keyword or date range, or from event links, into JSON, CSV or Excel: name, dates with timezone, venue with map coordinates, ticket price range, organizer, category, tags and image.** No Eventbrite account, no API key, no browser.

**Price: $1.50 per 1,000 events** ($0.0015 per event), no start fee. See Pricing below.

### Why use this one

- **Ticket prices are numbers.** `priceMin`, `priceMax` and `currency` come back as numbers (free events have 0), next to the venue's latitude and longitude, so you can sort, filter and map without cleaning.
- **Organizer and image included.** Each row has the organizer's name, link, verified flag, event count and total attendees, and the event's cover image link `imageUrl`.
- **Cities, keywords and dates, or just links.** Use place names or Eventbrite slugs, `datePreset` such as `this-weekend`, exact dates, or paste event and search links. `online` finds online events.
- **A bad location does not sink the run.** An unknown place is reported in the log and skipped, rate limits are waited out, and an event whose page cannot be read still comes back with its search data.
- **Honest limit:** Eventbrite serves about 980 events per search, so split big cities by keyword or date range. Prices and organizer totals need `includeDetails` (on by default).

### Minimal input

```json
{"searchLocations": ["ny--new-york"], "keyword": "jazz", "datePreset": "this-weekend", "maxEventsPerSearch": 50}
```

### Sample output row (real platform run, shortened)

```json
{
  "name": "IV of Spades live in New York City",
  "url": "https://www.eventbrite.com/e/iv-of-spades-live-in-new-york-city-tickets-1994283386293",
  "startDate": "2026-10-11T17:00:00-04:00",
  "timezone": "America/New_York",
  "venueName": "Melrose Ballroom",
  "address": "36-08 33rd Street, Queens, NY 11106",
  "latitude": 40.7555778,
  "longitude": -73.92858609999999,
  "organizerName": "BERCE LLC",
  "organizerEventCount": 4,
  "priceMin": 128.82,
  "priceMax": 225.93,
  "currency": "USD",
  "isFree": false,
  "category": "Music",
  "tags": [
    "Rock",
    "Music",
    "Concert or Performance",
    "Nyclivemusic"
  ],
  "imageUrl": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1189053742%2F229125740063%2F1%2Foriginal.20260717...",
  "sourceUrl": "https://www.eventbrite.com/d/ny--new-york/all-events/?start_date=2026-10-11&end_date=2026-10-11"
}
```

### What does Eventbrite Scraper do?

It pages through an Eventbrite search (20 events per request) and returns each event as one row in the Apify dataset, exportable as JSON, CSV or Excel or readable through the API. Typical uses:

- **Local event listings and newsletters.** Pull this weekend's events for a city into a site, app or email.
- **Lead generation.** Find organizers, venues and the events they run, with the organizer's page link and how many events and attendees they have.
- **Market and competitor research.** See what is on, where, at what ticket price and in which category.
- **Venue and promoter prospecting.** List events by venue, city or keyword with coordinates for mapping.
- **Datasets for AI and RAG.** Get clean event text, dates and places for planning agents and recommendation tools.
- **Recurring feeds.** Run daily with `datePreset: "today"` or `"this-weekend"` on a schedule.

### Input

| Field | Type | What it does |
|---|---|---|
| `searchLocations` | list of text | Place slugs such as `ny--new-york`, `ca--san-francisco`, `united-kingdom--london`, or `online`. Plain names (`London`, `New York, NY`) also work. One search per location. Default `ny--new-york` in the form. |
| `keyword` | text | Optional. Narrows every location search: `jazz`, `marketing`, `startup`, `yoga`, `music`. |
| `datePreset` | choice | `any` (default), `today`, `tomorrow`, `this-week`, `this-weekend`, `next-week`. |
| `startDate`, `endDate` | text | Optional day range as `YYYY-MM-DD`. Overrides `datePreset`. |
| `startUrls` | list | Optional. Event links (`https://www.eventbrite.com/e/...`) or search links (`https://www.eventbrite.com/d/ny--new-york/jazz/`). Search links are used exactly as given, with their own filters. |
| `maxEventsPerSearch` | number | Cap per location or search link. Default 100. It is also your cost cap per search. |
| `includeDetails` | true/false | Default true: open each event's page for prices, organizer and full description. Turn off for a fast list without prices. |
| `requestDelaySeconds` | number | Pause before each request, default 1.5 s (randomised up to 1.4x). Raise it if Eventbrite rate-limits you. |
| `proxyConfiguration` | object | Optional Apify Proxy. Default is no proxy. |

```json
{
  "searchLocations": ["ny--new-york", "online"],
  "keyword": "marketing",
  "datePreset": "this-week",
  "maxEventsPerSearch": 100
}
```

Events are deduplicated across the run. Eventbrite serves at most about 980 events per search, so split big cities by keyword or date range for more.

### Output

One row per event.

| Field | Meaning |
|---|---|
| `id`, `name`, `url` | Eventbrite event id, title and link. |
| `summary`, `description` | Short summary, and the full description as plain text (needs `includeDetails`). |
| `startDate`, `endDate`, `timezone` | ISO 8601 with the event's own UTC offset, and its IANA timezone. |
| `isOnline`, `isCancelled` | Online event flag, and whether the event is cancelled. |
| `venueName`, `address`, `city`, `region`, `postalCode`, `country`, `latitude`, `longitude` | Venue and map position. Empty for online events. |
| `organizerId`, `organizerName`, `organizerUrl`, `organizerVerified`, `organizerEventCount`, `organizerTotalAttendees` | The organizer and the totals Eventbrite shows on the event page (needs `includeDetails`). |
| `priceMin`, `priceMax`, `currency`, `isFree` | Ticket price range as numbers, and the free flag (needs `includeDetails`). Free events have prices `0`. |
| `salesStatus` | For example `on_sale` or `sold_out` (needs `includeDetails`). |
| `category`, `subcategory`, `format`, `tags` | Eventbrite's taxonomy and the organizer's tags. |
| `language`, `imageUrl`, `publishedAt` | Event language, cover image link, and when the event was created. |
| `scrapedAt`, `sourceType`, `sourceUrl`, `searchLocation`, `searchKeyword` | When it was scraped, whether it came from a `search` or a `url`, the page it came from, and the location and keyword you searched. |

```json
{
  "id": "1999067605020",
  "name": "Jazz Night",
  "url": "https://www.eventbrite.com/e/jazz-night-tickets-1999067605020",
  "summary": "Chill out with smooth tunes and good vibes at our in-person Jazz Night—let’s groove together!",
  "description": "Jazz Night\n\nGet ready for a awesome evening filled with smooth tunes and good vibes! Join us in person to experience liv...",
  "startDate": "2026-10-10T19:30:00-04:00",
  "endDate": "2026-10-10T23:00:00-04:00",
  "timezone": "America/New_York",
  "isOnline": false,
  "isCancelled": false,
  "venueName": "Enoteca",
  "address": "772 9th Avenue, New York, NY 10019",
  "city": "New York",
  "region": "NY",
  "postalCode": "10019",
  "country": "US",
  "latitude": 40.7643484,
  "longitude": -73.9879752,
  "organizerId": "120649553139",
  "organizerName": "Enoteca HK",
  "organizerUrl": "https://www.eventbrite.com/o/enoteca-hk-120649553139",
  "organizerVerified": false,
  "organizerEventCount": 11,
  "organizerTotalAttendees": 47,
  "priceMin": 21.05,
  "priceMax": 21.05,
  "currency": "USD",
  "isFree": false,
  "salesStatus": "on_sale",
  "category": "Music",
  "subcategory": "Jazz",
  "format": "Performance",
  "tags": [
    "Music",
    "Concert or Performance",
    "Concert",
    "Live",
    "Jazz",
    "Night"
  ],
  "language": "en-US",
  "imageUrl": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F1192092127%2F2983047163909%2F1%2Foriginal.20260828-031017?...",
  "publishedAt": "2026-08-28T03:02:12Z",
  "scrapedAt": "2026-10-09T10:15:38+00:00",
  "sourceType": "search",
  "sourceUrl": "https://www.eventbrite.com/d/ny--new-york/jazz/",
  "searchLocation": "ny--new-york",
  "searchKeyword": "jazz"
}
```

### Pricing

Pay per event, with the price final:

- **$0.0015 per event** ($1.50 per 1,000 events), with no start fee.

You pay only for events you receive: nothing for locations that are unknown, failed requests or retries, and the run stops by itself when your **maximum total charge** is reached. Platform usage is included.

Example: three cities with 300 events each is 900 events, so 900 x $0.0015 = **$1.35**. A daily run for `today` in one city with about 60 events costs about $0.09 per day.

### Use it from the API

```bash
curl -X POST "https://api.apify.com/v2/acts/datagleaner~eventbrite-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"searchLocations": ["ny--new-york"], "keyword": "jazz", "datePreset": "this-weekend", "maxEventsPerSearch": 50}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("datagleaner/eventbrite-scraper").call(run_input={
    "searchLocations": ["united-kingdom--london"],
    "datePreset": "this-weekend",
    "maxEventsPerSearch": 100,
})
for event in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(event["startDate"], event["name"], event["priceMin"], event["venueName"])
```

### Use it from n8n, Make, Zapier or an AI agent

Actor ID: `datagleaner/eventbrite-scraper`

Minimal input:

```
{"searchLocations": ["ny--new-york"], "maxEventsPerSearch": 10}
```

Each tool below runs this Actor with your own Apify API token.

- **n8n:** add the **Apify** node (`@apify/n8n-nodes-apify`). On n8n Cloud you install it from the community node registry. Choose **Run an Actor and get dataset**, set Actor to `datagleaner/eventbrite-scraper` and paste the input above.
- **Make:** use the Apify app's **Run an Actor** module, then **Get Dataset Items** to read the results. **Watch Actor Runs** can trigger a scenario when a run finishes.
- **Zapier:** use the Apify action **Run Actor**, then the search **Fetch dataset items**. The trigger **Finished Actor run** starts a Zap when a run ends.
- **AI agents (MCP):** connect to `https://mcp.apify.com/?tools=datagleaner/eventbrite-scraper`. Without a token, an agent can still find Actors with the `search-actors` tool, but running this one needs your Apify account. In Claude Code:

  ```
    claude mcp add --transport http apify "https://mcp.apify.com/?tools=datagleaner/eventbrite-scraper"
  ```

  Then run `/mcp` to sign in to Apify in your browser. Then ask in plain language, for example: "Use the Eventbrite scraper to list the next 30 events in New York with their prices and venues, and tell me which organizers run the most events."
- **LangChain (Python):**

```python
## pip install langchain-apify, then set APIFY_TOKEN in your environment
import json
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("datagleaner/eventbrite-scraper")
result = tool.invoke({"run_input": json.loads('{"searchLocations": ["ny--new-york"], "maxEventsPerSearch": 10}')})
```

### Limits

- **Public events only.** Private events, password-protected events and attendee lists are not available and are not collected.
- **About 980 events per search.** Eventbrite serves 49 pages of 20. Split a large city by keyword or date range.
- **Prices need `includeDetails`.** The search list has no prices, so the Actor reads each event's page (one extra request per event). With it off you get name, dates, venue, category and tags only.
- **Follower counts are not included.** Eventbrite does not show an organizer's follower count on event or search pages; you get the organizer's link, their event count and total attendees instead.
- **Location names** that are not Eventbrite slugs are resolved by Eventbrite itself. If a name is ambiguous or unknown, the location is skipped with a warning: use the slug from the Eventbrite address bar (`eventbrite.com/d/<slug>/all-events/`).
- **Speed.** Polite pacing means about 1 to 2 events per second with details on.
- Eventbrite rate limits are handled with backoff. If a run keeps getting HTTP 429, raise `requestDelaySeconds` or enable `proxyConfiguration`.

### FAQ

**Do I need an Eventbrite account or API key?** No. The Actor reads public pages and needs no login of any kind.

**Can it find events near me?** Yes: use your city's slug or name in `searchLocations`, for example `Berlin` or `ca--los-angeles`.

**How do I get only this weekend's events?** Set `datePreset` to `this-weekend`, or give exact days in `startDate` and `endDate`.

**Can I scrape online events only?** Yes: `searchLocations: ["online"]`, optionally with a `keyword`.

**Are ticket prices included?** Yes, as numbers with a currency, when `includeDetails` is on (the default). Eventbrite shows the ticket price range; fees added at checkout are not part of it.

**What happens if I start it with no input?** It runs a small built-in example, 5 events in New York (billed as 5 events), and says so in the run's status message. Give `searchLocations` or `startUrls` for your own run.

**Can I export to CSV or Excel?** Yes, from the run's dataset page or the API.

**Why is a field empty?** Online events have no venue; free events have prices of 0; some organizers leave out fields. Empty means Eventbrite did not publish it.

### Responsible use

This Actor reads only publicly visible Eventbrite pages and paces its requests politely. Events can include organizer names and other personal data: **you** are responsible for a lawful basis, for respecting Eventbrite's terms and organizers' rights, and for your obligations under GDPR and any other law that applies. Do not use the output to spam organizers, harass individuals or evade platform rules. This is not legal advice.

# Actor input Schema

## `searchLocations` (type: `array`):

Eventbrite place slugs such as ny--new-york, ca--san-francisco, united-kingdom--london, or online for online events. A plain city name such as London or New York, NY also works; Eventbrite resolves it. Each location is one search.

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

Optional. Narrows every location search, for example jazz, marketing, music, startup, yoga or free. Leave empty for all events.

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

Quick date filter for the location searches (search links keep the filter they already carry). Ignored when a start or end date is set.

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

Optional. Only events on or after this day, as YYYY-MM-DD.

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

Optional. Only events on or before this day, as YYYY-MM-DD.

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

Optional. Eventbrite event links (https://www.eventbrite.com/e/...) or search links (https://www.eventbrite.com/d/ny--new-york/jazz/). Event links return that event; search links are paged like a location search.

## `maxEventsPerSearch` (type: `integer`):

Upper bound on events returned for each location or search link. Each returned event is billed, so this is also your cost cap per search. Eventbrite serves about 980 events per search at most.

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

Open each event's own page to add ticket prices, free flag, organizer and the full description. Slower (one extra request per event) but complete. Turn off for a fast list with name, dates, venue and tags only.

## `requestDelaySeconds` (type: `number`):

Base pause before each request to Eventbrite; the actual pause is randomised up to 1.4x. Raise it if Eventbrite answers with rate limits (HTTP 429).

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

Optional. The default is no proxy, which works from Apify's servers. Enable Apify Proxy only if Eventbrite rate-limits you.

## Actor input object example

```json
{
  "searchLocations": [
    "ny--new-york"
  ],
  "datePreset": "any",
  "startUrls": [],
  "maxEventsPerSearch": 100,
  "includeDetails": true,
  "requestDelaySeconds": 1.5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "searchLocations": [
        "ny--new-york"
    ],
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("datagleaner/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 = {
    "searchLocations": ["ny--new-york"],
    "startUrls": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

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

```

## MCP server setup

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