# Eventbrite Scraper (`tacps126/eventbrite-events-scraper`) Actor

Eventbrite events by keyword and city, or from any Eventbrite search or event link: name, date, venue and address, organiser, ticket prices (free / paid / sold out), full description. Fast, no browser.

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

## Pricing

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

## Eventbrite Scraper

Get **Eventbrite events** as a clean, spreadsheet-ready list: name, start and end time, venue with full address and coordinates, **organiser** with their Eventbrite page, **ticket prices** (free, paid, price range, sold out), status, cover image and the full description. Search by keyword and city, or paste any Eventbrite search or event link.

**Built for:** event marketers and sponsors, sales teams prospecting event organisers, venues and suppliers looking for upcoming events, agencies and media building event listings.

### Why this scraper

- **Organiser and tickets included.** Each event's page is read for the organiser, price range and the full description (turn off *Include details* for a faster, lighter run).
- **Search like a person.** `networking` in `New York`, `marketing` in `London`, `AI` `online`. City names in plain words.
- **Many pages per search.** Results pages are followed until your `maxItems`.
- **Fast and light.** No browser: Eventbrite publishes its events as structured data, which the Actor reads directly.
- **New-event alerts.** Schedule it with *Only new events* and each run returns only events you haven't received yet.
- **Change alerts.** Turn on *Changes only* and schedule it: each run returns only new events, events whose date, venue, status, price or sold-out state changed (old and new values in `changes`), and upcoming events that disappeared (`changeType: "removed"`, cancelled or unlisted).

### How to use it

1. Type **Topics or keywords** (e.g. `networking`) and a **Location** (e.g. `New York`, or `online`), or paste **Event links**.
2. Press **Start**. Download from the **Output** tab, or connect Google Sheets, Slack, Make, Zapier, n8n or webhooks.

```json
{
  "searches": ["networking", "real estate"],
  "location": "New York",
  "maxItems": 200
}
```

`maxItems` applies to each search and each link.

### What you get

| Field | Description |
|-------|-------------|
| `name`, `url`, `source` | Event, link, and the site |
| `startAt`, `endAt`, `timezone` | Times (ISO 8601) |
| `isOnline`, `status` | Online or in person; scheduled / cancelled / postponed where published |
| `venue` | `{name, street, city, region, postalCode, country, fullAddress, latitude, longitude}` |
| `organizer` | `{name, url}` |
| `price` | `{isFree, min, max, currency, soldOut}` where the site shows tickets |
| `description`, `imageUrl` | Full text (plain) and cover image |
| `foundVia` | The search or link it came from |

### Pricing

Pay per result: about **$1 per 1,000 events**. Past events and (with *Only new events*) events you already received are free. On Apify's free plan a run returns up to 200 events, enough to try it.

### Use it in n8n, Make, Zapier or AI agents

Every run is one API call (`run-sync-get-dataset-items`). In n8n, use an HTTP Request node or Apify's own node. AI agents can call it through Apify's hosted MCP server.

### More event sites in one run

This Actor reads Eventbrite only. [Events Scraper](https://apify.com/tacps126/events-scraper) searches **Luma, Eventbrite and Meetup together** and returns them in this same format. For trade-show exhibitor lists, see [Trade Show Exhibitor List Scraper](https://apify.com/tacps126/exhibition-scraper).

### Notes

- Only public event pages are read. Organiser and host names are shown as published; use personal data within GDPR and the site's terms.
- Pages that ask for a human check (captcha) are skipped and reported in the run log; this Actor does not solve captchas.

### Support

Missing a field? Open an issue on the **Issues** tab with a link; requests decide what gets added next.

# Actor input Schema

## `searches` (type: `array`):

What the events are about, e.g. `AI`, `startup`, `networking`, `marketing`. One search each.

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

City in plain words (`New York`, `London`, `Sydney`) or `online`.

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

Paste links instead of (or as well as) searching. Eventbrite links: a search results page (`eventbrite.com/d/…`) or single events.

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

Maximum events from each link, and from each search on each site.

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

Open each Eventbrite and Meetup event (and Luma events missing text) for the organiser, ticket prices, end time and full description. Off = faster.

## `upcomingOnly` (type: `boolean`):

Skip events that have already ended.

## `onlyNew` (type: `boolean`):

Return only events no earlier run with the same input delivered. Schedule it for new-event alerts; you pay only for new events.

## `changesOnly` (type: `boolean`):

Return only events that are new, changed (date, venue, status, price or sold-out — with old and new values in `changes`) or gone before they started (`changeType: "removed"`: cancelled or unlisted) since the last run with the same input. The first run returns everything as new.

## `monitorName` (type: `string`):

Optional name for the *Only new* memory, to share it between differently configured runs.

## `delivery` (type: `object`):

Webhook: {"webhookUrl": "https://…", "format": "json" | "slack" | "discord", "onlyWhenResults": true, "includeItems": 10}. Google Sheets: {"spreadsheetId": "<id from the sheet URL>", "sheetName": "Sheet1"} plus the service account key below; share the sheet with the service account's e-mail first. Leave empty to only save results in the dataset.

## `googleServiceAccountJson` (type: `string`):

Only for Google Sheets delivery: paste the service account's JSON key. Stored encrypted; the account sees only sheets you share with it.

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

Not needed for these sites; available if a site starts refusing requests.

## Actor input object example

```json
{
  "searches": [
    "networking"
  ],
  "location": "New York",
  "maxItems": 100,
  "includeDetails": true,
  "upcomingOnly": true,
  "onlyNew": false,
  "changesOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The produced items (default dataset items).

# 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 = {
    "searches": [
        "networking"
    ],
    "location": "New York"
};

// Run the Actor and wait for it to finish
const run = await client.actor("tacps126/eventbrite-events-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 = {
    "searches": ["networking"],
    "location": "New York",
}

# Run the Actor and wait for it to finish
run = client.actor("tacps126/eventbrite-events-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 '{
  "searches": [
    "networking"
  ],
  "location": "New York"
}' |
apify call tacps126/eventbrite-events-scraper --silent --output-dataset

```

## MCP server setup

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