Eventbrite Scraper & API: Events, Ticket Prices [$0.50/1K]
Pricing
from $0.50 / 1,000 events
Eventbrite Scraper & API: Events, Ticket Prices [$0.50/1K]
Scrape Eventbrite events from many cities, categories and keywords in one run: dates (local and UTC), venues, coordinates, ticket prices, sold-out status, organizer stats. Free/paid and date filters, monitor mode for new and changed events. No proxy, no personal data. USD 0.50 per 1,000.
Pricing
from $0.50 / 1,000 events
Rating
0.0
(0)
Developer
Useful API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Eventbrite Scraper and API: events data with ticket prices and organizers
Get Eventbrite events as clean rows for any city, country or online: title, start and end in local time and UTC, time zone, venue, address, coordinates, neighbourhood, category, format and tags. Switch on event page details to add the lowest and highest ticket price, currency, free or paid, sale status (on sale, sold out, sales ended) with Eventbrite's own label (for example "Postponed"), age limit, refund policy and the organizer's public profile counters.
Search many locations, categories and keywords in one run, with duplicates removed across searches. Run it on a schedule in monitor mode to see which events are new or changed since the last run.
USD 0.50 per 1,000 events. Event page details USD 0.40 per 1,000. That is USD 0.90 per 1,000 fully detailed events. No API key, no Eventbrite account, no subscription.
Why this one
- Many cities, categories and keywords in one run, duplicates removed across searches. Type cities the way you say them: New York, NYC, Austin, TX, Paris, France, London, UK.
- Free or paid filter that works together with categories and dates (for example paid music events this weekend).
- Monitor mode: schedule it and get only new or changed events, with the changed fields named (date, venue, price, sold out, cancelled). Unchanged events cost a tenth.
- Ticket prices and sale status straight from Eventbrite (prices as shown in the ticket list, fees included), Eventbrite's own label such as Postponed, age limit, refund policy.
- Organizer counters for lead scoring (events hosted, total attendees, years hosting, verified) without collecting anyone's email or phone.
- Clean, flat rows: local and UTC times with the time zone, coordinates, neighbourhood, the same columns on every row.
- Polite and compliant: robots.txt checked for every page, a declared user agent, no proxy, no personal data. Your runs are not slowed or billed for proxy traffic.
Who it's for
- Event aggregators and city guides: a fresh feed of what is on, by city, category and date, with coordinates for maps.
- Venues, promoters and ticketing teams: watch competing events, ticket price ranges and sold-out events in your market; monitor mode tells you what changed since yesterday.
- Market and tourism research: count events by category, format, price band and neighbourhood across cities.
- Sales teams selling to event organizers: find active organizers and size them by events hosted and total attendees (public Eventbrite profile counters). No emails or phone numbers are collected.
- Developers: an Eventbrite events API you call from code, with the same columns on every row.
What you get for each event
| Group | Fields |
|---|---|
| Event | eventId, url, name, summary (the one or two sentences shown in search results), category, subcategory, format, organizerTags, language, imageUrl (link), publishedAt, seriesId, isSeries |
| When | startLocal, endLocal, startUtc, endUtc, timezone, isCancelled |
| Where | isOnline, venueName, venueAddress, venueCity, venueRegion, venuePostalCode, venueCountry, neighbourhood, latitude, longitude |
| Signals | urgency (Eventbrite's search badges such as fewTickets), ticketsBy |
| Event page details (option, on by default) | priceMin, priceMax, currency, isFree, salesStatus (on_sale, sold_out, sales_ended, not_yet_on_sale...), salesMessage (Eventbrite's label, e.g. Postponed), eventStatus, ageRestriction, refundPolicy, hasExternalTickets, reservedSeating, organizerName, organizerUrl, organizerVerified, organizerEventsHosted, organizerTotalAttendees, organizerYearsHosting |
| Monitor (option) | changeType (new, changed, unchanged), changedFields |
| Where it came from | searchLocation, searchFor, searchUrl, scrapedAt, status, detailsStatus |
Every row has every column (empty values are null), so CSV and Excel exports line up.
| status | Meaning | Billed |
|---|---|---|
listed | found on an Eventbrite search page | 1 event (+ details if read) |
event_page | read from an event URL you gave | 1 event + details |
not_found | the event URL no longer exists | no |
unavailable | Eventbrite did not serve the event page after retries | no |
detailsStatus says whether the event page was read: ok (billed as details), not_requested, not_found,
unavailable, unreadable, disallowed, not_read_run_stopping (the run stopped first). Only ok is billed.
How to search
Locations: type a city the way you say it, or a country, or online:
| You type | Eventbrite searches |
|---|---|
| New York (or NYC) | ny--new-york |
| Austin, TX | tx--austin |
| London (or London, UK) | united-kingdom--london |
| Paris, France | france--paris |
| Berlin | germany--berlin |
| United States | the whole country |
| online | online events worldwide |
Eventbrite matches a plain city name to its own place; the place it chose is in every row (searchLocation) and in
the run summary (placesResolved). To be exact, add the state or country ("Portland, OR"), use Eventbrite's own name
(or--portland, the part after /d/ in its search URLs), or paste a whole search URL in Eventbrite search URLs
(its own filters are kept).
Each location is searched once per category (Eventbrite's 21 categories) and once per keyword. Add a date (today, tomorrow, this weekend, this week, next week, this month, next month, or custom dates; either end can be left open), free or paid, and in person or online if you like. Eventbrite shows at most 980 events per search (49 pages of 20); for more, split by category or by dates.
Input examples
Eventbrite scraper for one city (music events in New York, with prices):
{ "locations": ["New York"], "categories": ["music"], "maxEventsPerSearch": 200 }
Events data for several cities in one run (business and tech events next month, no event page details):
{"locations": ["New York", "San Francisco, CA", "London, UK", "Berlin, Germany"],"categories": ["business", "science-and-tech"],"datePreset": "next-month","maxEventsPerSearch": 980,"details": false}
Keywords and custom dates:
{ "locations": ["Chicago, IL"], "keywords": ["jazz", "wine tasting"], "datePreset": "custom", "startDate": "2026-12-01", "endDate": "2026-12-31" }
Paid events in person this weekend:
{ "locations": ["Austin, TX"], "categories": ["music", "food-and-drink"], "datePreset": "this-weekend", "priceFilter": "paid", "eventFormat": "in-person" }
Monitor: what is new or changed since yesterday (schedule it daily in Apify):
{ "locations": ["Austin, TX"], "categories": ["music"], "maxEventsPerSearch": 980, "monitor": "new_or_changed", "monitorName": "austin-music" }
Specific events (one row per event page):
{ "eventUrls": ["https://www.eventbrite.com/e/some-event-tickets-1234567890"] }
Eventbrite API: call it from code
Run it and get the rows back in one request (replace YOUR_TOKEN with your Apify API token):
curl -X POST "https://api.apify.com/v2/acts/usefulapi~eventbrite-events/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"locations":["New York"],"categories":["music"],"maxEventsPerSearch":50}'
Long runs: start the run with /runs, then read the dataset when it finishes. The run summary (rows per status, billed
events, per-search counts, why a run stopped early) is the OUTPUT record of the run's key-value store.
Monitor mode
| Mode | What you get | Billing |
|---|---|---|
| Off | every event found | per event |
| Label | every event, with changeType (new, changed, unchanged) and changedFields | per event |
| Only new or changed | only events that are new or changed; unchanged ones are left out | per event delivered; unchanged USD 0.10 per 1,000 |
Compared fields: title, start, end, venue, address, cancelled, online, Eventbrite's search badges (urgency, e.g.
fewTickets); with event page details also prices, currency, sale status and event status. Unchanged events count
towards Max events per search and Max events in total. Direct event URLs are always returned (labelled). In "only new or changed" the search-page fields decide (the
event page is read only for events that are new or changed there), so a sell-out with no other change shows up in Label
mode with details on. The memory sits in a key-value store named eventbrite-events-monitor in your own Apify account,
one record per input (or per Monitor name, which keeps the memory when you edit the input), up to 15,000 events.
Events that ended more than two days ago are dropped from it.
Pricing
Pay per event, nothing else:
| What | Price |
|---|---|
| Event (a row) | USD 0.50 per 1,000 |
| Event page details (price, sale status, organizer...) | USD 0.40 per 1,000 rows that get them |
| Unchanged event in monitor mode "only new or changed" | USD 0.10 per 1,000 |
| Run start | USD 0.002 per run |
Examples: 1,000 events without details USD 0.50; with details USD 0.90; a daily monitor of 980 events where 50 changed, with details: USD 0.045 + USD 0.093 + start = about USD 0.14 a day. Online events left out by "In person only" are not billed. Rows Eventbrite could not serve are not billed. Your maximum cost per run is respected: the run stops by itself before it, with every row so far saved.
Speed, and why it is polite
This tool reads Eventbrite the way a careful visitor would: one page at a time, search pages 10 seconds apart and event
pages 1.5 seconds apart, through Apify's normal servers (no proxy). It checks Eventbrite's robots.txt for every URL and
reads only pages robots.txt allows: search pages (/d/...) and event pages (/e/...), never Eventbrite's API, and never
follows a redirect off those pages or off Eventbrite.
- About 120 events a minute without details.
- About 25 events a minute with details (one event page each).
If Eventbrite says it is busy (HTTP 429), the run waits (1, then 3 minutes) and slows down; at the third 429 in a row, or at once on HTTP 401 or 403, it stops and keeps the rows it has. Start the rest again later.
Data and privacy
- No personal data: no emails, phone numbers, social links, performer names, attendee or buyer data. Email addresses,
phone numbers, links and @handles inside the title and summary text are replaced (
[email removed],[phone removed],[link removed],[handle removed]); the summary is cut at 300 characters. - Organizer = the name on the Eventbrite organizer profile, its public link and its public counters (events hosted, total attendees, verified).
- No full event descriptions and no copies of images: the summary from the search results and a link to the image.
FAQ
Is this the official Eventbrite API? No. It reads Eventbrite's public web pages. Eventbrite's own API is for organizers' apps and cannot be resold, so this tool does not use it.
Do prices include fees? They are the prices Eventbrite publishes for the event (its structured data), which on the events we checked included Eventbrite's fee, as shown in the ticket list (for example USD 55.20 "incl. USD 5.20 fee").
Why are some prices null? Prices come from the event page, so switch on details. Some events hide prices or sell
through another site (hasExternalTickets: true).
Why does a sold-out event say on_sale? The sale status is Eventbrite's, per event. An event with several ticket types
or dates (isSeries) can still show on_sale while one date or type is sold out; check salesMessage and urgency.
Why fewer events than Eventbrite's count? Eventbrite's search stops at 49 pages (980 events). Split by category, keyword or dates to reach more.
Is it legal to scrape Eventbrite? This tool collects public event information only, respects robots.txt and collects no personal data. Eventbrite's terms of service restrict automated access and commercial use of its content; you are responsible for how you use the data. If in doubt, ask a lawyer.
Something is wrong or missing? Open an issue on the Issues tab with the run link. We answer within a few days.