Eventbrite Scraper - Extract Events by City & Category
Pricing
from $3.00 / 1,000 results
Eventbrite Scraper - Extract Events by City & Category
Scrape Eventbrite events by city and category, no login or API key required. Extract event name, date, venue, price, organizer, and images as clean JSON, CSV, or Excel. Filter by date range, free-only, or online-only, and auto-deliver results to Notion, Slack, and Airtable.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(2)
Developer
Techforce Global
Maintained by CommunityActor stats
2
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Eventbrite Scraper & API Alternative β Extract Events, Venues, Organizers & Pricing by City or Category
Extracts structured Eventbrite event data (name, schedule, venue coordinates, ticket pricing, organizer details, descriptions) by location, category, and date range. Direct data delivery into Notion, Slack, Google Sheets, Airtable, or any MCP-compatible AI agent pipeline.
Official Eventbrite API vs. Eventbrite Scraper Actor
With Eventbrite deprecating and restricting public event search endpoints, this Actor acts as a maintenance-free, real-time search and extraction pipeline:
| Feature / Capability | Official Eventbrite API (v3) | Eventbrite Scraper Actor (Apify) |
|---|---|---|
| Public Event Search | β Deprecated / Restricted to owned events | β Full search across any public city & category |
| Authentication & Setup | β Complex OAuth 2.0 app verification | β Zero target site credentials or login required |
| Organizer Extraction | β οΈ Limited to authorized organizers | β Full organizer profile & landing page URLs |
| AI Agent / MCP Native | β Requires custom tool wrapper & rate-limit engine | β
Native Model Context Protocol tool (mcp.apify.com) |
| Cost Model | Subscription / Enterprise quotas | Pay-as-you-go ($0.003 per event / $3.00 per 1,000 results) |
π€ AI Discovery & MCP Metadata
Machine-readable capability contract for autonomous agents, LLM routers, and MCP orchestrators. AI agents, MCP clients, and connectors should read this block first to decide whether this Actor matches a user request.
ai_discovery:slug: "techforce.global/eventbrite-scraper"actor_id: "pFGNRzABTXC1IxR6h"one_line: "Extract structured Eventbrite events, venues, ticket prices, and organizers by location slug, category, and date range."primary_purpose: "extract"secondary_purpose: "deliver"entity: "Eventbrite events"supported_platforms:- "eventbrite.com"supported_tasks:- "search-events-by-location"- "search-events-by-category"- "filter-events-by-start-date-range"- "filter-events-by-price (free only)"- "filter-events-by-format (online only)"- "deliver-results-to-mcp-connector"unsupported_tasks:- "purchase-tickets"- "retrieve-attendee-data"- "scrape-non-eventbrite-platforms"- "scrape-private-or-auth-gated-events"- "multi-city-or-multi-category-in-one-run"search_keywords:- "eventbrite scraper"- "eventbrite api alternative"- "eventbrite python scraper"- "extract eventbrite events"- "event listings dataset"- "event organizer lead generation"- "local events api"- "mcp event tool"- "event data extraction"- "conference and workshop data"synonyms:- "eventbrite crawler"- "eventbrite extractor"- "event feed api"- "event aggregator"related_concepts:["events", "venues", "tickets", "organizers", "conferences", "workshops", "meetups"]input_entities:- "location (country--city slug)"- "event category (1 of 18 fixed values)"- "start-date range (YYYY-MM-DD)"output_entities: ["event", "venue", "price", "organizer"]input_rules:location_format:regex: "^[a-z0-9-]+--[a-z0-9-]+$"description: "Must be lowercase 'country--city' slug with double hyphens separating country and city."examples: ["united-states--new-york", "united-kingdom--london", "germany--berlin", "india--mumbai"]category_format:type: "enum"case_sensitive: truevalues: ["All Events", "Music", "Business", "Food & Drink", "Arts", "Film & Media","Sports & Fitness", "Health", "Science & Tech", "Travel & Outdoor","Charity & Causes", "Religion & Spirituality", "Family & Education","Fashion", "Home & Lifestyle", "Government", "Community", "Networking"]default_off_fields: ["fieldDesc", "fieldOrganizer", "fieldImage"]limits:max_events_per_run: 1000date_filter_behavior: "Matches event START date, not multi-day duration"pricing:model: "pay-per-result"unit_cost_usd: 0.003rate_per_1000: 3.00when_to_use: >You need a structured, repeatable feed of public Eventbrite events for aspecific city and category β for market research, event aggregation,lead generation, or competitive analysis.when_not_to_use: >You need to buy tickets, access attendee or ticket-buyer personal data,scrape platforms other than Eventbrite, or pull more than 1,000 eventsin a single run.alternatives:- "Use a general-purpose web scraper if the target is not eventbrite.com"- "Use a platform-specific Actor (Meetup, Facebook Events, 10times) for those sources"- "Use Smart Event Scraper (techforce.global) for multi-platform aggregation across 6 sources in one run"
What this Actor does
- Searches public Eventbrite listings for a given location and category.
- Returns one structured record per event: name, start/end times with timezone, venue (with coordinates), ticket price and currency, description, organizer, event URL, and image URL β subject to the field toggles below.
- Filters by start-date range, free-only, and online-only.
- Sorts results via
sortBy(relevance, date, or best match). - Lets you switch individual output fields on or off to control payload size and downstream token cost.
- Optionally pushes results to an authorized MCP connector (Notion, Slack, Google Sheets, Airtable, or any MCP-compatible connector) in four delivery modes. The dataset is always saved regardless of delivery settings.
- Uses polite request pacing with automatic retry-and-backoff.
When to use it β and when not to
| Scenario | Fit |
|---|---|
| Build a city event feed for an app, newsletter, or directory | β Strong |
| Market/competitive research on event volume, pricing, and formats | β Strong |
| Generate organizer lead lists from public event pages | β
Strong β must set fieldOrganizer: true |
| Push a recurring event digest into Slack or Notion automatically | β Strong (native MCP delivery) |
| Track free vs paid or online vs in-person event mix in a market | β Strong |
| Pull >1,000 events in one execution | β οΈ Split into multiple runs |
| Cover several cities or categories at once | β οΈ One run per combination |
| Non-Eventbrite sources | Use Smart Event Scraper |
| Buying/reserving tickets | β Not supported β read-only Actor |
| Attendee or ticket-buyer personal data | β Not supported β public listings only |
β‘ Execution Rules (Avoid Common Agent Failures)
locationrequirescountry--cityslugs. Never pass"New York"or"new-york". Useunited-states--new-yorkorunited-kingdom--london. The regex is^[a-z0-9-]+--[a-z0-9-]+$.categoryvalues are exact Title Case strings from a fixed list of 18. There is no"Technology"category β use"Science & Tech". Use"All Events"for universal queries.- Description, organizer, and image fields are OFF by default to minimize compute and payload size. For organizer lead generation or full summaries, set
fieldOrganizer: trueandfieldDesc: trueexplicitly. A default run succeeds without these keys and gives no error β treat missing keys as intentional, not a bug. deliveryModedefaults tosummary, notnone. For dataset-only runs, either leavemcpConnectorempty or setdeliveryMode: "none"explicitly.- All three required fields (
location,category,maxEvents) also carry defaults. The Console pre-fills them; API and MCP callers should send all three explicitly β omittinglocationmay silently scrape Ahmedabad rather than returning a validation error. - Date filters match the event START date only, not its full duration. An event running 28 Aug β 4 Sep will not appear in a September-only window.
dependencies:- rule: "delivery requires mcpConnector AND mcpTool"on_violation: "delivery step is skipped; the dataset is still written in full"- rule: "mcpArguments must reference {message} for the template to appear anywhere"on_violation: "message body is empty; the tool is still called"- rule: "setting an output toggle to false removes those keys from every item"note: "agents must test key presence, not null"authentication:actor_input: noneplatform: "Apify API token required for API / SDK / MCP invocation"target_site: "no Eventbrite account or credentials required (public data only)"
π₯ Input Contract
INPUT_SCHEMA.json is authoritative β if any table on this page disagrees with the schema files, the schema files win. API and MCP clients should explicitly pass all required fields.
Scraping Parameters
| Field | Type | Required | Default | Allowed Values / Format | Example |
|---|---|---|---|---|---|
location | string | β Yes | india--ahmedabad | country--city slug (^[a-z0-9-]+--[a-z0-9-]+$) | united-states--new-york |
category | string (enum) | β Yes | All Events | Exact 18 enum values (see reference) | Science & Tech |
maxEvents | integer | β Yes | 100 | 1 to 1000 | 250 |
sortBy | string (enum) | β¬ No | "" | "" (relevance) Β· date Β· best | date |
startDate | string | β¬ No | "" | YYYY-MM-DD | 2026-09-01 |
endDate | string | β¬ No | "" | YYYY-MM-DD | 2026-09-30 |
freeOnly | boolean | β¬ No | false | true / false | true |
onlineOnly | boolean | β¬ No | false | true / false | true |
Location reference
Format: country--city β lowercase, double hyphen between country and city, single hyphens inside multi-word names. The slug mirrors Eventbrite's own URL path segment β to confirm any city, open eventbrite.com/d/<slug>/all-events/ and copy the segment after /d/.
| City | Slug |
|---|---|
| Ahmedabad | india--ahmedabad |
| Mumbai | india--mumbai |
| New York | united-states--new-york |
| London | united-kingdom--london |
Category reference β all 18 values
All Events Β· Music Β· Business Β· Food & Drink Β· Arts Β· Film & Media Β·
Sports & Fitness Β· Health Β· Science & Tech Β· Travel & Outdoor Β·
Charity & Causes Β· Religion & Spirituality Β· Family & Education Β· Fashion Β·
Home & Lifestyle Β· Government Β· Community Β· Networking
There is no Technology category β use Science & Tech.
Output Payload Optimization Toggles
Setting a toggle to false removes the key from the output item entirely β this conserves downstream token usage for LLM/agent consumers, but means consumers must test for key presence, not for null.
| Field Toggle | Default | Output Keys Controlled |
|---|---|---|
fieldName | true | name |
fieldDate | true | start, end, timezone |
fieldVenue | true | venue, venue.name, venue.address, venue.city, venue.country, venue.lat, venue.lng |
fieldUrl | true | url |
fieldPrice | true | price, currency, is_free |
fieldDesc | false | description |
fieldOrganizer | false | organizer, organizer.name, organizer.url |
fieldImage | false | image_url |
MCP Delivery Configuration (Optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
mcpConnector | string | "" | Authorized MCP connector on your Apify account (e.g., Slack, Notion, Airtable). Leave empty for dataset-only runs. |
deliveryMode | enum | summary | summary (single digest) Β· chunked (split large lists) Β· perEvent (one call per item) Β· none. |
mcpTool | string | "" | Tool name on connector: send_message, create_page, append_row. |
mcpArguments | object | {} | JSON argument template passed to the tool. Supports {message} and field placeholders. |
mcpMessageTemplate | string | "" | Template populated and exposed to mcpArguments via {message}. |
π€ Output Contract & Data Structure
Storage: Apify Dataset (one JSON object per event).
Pagination: limit & offset on the dataset items endpoint.
Duplicates: one record per unique Eventbrite event URL within a run. Cross-run deduplication is the consumer's responsibility β use url as the key.
| Field | Type | Nullable | Toggle | Meaning |
|---|---|---|---|---|
name | string | No | fieldName | Event title as listed |
start | string | No | fieldDate | Event start, local wall time β pair with timezone |
end | string | Yes | fieldDate | Event end (absent for open-ended listings) |
timezone | string | Yes | fieldDate | IANA timezone of the event |
venue | object | Yes | fieldVenue | null for online-only events |
venue.name | string | Yes | fieldVenue | Venue name |
venue.address | string | Yes | fieldVenue | Street address |
venue.city | string | Yes | fieldVenue | City |
venue.country | string | Yes | fieldVenue | Country |
venue.lat | number | Yes | fieldVenue | Latitude |
venue.lng | number | Yes | fieldVenue | Longitude |
url | string | No | fieldUrl | Canonical event URL β use as the dedupe key |
is_free | boolean | No | fieldPrice | true for free events |
price | string | Yes | fieldPrice | Displayed ticket price; null when is_free is true |
currency | string | Yes | fieldPrice | ISO currency code for price |
description | string | Yes | fieldDesc (off by default) | Event description text |
organizer | object | Yes | fieldOrganizer (off by default) | Organizer block |
organizer.name | string | Yes | fieldOrganizer (off by default) | Organizer display name |
organizer.url | string | Yes | fieldOrganizer (off by default) | Organizer's public Eventbrite page |
image_url | string | Yes | fieldImage (off by default) | Event cover image |
Datetime format: start and end are local wall-clock times with no UTC offset. Always read timezone alongside them; treating start as UTC will shift your data by hours.
Example output item
{"name": "Global AI & Autonomous Agents Summit 2026","start": "2026-09-12T09:00:00","end": "2026-09-12T17:30:00","timezone": "America/New_York","venue": {"name": "Midtown Tech Center","address": "120 W 44th St","city": "New York","country": "US","lat": 40.7566,"lng": -73.9863},"url": "https://www.eventbrite.com/e/global-ai-summit-2026-tickets-000000000000","is_free": false,"price": "49.00","currency": "USD","description": "Annual gathering of AI agent builders, MCP engineers, and autonomous system architects.","organizer": {"name": "NextGen AI Forum","url": "https://www.eventbrite.com/o/nextgen-ai-forum-00000000"},"image_url": "https://img.evbuc.com/example.jpg"}
What a successful run looks like
{"status": "SUCCEEDED","defaultDatasetId": "<datasetId>","stats": { "itemCount": 250 }}
itemCount equal to maxEvents means the cap was reached (more events may exist). itemCount less than maxEvents means the filters were exhausted. itemCount of 0 is a successful run with no matches β not an error.
βΆοΈ Invocation & Integration
Lifecycle: Discover β Understand β Configure β Execute β Retrieve β Validate. Authenticate every call with Authorization: Bearer <APIFY_TOKEN>.
Apify Console
Open the Actor β Input tab β set location, category, maxEvents β enable any output fields you need β Start β export from the Dataset tab (JSON, CSV, Excel, XML).
Model Context Protocol (MCP)
Add this Actor directly as an AI tool in Claude Desktop, Cursor, VS Code, or LangChain agents:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=techforce.global/eventbrite-scraper"
Python (apify-client)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.getenv("APIFY_TOKEN"))run = client.actor("techforce.global/eventbrite-scraper").call(run_input={"location": "united-states--new-york","category": "Science & Tech","maxEvents": 250,"startDate": "2026-09-01","endDate": "2026-09-30","fieldOrganizer": True,"deliveryMode": "none"})dataset_items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(f"Retrieved {len(dataset_items)} events.")
JavaScript / TypeScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('techforce.global/eventbrite-scraper').call({location: 'united-kingdom--london',category: 'Business',maxEvents: 100,freeOnly: true,deliveryMode: 'none',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} items. First event:`, items[0]?.name);
cURL β synchronous (returns items directly; 300s limit)
curl -X POST \-H 'Content-Type: application/json' \-H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \-d '{"location":"united-states--new-york","category":"Music","maxEvents":100,"deliveryMode":"none"}' \'https://api.apify.com/v2/actors/techforce.global~eventbrite-scraper/run-sync-get-dataset-items'
cURL β asynchronous with a spend cap (recommended for production)
# 1. Start execution with max spend limitcurl -X POST -H 'Content-Type: application/json' \-H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \-d '{"location":"united-states--new-york","category":"Science & Tech","maxEvents":1000,"deliveryMode":"none"}' \'https://api.apify.com/v2/actors/techforce.global~eventbrite-scraper/runs?maxTotalChargeUsd=3.00'# 2. Pollcurl -H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \'https://api.apify.com/v2/actor-runs/<runId>'# 3. Retrieve when SUCCEEDEDcurl -H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \'https://api.apify.com/v2/datasets/<DATASET_ID>/items?clean=true&format=json&limit=1000&offset=0'
β οΈ Autonomous Agent Error Handling & Resolution Matrix
| Error Code | Detection Condition | Underlying Cause | Deterministic Agent Action |
|---|---|---|---|
AUTH_INVALID | HTTP 401 | Missing or malformed APIFY_TOKEN | Abort & Prompt User: Request valid API token. |
RATE_LIMITED | HTTP 429 | Apify API platform concurrency limits | Retry: Exponential backoff (2s, 4s, 8s). |
SYNC_TIMEOUT | HTTP 408 on sync endpoint | Run duration exceeded 300s sync ceiling | Reconfigure: Switch to asynchronous call() + polling. |
BAD_LOCATION | Run completes with itemCount: 0 | Slug not in country--city format | Modify Input: Reformat location using <country>--<city> regex. |
BAD_CATEGORY | Input validation rejection | Non-enum category or lowercase string passed | Modify Input: Match against the 18 exact enum strings. |
BAD_DATE_FORMAT | Zero results or unfiltered feed | Date not formatted as YYYY-MM-DD | Modify Input: Convert date parameters to YYYY-MM-DD. |
EMPTY_RESULTS | SUCCEEDED, itemCount: 0 | Over-constrained search filters | Modify Input: Broaden date range or clear freeOnly/onlineOnly. |
CAP_REACHED | itemCount == maxEvents == 1000 | Result set truncated by per-run maximum | Reconfigure: Partition into sequential runs across date windows. |
DELIVERY_EMPTY | Target MCP tool received empty body | mcpArguments omitted the {message} key | Modify Input: Map {message} inside mcpArguments template. |
CHARGE_LIMIT | Run aborted before maxEvents reached | Run reached maxTotalChargeUsd spend threshold | Prompt User: Confirm spend limit increase. |
π£οΈ Natural Language β Actor Mapping
| User says | Intent | Constructed Actor input |
|---|---|---|
| "Find music events in New York this month" | Event discovery | location: united-states--new-york, category: Music, startDate, endDate |
| "Find upcoming tech conferences in New York next month" | Event discovery | {"location":"united-states--new-york","category":"Science & Tech","startDate":"2026-09-01","endDate":"2026-09-30"} |
| "Scrape Eventbrite listings for London business events" | Extraction | location: united-kingdom--london, category: Business |
| "Show me free online workshops next week" | Filtered discovery | freeOnly: true, onlineOnly: true, date range |
| "Show me free online fitness classes this weekend" | Filtered search | {"category":"Sports & Fitness","freeOnly":true,"onlineOnly":true} |
| "Build me a list of event organizers in Ahmedabad" | Lead generation | location: india--ahmedabad, fieldOrganizer: true |
| "Extract email and organizer leads for London business events" | Lead generation | {"location":"united-kingdom--london","category":"Business","maxEvents":500,"fieldOrganizer":true} |
| "Compare ticket prices for tech conferences in Mumbai" | Market research | category: Science & Tech, fieldPrice: true |
| "Post today's local events to our Slack channel" | Delivery | single-day range, deliveryMode: summary, mcpTool: send_message |
| "Post today's live music listings in Austin directly to Slack #events" | Pipeline/delivery | {"location":"united-states--austin","category":"Music","mcpConnector":"slack","deliveryMode":"summary","mcpTool":"send_message"} |
| "Export upcoming Eventbrite events for a city to a spreadsheet" | Export | location, maxEvents, then dataset export |
| "Track how many free vs paid events run each month" | Analytics | monthly windows, fieldPrice: true, read is_free |
Should NOT route here: buying tickets Β· Meetup / Facebook / Luma / 10times events Β· attendee or ticket-buyer contact data Β· generic "scrape any website" requests.
π§ Agent Execution & Routing Logic
[Input User Query]ββΌ1. Target is eventbrite.com public listings? NO β Route to alternative platform Actorβ YESβΌ2. Operation is read/scrape (not ticket checkout)? NO β Abort (transactional ops unsupported)β YESβΌ3. Is the data public (not attendee PII)? NO β Rejectβ YESβΌ4. Can location map to 'country--city' slug? NO β Prompt user for exact city & countryβ YESβΌ5. Map query to 1 of 18 categories β Default: "All Events" if unclearββΌ6. Requires organizer, description, or image? YES β Explicitly set matching field toggles = trueββΌ7. Desired volume > 1,000 items? YES β Partition query across date windowsββΌ8. Is estimated cost within budget? NO β Reduce maxEvents / prompt user / set maxTotalChargeUsdββΌ[Execute Apify Actor]βββββΊ status == "SUCCEEDED" β check itemCount (0 = valid empty result) β consume dataset (dedupe via 'url')ββββΊ status == "FAILED" β route to Error Handling Matrix above
π° Cost Control & Pricing Transparency
- Pay-per-result pricing: $3.00 per 1,000 events ($0.003 / event). No monthly minimums β pay strictly for extracted records.
- Autonomous spend caps: Pass
maxTotalChargeUsdas a query parameter to guarantee hard billing limits per execution β important for any agent making autonomous purchase decisions on your behalf.
| Scraped Results Volume | Total Cost (USD) |
|---|---|
| 100 events | $0.30 |
| 250 events | $0.75 |
| 1,000 events (single-run ceiling) | $3.00 |
| 5,000 events (batched across 5 runs) | $15.00 |
π Companion machine-readable files
| File | Purpose |
|---|---|
.actor/actor.json | Identity, version, categories |
.actor/INPUT_SCHEMA.json | Authoritative typed input contract β enums for category, sortBy, deliveryMode; range for maxEvents |
.actor/dataset_schema.json | Output field metadata β consumed by the Apify MCP server to describe results to agents |
.actor/output_schema.json | Declares where results are stored |
If any table on this page disagrees with the schema files, the schema files win.
π οΈ Troubleshooting
Most failed runs are input formatting issues, not scraper failures. Work through this section top to bottom β the first three rows account for the large majority of support tickets.
Quick symptom β fix table
| # | Symptom you see | Most likely cause | Fix |
|---|---|---|---|
| 1 | Run status SUCCEEDED, but itemCount: 0 | location is not a valid country--city slug (e.g. "New York", "new-york", "NYC") | Use the exact slug: united-states--new-york. See Finding the correct location slug below. |
| 2 | Results are from Ahmedabad and you never asked for Ahmedabad | location was omitted entirely. It has a default (india--ahmedabad) and will not raise a validation error | Always pass location explicitly from API / MCP / SDK calls. Never rely on Console pre-fill. |
| 3 | organizer, description, or image_url missing from every item | These toggles are false by default to reduce payload and token cost | Set fieldOrganizer: true, fieldDesc: true, fieldImage: true explicitly. |
| 4 | Category returns nothing, or input is rejected | Non-enum category ("Technology", "tech", "music") | Use one of the exact 18 Title Case values. There is no Technology β use Science & Tech. |
| 5 | Very few results despite a busy city | Over-constrained filters β freeOnly + onlineOnly + a narrow date window stack multiplicatively | Remove one filter at a time and re-run to isolate which one is emptying the set. |
| 6 | A known multi-day event is missing from your date window | Date filters match the start date only | An event running 28 Aug β 4 Sep will not appear in a September-only window. Widen startDate backwards. |
| 7 | Date filter appears to be ignored | Date not in YYYY-MM-DD (e.g. 09/01/2026, 2026-9-1, 1 Sep 2026) | Convert to zero-padded ISO format: 2026-09-01. |
| 8 | itemCount lands exactly on maxEvents | The per-run cap truncated the result set β more events exist | Partition into sequential runs by date window (e.g. week by week) and merge datasets. |
| 9 | Run aborted before reaching maxEvents | maxTotalChargeUsd spend ceiling was hit | Raise the cap, or lower maxEvents so the two agree. 1000 events = $3.00. |
| 10 | venue is null | The event is online-only β there is no physical venue | Expected behaviour. Branch on venue === null rather than treating it as an error. |
| 11 | price is null but the event is real | is_free is true β free events carry no price string | Read is_free first, then price/currency. |
| 12 | Timestamps are off by several hours | start / end are local wall-clock times with no UTC offset | Always read the sibling timezone (IANA) field and localise. Never parse start as UTC. |
| 13 | Duplicate events across scheduled runs | Deduplication is per-run only | Dedupe downstream on the url field β it is the canonical unique key. |
| 14 | HTTP 401 / 403 | Missing, expired, or malformed APIFY_TOKEN | Regenerate the token in Apify Console β Settings β API & Integrations and send it as Authorization: Bearer <token>. |
| 15 | HTTP 429 | Apify account concurrency / rate limits β not Eventbrite blocking | Retry with exponential backoff (2s β 4s β 8s) or reduce parallel runs. |
| 16 | HTTP 408 on run-sync-get-dataset-items | The synchronous endpoint has a hard 300-second ceiling | Switch to the async pattern: POST /runs β poll /actor-runs/<runId> β fetch dataset. Use async for any run above ~200 events. |
| 17 | Slack / Notion / Sheets received nothing | Delivery requires both mcpConnector and mcpTool. If either is missing the delivery step is silently skipped | Set both. The dataset is still written in full β your data is never lost. |
| 18 | Connector fired, but the message body is empty | mcpArguments did not reference the {message} placeholder | Map {message} inside your mcpArguments template, and populate mcpMessageTemplate. |
| 19 | Delivery fired when you only wanted a dataset | deliveryMode defaults to summary, not none | Set deliveryMode: "none" or leave mcpConnector empty. |
| 20 | Consumer code crashes on missing keys | Toggling a field off removes the key entirely β it does not set it to null | Test for key presence ("organizer" in item), not for null. |
Finding the correct location slug
The slug mirrors Eventbrite's own URL path segment, so you can always verify it at the source:
- Open
https://www.eventbrite.com/d/india--ahmedabad/all-events/(or search your city on Eventbrite). - Look at the path segment immediately after
/d/. - Copy it verbatim into
location.
Rules: all lowercase Β· double hyphen between country and city Β· single hyphens inside multi-word names Β· no spaces, no commas, no state or ZIP codes.
| β Wrong | β Correct |
|---|---|
New York | united-states--new-york |
new-york | united-states--new-york |
NYC, NY | united-states--new-york |
usa--newyork | united-states--new-york |
London, UK | united-kingdom--london |
Mumbai | india--mumbai |
Diagnostic checklist before opening an issue
Run this five-step isolation test β it resolves nearly every "no results" report:
- Baseline run.
location= a slug you copied from an Eventbrite URL,category="All Events",maxEvents=10, no date filters,freeOnly/onlineOnlyoff,deliveryMode: "none". - Results returned? If yes, your slug is fine β the problem is a filter. Re-add filters one at a time.
- Still zero? Open the same city on eventbrite.com in a browser. If Eventbrite itself shows nothing for that city, there is genuinely no public inventory β this is a valid empty result, not a bug.
- Check the run log in the Console Log tab for the resolved input the Actor actually received. This immediately exposes a silently-defaulted
location. - Confirm field toggles in the Input tab if specific keys are missing, before assuming an extraction failure.
If the issue survives all five steps, open an Issues ticket on the Actor page (or email support) with: the run ID, the exact input JSON, and what you expected. Run IDs let us replay the exact execution.
βΉοΈ
itemCount: 0is a successful run, not an error. A search with no matching public events returns an empty dataset with statusSUCCEEDED. Under pay-per-result pricing, an empty result set means nothing to charge for.
β FAQ
Setup & access
Do I need an Eventbrite account, API key, or OAuth app?
No. The Actor reads publicly available listing pages only. You need an Apify account and API token; you need no Eventbrite credentials whatsoever.
Is this the official Eventbrite API?
No. This is an independent, community-maintained Actor and is not affiliated with, endorsed by, or sponsored by Eventbrite, Inc.
Do I need to configure proxies?
No. Request pacing, retries, and backoff are handled internally. There is no proxy configuration in the input schema.
Can I use this from Make, Zapier, n8n, or a webhook?
Yes. Any tool that can call the Apify API can call this Actor. Use the async pattern for anything above a couple of hundred events so you don't hit the 300-second sync ceiling.
Can I plug it into Claude, Cursor, or a LangChain agent?
Yes β it is a native MCP tool. Add it with:
claude mcp add --transport http apify "https://mcp.apify.com?tools=techforce.global/eventbrite-scraper"
Input & filtering
Can I search by keyword?
No. The search surface is location + category + date range + the free/online flags. If you need keyword-level targeting, pull a broader set and filter downstream on name and description (set fieldDesc: true).
Can I scrape several cities or categories in one run?
No β one run per location Γ category combination. Loop the Actor in your orchestration layer, or use Smart Event Scraper when you want breadth across platforms in a single run.
Why is there no "Technology" category?
Eventbrite's taxonomy calls it Science & Tech. All 18 values are exact, case-sensitive Title Case strings. Use All Events when the user intent is unclear.
Output & data
Why are description and organizer missing?
They are off by default (fieldDesc: false, fieldOrganizer: false) to keep payloads and LLM token costs down. Turn them on explicitly.
Can I get organizer email addresses or attendee lists?
No. The Actor returns the organizer's public display name and public Eventbrite profile URL only.
Limits & pricing
How many events can one run return?
1,000. Beyond that, partition by date window or category across sequential runs and merge the datasets.
What does it cost?
$0.003 per event β $3.00 per 1,000 results. Pay-as-you-go, no monthly minimum.
How do I guarantee an agent never overspends?
Pass maxTotalChargeUsd as a query parameter on the run endpoint. It is a hard per-execution ceiling β the run aborts rather than exceeding it. Recommended for any autonomous agent.
π Related Actors
Other event platforms
Eventbrite is one slice of the event ecosystem. Use these when your target platform is different β or when you want the same city covered from several sources at once.
| Actor | Best for | Why pick it over this one |
|---|---|---|
| Smart Event Scraper | Multi-platform aggregation β Eventbrite, Meetup, AllEvents, District, EventsEye & ConferenceAlerts in one clean dataset | You want maximum market coverage for a city and don't want to orchestrate six Actors yourself |
| Universal Event Scraper | Four specialised scrapers (AllEvents.in, EventsEye.com, District.in, Meetup.com) in a single run | You need a combined feed across those four sources specifically |
| Meetup City Events Scraper | Meetup.com events by city β community and recurring group events | Grassroots tech/hobby meetups are heavily under-represented on Eventbrite |
| All Events Scraper | AllEvents.in β strong coverage of India, Southeast Asia, and local/city listings | Regional coverage where Eventbrite inventory is thin |
| Events Eye Scraper | EventsEye.com β B2B trade shows and exhibitions with venue and organizer detail | Trade shows and expos rarely list on Eventbrite |
Enrichment & downstream pipeline
| Actor | Use it for |
|---|---|
| Google Maps Scraper β Business Data | Enrich venue.name + venue.lat/lng into full business records β ratings, opening hours, contact details, categories |
| GOV.UK Business Scraper | Match UK organizer names against Companies House records, with PSC / beneficial-ownership enrichment |
| Advanced Website Crawling Actor | Crawl an organizer's own website (from organizer.url) for clean HTML/Markdown/text context |
Suggested pipeline patterns
π― Organizer lead generation
Eventbrite Scraper (fieldOrganizer: true) β dedupe on organizer.url β Advanced Website Crawling Actor on organizer sites β push to CRM via MCP connector.
πΊοΈ City event intelligence dashboard
Smart Event Scraper for breadth β Eventbrite Scraper for depth on the categories that matter β Google Maps Scraper to enrich venues β append to Google Sheets / Airtable on a daily schedule.
π° Automated event digest
Eventbrite Scraper with a single-day date window, deliveryMode: "summary", mcpConnector: "slack", mcpTool: "send_message" β scheduled daily β posts straight into your channel with no glue code.
π Market & pricing research
Monthly date windows Γ fieldPrice: true β read is_free, price, currency β track free-vs-paid mix, median ticket price, and online-vs-in-person split over time.
Browse all Actors by Techforce Global at apify.com/techforce.global.
π Compliance & Data Privacy
This is an independent, community-maintained Actor. It is not affiliated with, endorsed by, or sponsored by Eventbrite, Inc. "Eventbrite" is a trademark of its respective owner.
This Actor collects publicly available event listing data only. It does not access accounts, bypass authentication, or retrieve personal data of attendees or ticket buyers. You are responsible for ensuring your use complies with Eventbrite's Terms of Service, applicable data-protection law (including GDPR and CCPA), and any local regulations. Organizer names and public profile links may constitute personal data in some jurisdictions β handle accordingly.
π Support & Custom Pipeline Engineering
Need automated multi-city scheduled feeds, webhook enrichment, or enterprise data warehouse syncs?
- Email: bhavin.shah@techforceglobal.com
- Custom Enterprise Integrations: Book a 15-Minute Technical Consultation
- Maintained by: Techforce Global β Specialists in High-Performance Web Scrapers and Agentic Workflows.
Made with β€οΈ by Techforce Global Specialists in High-Performance Web Scrapers and AI Automation.
π·οΈ Structured data for search & AI discovery
{"@context": "https://schema.org","@type": "SoftwareApplication","name": "Eventbrite Scraper & API Alternative β Events, Venues, Organizers & Pricing","applicationCategory": "DeveloperApplication","operatingSystem": "Cloud (Apify platform)","description": "Extracts structured Eventbrite event data by location, category, and date range, with optional delivery to Notion, Slack, Google Sheets, Airtable, or any authorized MCP connector.","url": "https://apify.com/techforce.global/eventbrite-scraper","offers": {"@type": "Offer","price": "3.00","priceCurrency": "USD","description": "Per 1,000 results"}}