# Eventbrite Scraper — Events, Venues & Organizer Leads (`haketa/eventbrite-scraper`) Actor

Scrape Eventbrite events by city or keyword: name, date, venue, address, category, price and ticket link. Optional organizer enrichment adds website, social links, follower count and total events hosted — perfect for event lead-gen and market research. Fast, no login.

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

## Pricing

from $1.50 / 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 Scraper — Events, Venues, Categories & Organizer Leads

> **Extract Eventbrite events at scale — with dates, venues, addresses, categories, ticket links, and rich organizer lead data (website, socials, follower counts).** Search any city or keyword and get clean, structured JSON, CSV or Excel in seconds. Built for event marketers, sponsors, venue sales teams, researchers, and lead-gen — no login, no API key.

[![Eventbrite Data](https://img.shields.io/badge/Eventbrite-Events%20%2B%20Organizer%20Leads-f05537)]()
[![Coverage](https://img.shields.io/badge/Coverage-Global%20\(any%20city%20%2F%20online\)-blue)]()
[![Organizer Leads](https://img.shields.io/badge/Includes-Organizer%20Website%20%2B%20Socials-success)]()
[![No Login](https://img.shields.io/badge/Auth-None%20Required-brightgreen)]()
[![Speed](https://img.shields.io/badge/Speed-60%20events%20in%20~9s-orange)]()

***

### What This Actor Does

The **Eventbrite Scraper** turns any Eventbrite search into a structured dataset. Give it a location (`united-states`, `ny--new-york`, `online`) and an optional keyword (`music`, `business`, `food-and-drink`), and it returns every event as a clean row with:

- **Event** — name, start/end date & time, timezone, online/in-person flag, summary
- **Venue & location** — venue name, street address, city, region, country, coordinates
- **Classification** — category and subcategory (Music, Business, Food & Drink, Community…)
- **Links & media** — event URL, tickets URL, cover image
- **Organizer (optional lead-gen)** — organizer name, **website, social links (Facebook, X, Instagram)**, **follower count**, total events hosted, attendees hosted, and profile URL

It works for **any location worldwide** — a specific city, a whole country, or online events — and paginates through the full result set (up to ~1,000 events per search).

#### The differentiator: organizer leads

Most Eventbrite tools stop at the event. Turn on **organizer enrichment** and every event also carries the organizer's **website, social profiles, and audience size** — turning an event list into a **lead list of active event organizers** you can pitch, sponsor, or partner with. This is the data sponsors, venues, ticketing vendors, and B2B event-services companies actually need.

***

### Why Use This Instead of Doing It Yourself

- Eventbrite is a **JavaScript app** — a plain page fetch returns markup, not clean event data; you have to dig the structured payload out of the page.
- Event records and **organizer profiles live on different pages** — stitching them together (and caching organizers so you don't re-fetch) is fiddly.
- Fields come back **nested and inconsistent** (venue address, category tags, ticket info) and need normalizing before they're usable.
- Doing it at volume means **pagination, retries, backoff and dedup** done right.

This Actor handles all of it: full pagination, clean camelCase fields, category/subcategory extraction, venue+address normalization, organizer enrichment with caching, retries, and dedup — so you get a tidy dataset instead of a scraping project.

***

### Quick Start

#### Run it in the console (no code)

1. Open the Actor and click **Try for free**.
2. Set a **Location** (`united-states`, `online`, or a city like `ny--new-york`).
3. Optionally add a **Search keyword** (e.g. `music`, `business`, `tech`).
4. Toggle **Enrich with organizer lead data** if you want organizer websites, socials and followers.
5. Set **Max events** and click **Start**.
6. Export as **JSON, CSV, Excel, or HTML**, or push to Google Sheets, a webhook, or a database.

#### Run it via API (Python)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "location": "ny--new-york",
    "query": "music",
    "includeOrganizer": True,
    "maxItems": 300,
}

run = client.actor("YOUR_USERNAME/eventbrite-scraper").call(run_input=run_input)

for e in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(e["name"], e["startDate"], e["city"], e.get("organizerWebsite"))
```

#### Build an organizer lead list (Python)

```python
run_input = {"location": "united-states", "query": "business", "includeOrganizer": True, "maxItems": 500}
run = client.actor("YOUR_USERNAME/eventbrite-scraper").call(run_input=run_input)

leads = {}
for e in client.dataset(run["defaultDatasetId"]).iterate_items():
    if e.get("organizerWebsite"):
        leads[e["organizerName"]] = {
            "website": e["organizerWebsite"],
            "followers": e.get("organizerFollowers"),
            "events_hosted": e.get("organizerTotalEvents"),
            "profile": e.get("organizerProfileUrl"),
        }
print(len(leads), "unique organizer leads")
```

#### Run it via API (Node.js)

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('YOUR_USERNAME/eventbrite-scraper').call({
    location: 'online',
    query: 'tech',
    maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'events');
```

***

### Input Parameters

| Field | Type | Description |
|---|---|---|
| `location` | string | Eventbrite location slug: `united-states`, `online`, `ny--new-york`, `ca--los-angeles`, `tx--austin`, `united-kingdom`, `ca--toronto`, etc. Use `united-states` or `online` for the widest results. |
| `query` | string | Optional keyword or category (`music`, `business`, `food-and-drink`, `tech`, `comedy`). Leave empty for all events in the location. |
| `includeOrganizer` | boolean | Add each event's organizer profile (website, socials, followers, total events). Great for lead-gen; slightly slower. Default `false`. |
| `maxItems` | integer | Maximum events to return. A single search caps around 1,000 (~49 pages). Default `100`. |
| `proxyConfiguration` | object | Optional. Works fine without a proxy. |

**Finding a location slug:** it's the part of an Eventbrite search URL after `/d/`. For `eventbrite.com/d/ca--san-francisco/all-events/`, the slug is `ca--san-francisco`.

***

### Output

Each event is one dataset record. Example (with organizer enrichment on):

```json
{
  "id": "1990839672051",
  "name": "Summer Rooftop Jazz Series",
  "url": "https://www.eventbrite.com/e/summer-rooftop-jazz-series-tickets-1990839672051",
  "startDate": "2026-10-17",
  "startTime": "20:00",
  "timezone": "America/New_York",
  "isOnline": false,
  "summary": "An evening of live jazz on the rooftop...",
  "venueName": "The Skyline Loft",
  "address": "880 Flushing Avenue",
  "city": "Brooklyn",
  "region": "NY",
  "postalCode": "11206",
  "country": "US",
  "category": "Music",
  "subcategory": "Jazz",
  "imageUrl": "https://img.evbuc.com/....jpg",
  "ticketsUrl": "https://www.eventbrite.com/e/....",
  "organizerName": "Elsewhere",
  "organizerWebsite": "https://www.elsewhere.club/",
  "organizerFacebook": "https://www.facebook.com/....",
  "organizerTwitter": "https://x.com/....",
  "organizerInstagram": "https://instagram.com/....",
  "organizerFollowers": "15k",
  "organizerTotalEvents": 602,
  "organizerAttendeesHosted": "98k",
  "organizerProfileUrl": "https://www.eventbrite.com/o/elsewhere-5494940201",
  "scrapedAt": "2026-09-23T18:40:00.000Z"
}
```

#### Field reference

| Field | Meaning |
|---|---|
| `id`, `name`, `url` | Event identity and page link |
| `startDate`, `startTime`, `endDate`, `endTime`, `timezone` | Schedule |
| `isOnline`, `summary` | Online flag and short summary |
| `venueName`, `address`, `city`, `region`, `postalCode`, `country`, `latitude`, `longitude` | Venue & location |
| `category`, `subcategory` | Classification |
| `imageUrl`, `ticketsUrl`, `isFree` | Media, tickets, free flag |
| `organizerName`, `organizerWebsite`, `organizerFacebook`, `organizerTwitter`, `organizerInstagram` | Organizer + lead-gen (with `includeOrganizer`) |
| `organizerFollowers`, `organizerTotalEvents`, `organizerAttendeesHosted`, `organizerProfileUrl` | Organizer audience & profile |
| `scrapedAt` | Scrape timestamp |

***

### Use Cases

#### 1. Event organizer lead generation

Turn on organizer enrichment and build targeted lists of active organizers by city and category — with their website, socials and audience size. Ideal for ticketing vendors, sponsorship sales, event-tech, catering, AV, and venue outreach.

#### 2. Sponsorship & partnership prospecting

Filter to high-follower organizers hosting many events in your target category — the ones worth a sponsorship conversation.

#### 3. Venue & local-market research

See what's happening in a city: which venues host the most events, which categories are hot, and how the local event calendar looks over time.

#### 4. Competitive & category monitoring

Track competing events in your niche — dates, venues, organizers — and spot new entrants early.

#### 5. Event aggregation & discovery

Populate a "what's on" site, newsletter, or app with fresh, structured event listings for any city or online.

#### 6. Market & trend analysis

Aggregate events by category, geography and time to analyze demand, seasonality and pricing across the live-events market.

#### 7. CRM & outreach enrichment

Feed organizer websites and socials into your CRM to enrich leads and power personalized outreach.

***

### Tips for Best Results

- **Widen or narrow with `location`.** `united-states` or `online` for breadth; a city slug like `il--chicago` for local depth.
- **Use `query` as a category.** `music`, `business`, `food-and-drink`, `comedy`, `tech` map to Eventbrite's categories.
- **Enable organizer enrichment for lead-gen**, keep it off for a fast event-only pull.
- **Schedule it.** Daily/weekly runs build a live event calendar and a growing organizer lead database.
- **Split big jobs** across cities or categories for speed and coverage.

***

### Frequently Asked Questions

**Do I need an Eventbrite account or API key?**
No. The Actor reads publicly visible event and organizer information — no login or key.

**How many events can I get?**
Up to roughly 1,000 per search (~49 pages). For more, split by city, category, or date.

**What does organizer enrichment add?**
For each event's organizer: name, website, Facebook/X/Instagram, follower count, total events hosted, attendees hosted, and profile URL — the fields that make an event list a lead list.

**Does it include attendee personal data?**
No. It returns public event and organizer information only — not attendee lists or private contact details.

**How fast is it?**
About 60 events in ~9 seconds without enrichment; enrichment adds one cached request per unique organizer.

**What export formats are supported?**
JSON, CSV, Excel, HTML, or via API — plus Google Sheets, webhooks, Make, and Zapier.

**Can I schedule it?**
Yes, with Apify Schedules — perfect for keeping an event calendar and organizer database up to date.

***

### Legal & Responsible Use

This Actor collects only publicly available event and organizer information for legitimate research, marketing, and business use. You are responsible for how you use the data. Please:

- Respect Eventbrite's Terms of Service and robots directives.
- Comply with applicable data-protection laws (GDPR, CCPA, etc.) when handling personal data such as organizer contact details.
- Do not use the data for spam, harassment, or any unlawful purpose.
- Use reasonable request volumes and scheduling.

This project is an independent tool and is not affiliated with, endorsed by, or sponsored by Eventbrite.

# Actor input Schema

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

Eventbrite location slug. Examples: united-states, online, ny--new-york, ca--los-angeles, tx--austin, il--chicago, united-kingdom, ca--toronto. Use 'united-states' or 'online' for the widest results.

## `query` (type: `string`):

Optional keyword or category (e.g. music, business, food-and-drink, tech, comedy). Leave empty to include all events in the location.

## `includeOrganizer` (type: `boolean`):

Turn on to add each event's organizer profile: website, social links, follower count and total events hosted. Great for lead-gen. Adds one request per unique organizer, so it's a bit slower.

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

Maximum number of events to return. Eventbrite caps a single search around 1,000 results (≈49 pages).

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

Optional. This Actor works fine without a proxy.

## Actor input object example

```json
{
  "location": "united-states",
  "query": "music",
  "includeOrganizer": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `id` (type: `string`):

Eventbrite event ID

## `name` (type: `string`):

Event name

## `url` (type: `string`):

Event page URL

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

Start date

## `startTime` (type: `string`):

Start time

## `timezone` (type: `string`):

Timezone

## `isOnline` (type: `string`):

Is an online event

## `venueName` (type: `string`):

Venue name

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

City

## `region` (type: `string`):

State/region

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

Category

## `subcategory` (type: `string`):

Subcategory

## `ticketsUrl` (type: `string`):

Tickets link

## `organizerName` (type: `string`):

Organizer name

## `organizerWebsite` (type: `string`):

Organizer website

## `organizerFollowers` (type: `string`):

Organizer followers

## `organizerProfileUrl` (type: `string`):

Organizer profile URL

## `scrapedAt` (type: `string`):

ISO timestamp

# 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 = {
    "location": "united-states",
    "query": "music",
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/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 = {
    "location": "united-states",
    "query": "music",
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/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 '{
  "location": "united-states",
  "query": "music",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call haketa/eventbrite-scraper --silent --output-dataset

```

## MCP server setup

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