Eventbrite Scraper | Events, Tickets & Organizers
Pricing
from $2.20 / 1,000 results
Eventbrite Scraper | Events, Tickets & Organizers
Collect public Eventbrite events, ticket prices, venues and organizer profiles across supported country sites. Filter by city, category or keyword. Billed per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Eventbrite Scraper
Get public Eventbrite events, ticket availability, venues and organizer profiles as rows you can export across supported country sites.
- Discover events by city, category, keyword, date, price or attendance format.
- Collect event details, organizer profiles and recurring event dates.
- Combine several cities, event links or organizer IDs in one run.
- Pay $3.00 per 1,000 delivered rows on the Free plan, plus a start fee.
What does Eventbrite Scraper do?
Eventbrite Scraper collects public listings and profiles for event calendars, venue research and organizer lists. It is unofficial and is not affiliated with Eventbrite. It does not buy tickets or access private attendee information.
- Seven modes:
discover,category,search,event,organizer,categoriesandgeos. - Markets: 29 configured domain options, including
com,co.uk,com.au,ca,de,fr,esandcom.br. Usehostto choose the country site. - Rows: events, organizers, geographic entries and a category catalog. Each row has
rowTypeand a stringid. - Optional rows:
includeOrganizerEventsadds upcoming events;expandSeriesadds dated occurrences. Both are off by default. Each added row is billed at the same rate and counts toward the input's row limit.
What data can you extract from Eventbrite?
Fields depend on the mode and what Eventbrite publishes. All rows include rowType, id and scrapedAt; optional fields may be absent or empty.
Event rows
| Field | Description | Example |
|---|---|---|
rowType | Kind of row | event |
id | Event identifier | 1234567890 |
name | Event title | Example Community Workshop |
url | Event page | https://www.eventbrite.com/e/example-1234567890 |
startDate | Start date or date/time object | 2026-12-12T18:00:00Z |
endDate | End date or date/time object | 2026-12-12T20:00:00Z |
timezone | Event timezone, when supplied | America/Los_Angeles |
venue | Venue name and address details | {"name":"Example Venue"} |
ticketAvailability | Published prices and availability | {"isFree":true,"isSoldOut":false} |
organizer | Organizer details | {"name":"Example Organizer"} |
seriesId | Parent recurring-series identifier | 1234567890 |
tags | Category, subcategory and format information | Category tags |
address | Structured venue address | {"locality":"San Francisco"} |
geo | Coordinates, when available | {"lat":37.77,"lng":-122.42} |
geoSlug | Original city or country identifier | ca--san-francisco |
phones | Public organizer phone numbers, if found | [] |
emails | Empty; organizer contact forms are not submitted | [] |
web | Public website and social links | {"website":"https://example.com","socials":[]} |
leadAbsences | Reasons contact or address details are missing | Missing-contact explanations |
scrapedAt | Collection timestamp | 2026-10-24T10:00:00+00:00 |
Organizer rows
These use rowType: "organizer" and the same identity fields.
| Field | Description | Example |
|---|---|---|
bio | Public organizer biography | Community events and workshops |
metrics | Published profile metrics | Profile statistics |
socials | Public social links | [] |
upcomingEventsCount | Available upcoming-event count | 8 |
upcomingEventIds | Up to 50 upcoming event identifiers | ["1234567890"] |
Geographic rows
These use rowType: "geo"; geographic entries are not events.
| Field | Description | Example |
|---|---|---|
geoSlug | City, country or online listing identifier | online |
host | Eventbrite domain | www.eventbrite.com |
url | Listing page for this place | https://www.eventbrite.com/d/online/events/ |
Catalog rows
The categories mode returns a catalog row, not one row per event or category.
| Field | Description | Example |
|---|---|---|
categories | Category identifiers | ["music","business"] |
categoryTree | Categories with subcategories | Music and jazz |
hosts | Configured country-site options | Country domains |
How to scrape Eventbrite
- Open Eventbrite Scraper in Apify Console.
- Leave
modeonautoand fill one target field, such asgeooreventUrls. - Set
maxResultsto5for a small first run. - Click Start and wait for the run to finish.
- Open the dataset to view or download rows.
Empty input starts a San Francisco example run capped at 3 rows. These are normal, billable rows, not a free preview. Filling a target selects the matching mode automatically. An explicit discover or search without a place uses San Francisco while keeping your requested row limit.
Discover
Fill geo, or geos for several cities. Use a date facet such as events--this-weekend for a local event feed.
Category
Supply a city and category, optionally subcategory, such as music and jazz. A category alone starts the sample-city example rather than a worldwide search.
Search
Enter query. Add a city or use geo: "online" for online events. Price and attendance filters narrow the results.
Event
Supply eventIds or eventUrls for specific events. Turn on expandSeries when you also want available occurrences within your row limit.
Organizer
Supply organizerIds or organizerUrls. Enable includeOrganizerEvents to receive event rows alongside the organizer profile.
Categories
Choose mode: "categories" explicitly. No target is required; the result describes the category catalog.
Geos
Choose mode: "geos" explicitly to list geographic entries for the selected country site. Use returned geoSlug values in a later discovery run.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | Automatic selection or one of the seven modes | auto |
geo, geos | One place or up to 100 places | Sample ca--san-francisco |
eventIds, eventUrls | Event IDs or links, up to 100 each | Empty |
organizerIds, organizerUrls | Organizer IDs or links, up to 50 each | Empty |
startUrls | Up to 50 Eventbrite event, organizer or listing links | Empty |
query | Search words | Empty |
host | Country-domain suffix, such as co.uk | com |
category, subcategory | Category and optional subcategory | Empty |
facet | Date or listing filter | events |
price | any, free or paid | any |
eventFormat | any, online or offline | any |
startDate, endDate | Optional YYYY-MM-DD bounds | All upcoming dates |
neighborhood, expandNeighborhoods | Area slug, or expand available city neighborhoods | Empty, false |
maxResults | Rows per input, from 1 to 500 | 70; form prefill 3 |
page, maxPages | First page and number of pages to consider | 1, 1 |
enrichDestination | Add ticket, venue, organizer and category details | true |
enrichV3, enrichOrganizer | Additional event or organizer details; require enrichDestination | Both true |
enrichDetails, enrichBffDetail | Additional event-page or profile details, when available | Both false |
expandSeries, maxSeriesEvents | Include occurrences and cap them per series | false, 20 |
includeOrganizerEvents | Add upcoming events as separate rows | false |
maxGeos, scrapeSitemapGeos | Geographic-entry limit and directory lookup | 200, true |
fields | Preferred top-level output fields; identity fields remain | All fields |
Examples below use small limits. Replace event and organizer IDs with your own targets.
Discover:
{"mode":"discover","geo":"ny--new-york","facet":"events--this-weekend","maxResults":5}
Category:
{"mode":"category","geo":"ny--new-york","category":"music","subcategory":"jazz","maxResults":5}
Search:
{"mode":"search","geo":"online","query":"workshop","price":"free","eventFormat":"online","maxResults":5}
Event:
{"mode":"event","eventIds":["1984345024385"],"maxResults":1}
Organizer:
{"mode":"organizer","organizerIds":["86136754923"],"includeOrganizerEvents":true,"maxResults":3}
Categories:
{"mode":"categories","maxResults":1}
Geos:
{"mode":"geos","host":"co.uk","maxGeos":5,"maxResults":5}
maxItems and limit are aliases for maxResults. Other accepted names include keyword for query and cities for geos. Close field-name misspellings are corrected; other unknown fields are ignored with a note. Invalid price, eventFormat or facet values are ignored rather than failing the run.
Each run writes INPUT_REPORT to its key-value store with input corrections, ignored fields and mode selection. Invalid dates or event links stop collection before any row is charged, with messages such as INVALID_INPUT: endDate — the date is in the past; use today or a later date, or leave it empty. The start fee still applies. Dates are not automatically moved forward.
Output example
Illustrative event row, not a live result:
{"rowType": "event","recordType": "event","id": "1234567890","name": "Example Community Workshop","url": "https://www.eventbrite.com/e/example-1234567890","startDate": {"local_date":"2026-12-12","local_time":"18:00:00","timezone":"America/Los_Angeles"},"isOnline": false,"isFree": true,"ticketAvailability": {"isFree":true,"hasAvailableTickets":true,"isSoldOut":false},"venue": {"name":"Example Venue"},"organizer": {"name":"Example Organizer"},"geoSlug": "ca--san-francisco","phones": [],"emails": [],"scrapedAt": "2026-10-24T10:00:00+00:00"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records the outcome and row count; failures can also produce ERROR_SUMMARY.
Why use this Eventbrite scraper?
- Pay per delivered row: unsuccessful page requests are not result rows.
- Several inputs: collect multiple cities, event IDs or organizer profiles together.
- Optional detail: keep the default ticket and venue enrichment, or request additional profile information.
- Missing data stays missing: the Actor does not invent contact details.
- No proxy setup: you do not need to set up proxies or provide Eventbrite cookies.
- Keep delivered rows: rows already written to the dataset remain available. A manually stopped run is not a guarantee that unfinished collection will be delivered.
How much does it cost to scrape Eventbrite?
Pricing is pay-per-event: a start event costs $0.005, plus a charge for each delivered row. The start charge is one event per GB of memory, with a minimum of one event. At the default 512 MB, the start fee is $0.005. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
maxResults applies to each geo, event ID/link, organizer ID/link or start URL. The default is 70. All row types share that input's limit. Larger requests are collected in parts; available events and page limits can reduce delivery.
Free Apify-plan users are limited to 200 rows per run and 10 runs of this Actor, set by the developer. The whole run is limited by Maximum cost per run (maxTotalChargeUsd in the API), even with multiple inputs.
Example: three cities returning five rows each produce 15 rows. On the Free plan at 512 MB, the charge is 15 × $0.003 + $0.005 = $0.050.
What happens when the run timeout is too short
If collection needs longer than the selected timeout, the run can pause instead of failing. Its status becomes ABORTED with the message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." When results are ready, the same run starts again and reports "Resumed: delivering N rows." It writes to the same dataset and finishes as SUCCEEDED if collection succeeds.
Already delivered rows are skipped on resume, so they are not delivered or charged twice. No action is needed for this automatic pause. It can happen at most 3 times per run; keep the default 3600-second timeout to reduce pauses.
The synchronous endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset while the run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, or use a webhook for ACTOR.RUN.SUCCEEDED.
Use with AI agents and the API
Apify MCP server
Add this remote server in Claude, ChatGPT, Cursor, VS Code or another compatible MCP client:
https://mcp.apify.com?tools=lentic_clockss/eventbrite-scraper
Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent reads rows with get-dataset-items.
Clients without remote-server support can use npx @apify/actors-mcp-server --tools lentic_clockss/eventbrite-scraper with APIFY_TOKEN set.
Example prompt: "Find five free online workshops on Eventbrite and return their names, dates and links."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/eventbrite-scraper").call(run_input={"geo": "ny--new-york", "maxResults": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/eventbrite-scraper').call({ geo: 'ny--new-york', maxResults: 5 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP access, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~eventbrite-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. After success, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Actor's Integrations tab with Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Apify Schedules can run saved inputs regularly.
FAQ
Is it legal to scrape Eventbrite?
This Actor collects public data. You are responsible for complying with Eventbrite's terms and applicable data-protection law. Processing personal data requires a lawful basis.
Why did my run end as ABORTED?
The automatic-pause status message means the same run is waiting to resume. A manual abort or another failure is different; check the status message before restarting.
How many results can I get?
Request 1–500 rows per input with maxResults. Availability, page limits, the maximum charge and free-plan limits can lower the count.
Why are some fields empty?
Eventbrite may omit dates, ticket prices, addresses or organizer details. Some fields require enrichment. Contact forms do not provide public email addresses.
Is this an official Eventbrite API?
No. This is an independent scraper; you do not need an Eventbrite API key.
Can I scrape several cities in one run?
Yes. Put their identifiers in geos. Each city has its own maxResults allowance, within the run's total charge limit.
What if no rows are returned?
Broaden the city, date or category filters. No publishable records produces a failure rather than an empty success. QUEUE_FULL in RUN_SUMMARY instead means collection could not start; retry after the indicated delay.
Can it buy tickets or collect attendees?
No. Checkout, ticket purchases and private attendee lists are outside its scope.
Limitations
- Geographic and category catalogs are discovery aids, not guarantees of current inventory.
- Default
maxPagesis 1; a high row limit alone does not guarantee more pages or matching events. - Series occurrences and organizer events consume rows alongside their parent records.
- Prices and availability describe the published listing, not a guaranteed checkout price.
- Enrichment may add fields even when
fieldsselects a smaller set. - Missing contact details stay empty; Eventbrite support addresses are not organizer contacts.
Related scrapers
More event and ticketing scrapers from the same publisher:
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report problems or request another field in the Issues tab of this Actor's page. Include the run ID and the input you used.