# Event & Organizer Leads Scraper for Eventbrite (`scrapesage/eventbrite-scraper`) Actor

Scrape Eventbrite events with real ticket prices, dates, full venue geo, sold-out status & complete organizer profiles: followers, attendees hosted, website & socials. Optionally extract organizer contact emails for lead generation. Search by keyword, city, category or URL. Export JSON, CSV, Excel.

- **URL**: https://apify.com/scrapesage/eventbrite-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Travel, Agents
- **Features:** Limited permissions
- **Stats:** 52 total users, 24 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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 + Organizer Leads (Ticket Prices, Emails & Socials)

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Eventbrite, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Eventbrite" is referenced only to describe the publicly available website this Actor collects data from.

Extract **complete Eventbrite event data** - **real min/max ticket prices, sales status and Eventbrite's own urgency badges** (sales end soon, few tickets left, going fast), **refund policy, age limit, door time, sales start/end dates, every upcoming date of a recurring series, full venue geo with neighborhood** - plus **complete organizer profiles**: followers, total attendees hosted, total and upcoming events, verified / super-organizer badges, years on Eventbrite, website, X/Twitter, Facebook, Instagram, TikTok, LinkedIn and YouTube. Optionally turn every organizer into a **ready-to-contact B2B lead** with contact emails, phone and contact form from their own website.

No login, no cookies, no browser: fast, structured JSON straight from Eventbrite's own search and event data.

### Why this Eventbrite scraper?

| Data | This actor |
| --- | --- |
| Min/max ticket price + currency, free flag | ✅ |
| Sales status, sales start/end, "sales end soon" / "few tickets left" / "going fast" badges | ✅ |
| Refund policy, age restriction, door time | ✅ |
| Recurring series: upcoming dates and how many are left | ✅ |
| Venue address, neighborhood, latitude/longitude | ✅ |
| Organizer followers, attendees hosted, total + upcoming events, years on Eventbrite, badges | ✅ |
| Organizer website, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, YouTube | ✅ |
| Organizer **contact emails** + phone (from their own website) | ✅ opt-in |
| Full description, agenda, lineup with bios, FAQs, photo gallery | ✅ opt-in |
| Lead score (0–100) per organizer | ✅ |
| Unrelated "filler" results left out of keyword searches | ✅ |

### What you can scrape

- **Keyword searches in any city, state, country or online** - `"yoga"` in `ny--new-york`, `"tech conference"` in `London, UK`, `"digital marketing"` online.
- **Whole categories** - every Music, Food & Drink, Business, Health… event in a location (21 Eventbrite categories in a pick-list).
- **Everything in an area** - leave the keywords empty to export every upcoming event in a city. Big cities list thousands of events; the actor reads past Eventbrite's ~1,000-results-per-search window automatically, in date windows.
- **Organizers** - paste an organizer profile URL (`/o/...`) to get **every upcoming dated event** they run.
- **Specific events** - paste event URLs (`/e/...`, any Eventbrite country domain) or Eventbrite search / category pages (`/d/...`, `/b/...`).
- **Filters** - in-person or online only, free events only, events with tickets on sale, a date window, relevance or soonest-first order.

### Use cases

- **Lead generation** - event organizers are active buyers: venues, catering, AV, ticketing, sponsorship, marketing, staffing. Score them by audience (`organizerTotalAttendees`, `organizerNumFollowers`, `organizerNumUpcomingEvents`) and reach them on their website, socials or email.
- **Event discovery & aggregation** - feed calendars, newsletters and apps with structured events, prices, venues and images for New York, London, Los Angeles, Chicago, Toronto, Sydney, Berlin and thousands more places.
- **Market & pricing intelligence** - track ticket prices, sell-outs and "sales end soon" signals by city and category.
- **Competitor monitoring** - schedule runs on competitors' organizer pages to see every new date they publish.
- **Sponsorship prospecting** - find events by topic, size and city, then contact the organizer.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) - the free plan is enough to try this actor.
2. Open the **Eventbrite Scraper**, type your **Search queries** and **Locations** (or pick **Categories**, or paste Eventbrite URLs), and click **Start**.
3. Watch results arrive in the dataset table - switch between the **Events**, **Organizer leads**, **Tickets & sales** and **Venues & dates** views.
4. **Export** as JSON, CSV, Excel, XML or RSS - or pull results through the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "searchQueries": ["ai conference"],
    "locations": ["ny--new-york", "online"],
    "categories": ["business"],
    "dateFrom": "0 days",
    "dateTo": "60 days",
    "maxEvents": 200,
    "includeOrganizerProfile": true,
    "includeOrganizerStats": true,
    "enrichOrganizerEmails": true,
    "deduplicateOrganizers": true
}
```

- **searchQueries** - keywords; each runs in every location. Leave empty to browse every event in the locations.
- **locations** - an Eventbrite location slug from a search URL (`ny--new-york`, `ca--san-francisco`, `united-kingdom--london`, `germany`, `ny--new-york--brooklyn`), a city name (`Austin, TX`, `London, UK`, `Berlin`), a state or country, or `online`. Empty = the United States. A city name is matched to Eventbrite's own place list and the run tells you how it was read.
- **categories** - Eventbrite categories (`music`, `business`, `food-and-drink`, `science-and-tech`, `health`, `arts`, …): each one is its own search in every location, added to your keyword searches.
- **startUrls** / **urlsFromFile** - event, organizer, search or category URLs; paste a list or link a .txt/.csv file or Google Sheet.
- **eventFormat**, **freeEventsOnly**, **onlyAvailableTickets**, **dateFrom** / **dateTo**, **sortBy** - filters and order; every filter is checked on every event before it is saved. Dates take a calendar date (`YYYY-MM-DD`) or a time from today (`0 days` = today, `7 days`, `2 weeks`, `1 month`), so a scheduled run or a saved task always covers the coming weeks.
- **maxEvents** - the most events to save, shared fairly between your searches (default 100).
- **strictKeywordMatching** *(default on)* - leaves out the unrelated events Eventbrite adds to thin keyword searches.
- **includeOrganizerProfile** *(default on)* - organizer description, logo, website, socials, upcoming-event count, total events.
- **includeOrganizerStats** *(default on)* - total attendees hosted, years on Eventbrite, verified / super-organizer badges.
- **enrichOrganizerEmails** *(default off)* - the organizer's own website (home + up to 2 contact/about pages): emails on the organizer's own domain, phone, contact form, extra socials.
- **deduplicateOrganizers** *(default off)* - also save one lead record per organizer (`type: "organizer"`).
- **includeStructuredContent** *(default off)* - full description, agenda, lineup, FAQs, parking and photo gallery (one extra page per event).

### Output

One record per event (`type: "event"`), plus optional organizer lead records (`type: "organizer"`):

```json
{
    "type": "event",
    "eventId": "1996759953773",
    "name": "MLW Lucha de los Muertos (Fusion TV Taping)",
    "summary": "MLW expands its November weekend with an added Sunday show with a Fusion TV taping Sunday, November 8, featuring CMLL luchadores!",
    "url": "https://www.eventbrite.com/e/mlw-lucha-de-los-muertos-fusion-tv-taping-tickets-1996759953773",
    "status": "live",
    "startDateLocal": "2026-11-08T19:00",
    "endDateLocal": "2026-11-08T23:00",
    "startDateUtc": "2026-11-09T01:00:00Z",
    "timezone": "America/Chicago",
    "durationInMinutes": 240,
    "doorTime": "2026-11-08T17:15",
    "eventType": "Game or Competition",
    "category": "Sports & Fitness",
    "subcategory": "Wrestling",
    "minTicketPrice": 13.5,
    "maxTicketPrice": 113.95,
    "currency": "USD",
    "isFree": false,
    "isSoldOut": false,
    "hasAvailableTickets": true,
    "salesStatus": "on_sale",
    "salesEndSoon": false,
    "fewTicketsLeft": true,
    "goingFast": false,
    "salesStartDate": "2026-08-21T10:00:00",
    "salesEndDate": "2026-11-08T22:00:00",
    "refundPolicy": "No Refunds",
    "refundPolicyType": "no_refunds",
    "ageRestriction": "All ages",
    "venueName": "Cicero Stadium",
    "addressFull": "1909 South Laramie Avenue, Cicero, IL 60804",
    "neighborhood": "Clyde",
    "city": "Cicero",
    "region": "IL",
    "postalCode": "60804",
    "country": "US",
    "latitude": 41.8542914,
    "longitude": -87.7538256,
    "organizerName": "Major League Wrestling",
    "organizerProfileUrl": "https://www.eventbrite.com/o/major-league-wrestling-14595423762",
    "organizerDescription": "Major League Wrestling (\"MLW\") is the new era of pro wrestling featuring top ranked wrestlers from around the world and next generation wrestling. Experience the rise of the renegades.",
    "organizerWebsiteUrl": "http://www.MLW.com",
    "organizerTwitter": "MLW",
    "organizerFacebook": "majorleaguewrestling",
    "organizerInstagram": "https://www.instagram.com/majorleaguewrestling/",
    "organizerTiktok": "https://www.tiktok.com/@majorleaguewrestling",
    "organizerNumFollowers": 3216,
    "organizerNumUpcomingEvents": 3,
    "organizerTotalEvents": 59,
    "organizerTotalAttendees": 30427,
    "organizerIsVerified": true,
    "organizerIsSuperOrganizer": true,
    "organizerVerifiedBadgeType": "sales",
    "organizerHostingSinceYears": 9,
    "hasWebsite": true,
    "leadScore": 86,
    "searchLocation": "il--chicago",
    "scrapedAt": "2026-10-14T20:59:18.078Z"
}
```

#### Fields and when they are filled

| Group | Fields | Filled when |
|---|---|---|
| Event | `eventId`, `name`, `summary`, `url`, `status`, `isCancelled`, `startDateLocal`, `endDateLocal`, `startDateUtc`, `endDateUtc`, `timezone`, `durationInMinutes`, `publishedDate`, `language`, `eventFormat`, `eventType`, `category`, `subcategory`, `tags`, `imageUrl`, `imageOriginalUrl` | always (an event with no subcategory or image leaves those empty) |
| Tickets | `minTicketPrice`, `maxTicketPrice`, `currency`, `isFree`, `isSoldOut`, `hasAvailableTickets`, `salesStatus`, `registrationUrl` | always |
| Refund policy | `refundPolicy`, `refundPolicyType` | paid events (Eventbrite shows no refund policy on free events) |
| Sales dates | `salesStartDate`, `salesEndDate` | when the organizer set them (sold-out and ended events often have none) |
| Urgency badges | `salesEndSoon`, `fewTicketsLeft`, `goingFast`, `urgencySignals` | events found by a search (Eventbrite shows these badges on search results only; events read from pasted event URLs leave them empty) |
| Extras | `ageRestriction`, `doorTime`, `presentedBy`, `refundDaysBeforeEvent` | when the organizer set an age limit / door time / presenter / a refund window |
| Series | `seriesId`, `seriesUpcomingDatesCount`, `seriesNextDates`, `seriesUrl` | recurring events only (`isRecurringSeries` is always set) |
| Venue | `venueName`, `addressFull`, `street`, `city`, `region`, `postalCode`, `country`, `latitude`, `longitude`, `neighborhood` | in-person events (online events have no venue); `neighborhood` for events found by a search; `latitude`, `longitude` and `neighborhood` stay empty when Eventbrite has no real map point for the venue (see **Good to know**) |
| Organizer | `organizerId`, `organizerName`, `organizerProfileUrl`, `organizerNumFollowers` | always |
| Organizer profile | `organizerDescription`, `organizerLogoUrl`, `organizerWebsiteUrl`, `organizerTwitter`, `organizerFacebook`, `organizerInstagram`, `organizerTiktok`, `organizerLinkedin`, `organizerYoutube`, `organizerNumUpcomingEvents`, `organizerTotalEvents`, `organizerLocations` | "Include organizer profile" on (default) - each social / website / description only when the organizer added it to Eventbrite |
| Organizer stats | `organizerTotalAttendees`, `organizerHostingSinceYears`, `organizerIsVerified`, `organizerIsSuperOrganizer`, `organizerVerifiedBadgeType` | "Include organizer stats" on (default); the badge type only for verified organizers |
| Contacts | `organizerEmail`, `organizerEmails`, `emailSource`, `organizerPhone`, `contactFormUrl` | "Enrich organizer emails" on, and the organizer's own website lists them |
| Event page | `description`, `agenda`, `lineup`, `faqs`, `parking`, `galleryImageUrls` | "Include full description, agenda, lineup & FAQs" on, and the organizer added them |
| Lead | `hasWebsite`, `emailFound`, `leadScore`, `organizerDetailsIncluded` | always |
| Provenance | `searchQuery`, `searchLocation`, `sourceUrl`, `scrapedAt` | the search or URL that found the event |

### Good to know

- **Keyword searches stop at the last real match.** Eventbrite answers a thin keyword search with its few real matches followed by every other event in the area (a search for "flamenco" in a city can return 5 flamenco events and then thousands of unrelated ones). The actor leaves that filler out and never bills it; turn off **Skip unrelated filler results** if you want everything Eventbrite returns.
- **Location searches keep events in that place.** Eventbrite puts venues it cannot find on its map on one default point in San Francisco, so its San Francisco and Bay Area searches mix in events from anywhere (up to 1 in 7 results of a San Francisco search). The actor reads those events' own addresses, keeps the ones in the place you searched (without map coordinates) and leaves out the rest, unbilled.
- **About 1,000 results per search.** Eventbrite shows about 1,000 results for one search; for a bigger export (a whole city, a big category) the actor continues in date windows until **Max events** or the end of the listings.
- **Emails come only from the organizer's own website**, never from Eventbrite (Eventbrite does not publish them), and only addresses on the organizer's own domain or an ordinary mailbox (gmail, outlook…) are kept - so a widget's, a font licence's or a platform's address is never passed off as the organizer's. Many event companies publish only a contact form: then you get the form URL and phone instead.
- **Organizer profile URLs return every upcoming date** of that organizer, a recurring series date by date. Keyword and area searches return each recurring series once (its next date), with `seriesNextDates` and `seriesUpcomingDatesCount`; a pasted series URL returns the series itself, from its first to its last date.
- **Online events have no location** on Eventbrite, so with **Event format: Online only** the locations are not used.
- **Dates are the event's local time** (`startDateLocal`); `startDateUtc` gives the same moment in UTC. A date window keeps every event happening in it, including multi-day events that started earlier.
- **Skip sold-out events** keeps only events whose tickets are on sale right now.

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

This Actor uses Apify's **pay-per-event** pricing: you are charged for the results it delivers, with no monthly rental. From November 19, 2026, each run also pays Apify's Actor start fee: $0.001 per GB of the run's memory, at least one event ($0.001 at the default 1 GB). The events it can charge are:

- **Actor start** - Charged when the Actor starts running: one event per GB of memory, minimum one event (from November 19, 2026).

- **Event** - One Eventbrite event with full details: dates, venue & geo coordinates, real ticket prices, availability flags, and the organizer's profile.

- **Organizer lead** - One deduplicated organizer lead record with stats, website, socials, and a 0-100 lead score. Only charged with "Emit organizer lead records" is enabled.

- **Organizer email** - Charged once per organizer whose website yields at least one contact email. Only when email enrichment is enabled.

The current price of each event is shown on the **Pricing** tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** - start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** - official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** - run it hourly/daily/weekly to monitor new events in a city, category, or for specific organizers; perfect for newsletters and lead pipelines.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** - trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/eventbrite-scraper').call({
    searchQueries: ['startup networking'],
    locations: ['ca--san-francisco'],
    maxEvents: 200,
    enrichOrganizerEmails: true,
    deduplicateOrganizers: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} events & organizer leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps - no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** - multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** - push new organizer leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** - get notified when a monitored search finds new events.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** - auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** - pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** - trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** - ask your assistant to "find AI conferences in New York next month and list organizer contacts" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready**: AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)**: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp), with no account and no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)**: agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **event lead-gen stack** - scrape the attendee/exhibitor side of the events your prospects run:

- **[Whova Event Scraper](https://apify.com/scrapesage/whova-event-scraper)** - attendees, agendas, and sponsors from Whova event apps.
- **[Swapcard Exhibitor Scraper](https://apify.com/scrapesage/swapcard-exhibitor-scraper)** - exhibitor lists and booth data from Swapcard-powered trade shows.
- **[Sched Conference Scraper](https://apify.com/scrapesage/sched-conference-scraper)** - sessions and speakers from Sched conference sites.
- **[Airbnb Scraper](https://apify.com/scrapesage/airbnb-scraper)** - listings, prices, and availability.
- **[Bark Listing Scraper](https://apify.com/scrapesage/bark-listing-scraper)** - service-provider leads from Bark.
- **[Facebook Ad Library Scraper](https://apify.com/scrapesage/facebook-ad-library-scraper)** - competitor ad intelligence.
- **[Google Ads Transparency Scraper](https://apify.com/scrapesage/google-ads-transparency-scraper)** - who's advertising what on Google.
- **[LinkedIn Jobs Scraper](https://apify.com/scrapesage/linkedin-jobs-scraper)** - job postings as hiring-intent signals.

### Tips

- **A whole city**: leave **Search queries** empty and set **Locations** - or pick several **Categories** to split it by topic.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with **Sort by: Date** and a relative **Date to** such as `30 days` to track what is coming up next, run after run.
- **Cost control**: organizer pages are read once per organizer per run, email enrichment only runs for organizers with a website, and **Max events** caps every run.
- **Proxies**: leave the default - Eventbrite's data answers on Apify's datacenter proxies and any refused request is retried on residential proxies automatically.

### FAQ

**How do I scrape Eventbrite events for a specific city?** Put the city in **Locations** - the Eventbrite slug from a search URL (`ny--new-york`, `united-kingdom--london`) or a plain name like `Austin, TX` or `Berlin`. Combine with **Search queries** or **Categories** to narrow by topic, or leave them empty for every event in the city.

**Can I get every event an organizer is running?** Yes - paste the organizer's profile URL (`eventbrite.com/o/...`) into **Start URLs**; every upcoming date is returned.

**Does it work without the Eventbrite API?** Yes. Eventbrite shut down its public event-search API in 2020 - this actor reads the same public data the Eventbrite website shows, no API key or login needed.

**Can I export to Google Sheets, CSV, or Excel?** Yes - one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new events automatically?** Create a [Schedule](https://docs.apify.com/platform/schedules) (e.g. daily), and optionally add a [webhook](https://docs.apify.com/platform/integrations/webhooks) or [Zapier zap](https://docs.apify.com/platform/integrations/zapier) to push new organizer leads into your CRM as they appear.

**Where do the emails come from?** Never from Eventbrite (they don't publish emails). With **Enrich organizer emails** on, the actor visits the organizer's own public website and keeps publicly listed addresses on the organizer's own domain (or an ordinary mailbox) - the same thing a human visitor would see.

**Why did my keyword search return fewer events than Eventbrite's counter shows?** Eventbrite's counter includes the unrelated events it adds to thin searches; the actor keeps only the real matches (see **Good to know**).

**Is scraping Eventbrite legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and Eventbrite's terms.

**An event field is empty - why?** Organizers fill many fields optionally (age limit, door time, refund window, website, socials), online events have no venue, and some fields need an option switched on - the table in **Fields and when they are filled** lists each case. Fields are empty only when the data doesn't exist, not because the scraper skipped them.

### Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under [Apify's Standard Actor Contract](https://docs.apify.com/legal/standard-actor-contract), which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

### Disclaimer

**This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Eventbrite, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.**

"Eventbrite" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Eventbrite product, is not authorised or certified by Eventbrite, Inc., and does not distribute Eventbrite software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome - this actor is actively maintained.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search Eventbrite for, e.g. <code>yoga</code>, <code>ai conference</code>, <code>wine tasting</code>. Each query runs in every location below (no location = the whole United States). Leave empty to browse every event in the locations. Eventbrite fills thin keyword searches with unrelated events from the same area; those are left out and never billed (see <b>Skip unrelated filler results</b>).

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

Where to search: an Eventbrite location slug from a search URL (<code>ny--new-york</code>, <code>ca--san-francisco</code>, <code>united-kingdom--london</code>, <code>germany</code>, <code>ny--new-york--brooklyn</code>), a city name (<code>Austin, TX</code>, <code>London, UK</code>, <code>Berlin</code>), a state or country, or <code>online</code> for online events. Empty = the United States.

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

Eventbrite categories to browse in every location (each one is its own search, added to your keyword searches). Pick from the list or type a category name; anything that is not an Eventbrite category is searched as a keyword.

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

Eventbrite URLs: event pages (<code>/e/...</code>), organizer profiles (<code>/o/...</code> = every upcoming event of that organizer), search pages (<code>/d/...</code>) or category pages (<code>/b/...</code>). Any Eventbrite country domain works. Used in addition to the searches above.

## `urlsFromFile` (type: `string`):

Paste a list of Eventbrite URLs (one per line), OR one link to a .txt/.csv file, Google Sheet or Google Drive file containing them. Lets you import many Start URLs at once instead of typing each. Google Sheet/Drive share links are handled automatically.

## `eventFormat` (type: `string`):

Keep only in-person or only online events. Online events have no location on Eventbrite, so "Online only" searches them wherever they are hosted.

## `dateFrom` (type: `string`):

Only events happening on or after this date: a date (YYYY-MM-DD) or a time from today (e.g. <code>7 days</code>), which keeps a scheduled run or a saved task up to date. Eventbrite lists upcoming and ongoing events only.

## `dateTo` (type: `string`):

Only events happening on or before this date: a date (YYYY-MM-DD) or a time from today (e.g. <code>30 days</code> = the next 30 days).

## `freeEventsOnly` (type: `boolean`):

Only free events.

## `onlyAvailableTickets` (type: `boolean`):

Only events whose tickets are on sale right now (not sold out, not ended, not "sales start soon").

## `sortBy` (type: `string`):

Eventbrite's relevance order (its best matches first) or soonest first.

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

The most events to save in this run, shared fairly between your searches. Big cities list thousands of events; past Eventbrite's ~1,000 results per search the run reads the rest in date windows.

## `strictKeywordMatching` (type: `boolean`):

Eventbrite pads a thin keyword search with every other event in the area (a search for "flamenco" in San Francisco returns 5 flamenco events, then 5,000 others). On: the run stops at the last real match and those filler events are never saved or billed. Off: keep everything Eventbrite returns.

## `includeOrganizerProfile` (type: `boolean`):

Read every unique organizer's Eventbrite profile: full description, logo, website, X/Twitter, Facebook, Instagram, TikTok, LinkedIn and YouTube links, upcoming-event count, total events and locations.

## `includeOrganizerStats` (type: `boolean`):

Read one event page per unique organizer for total attendees hosted, total events, years on Eventbrite and the verified / super-organizer badges - strong lead-scoring signals.

## `enrichOrganizerEmails` (type: `boolean`):

Visit each organizer's own website (home page + up to 2 contact/about pages) for contact emails on the organizer's own domain, phone, contact-form URL and extra social links. Eventbrite never shows emails - this is the only way to get them. Billed once per organizer with at least one email found.

## `deduplicateOrganizers` (type: `boolean`):

In addition to event records, save one deduplicated lead record per organizer (type = "organizer") with every organizer field and a 0-100 lead score.

## `includeStructuredContent` (type: `boolean`):

Read every event's page for its full description, agenda (sessions, times, hosts), lineup (artists, speakers, bios), FAQs, parking and photo gallery. One extra page per event.

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

Leave as is: Eventbrite's own data endpoints answer on Apify datacenter proxies, and any refused request is retried on Apify residential proxies automatically. Your own proxy URLs (or another proxy group) are tried first.

## Actor input object example

```json
{
  "searchQueries": [
    "artificial intelligence"
  ],
  "locations": [
    "ny--new-york"
  ],
  "eventFormat": "any",
  "freeEventsOnly": false,
  "onlyAvailableTickets": false,
  "sortBy": "relevance",
  "maxEvents": 100,
  "strictKeywordMatching": true,
  "includeOrganizerProfile": true,
  "includeOrganizerStats": true,
  "enrichOrganizerEmails": false,
  "deduplicateOrganizers": false,
  "includeStructuredContent": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped event records and optional organizer lead records as JSON items in the default dataset.

# 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 = {
    "maxEvents": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/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 = {
    "maxEvents": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/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 '{
  "maxEvents": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/eventbrite-scraper --silent --output-dataset

```

## MCP server setup

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