Eventbrite Scraper
Pricing
from $0.89 / 1,000 events
Eventbrite Scraper
Eventbrite scraper for upcoming events in a city, one row each: title, start and end time, venue and full address, organiser and follower count, ticket price range and link. Filter by keyword, category, date, free or paid. No account. $0.92 per 1,000 events.
Pricing
from $0.89 / 1,000 events
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Features
Share
Eventbrite scraper for events in a city, one row per event: title, start and end time, venue with the full address and coordinates, the organiser and their follower count, the ticket price range, and whether it is sold out. Filter by keyword, category, date, price or online events.
Any one search stops at 1,000 events. Ask for more than that from a single city and you get 1,000. Split a big city by category or by date window if you need to go past it, or by keyword with Only events with the keyword ticked.
| Input | Cities, regions or countries, up to 10 per run |
| Output | One row per event: title, times, venue and address, coordinates, organiser and followers, price range, sold-out flag, link |
| Ceiling | 5,000 rows per run, 1,000 per location |
| Account needed | None, and no API key |
| Price | $0.92 per 1,000 events on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 5,400 |
🔍 What Eventbrite Scraper does
Type a place name and it resolves that name to a real Eventbrite place before it searches. A name Eventbrite cannot place is reported and skipped. No search goes out for it, and nothing is charged.
If a name is ambiguous, paste an eventbrite.com/d/<slug>/ browse URL or the numeric place id
instead, and the run uses exactly that place.
There is a second check on the way out. Every event is compared against the place you asked for before it is charged. Anything that cannot be confirmed as being in that place is written into your dataset as an uncharged row so you can see it, and is never billed.
Filters on top: Eventbrite's own categories, a date window, online-only, and free-only or paid-only. A keyword searches the way Eventbrite's own search does, closest matches first, and one box keeps only the events that actually have it.
📋 What data you get from each Eventbrite event
| What you get | Field |
|---|---|
| The event, its id, a short summary and its links | eventId, name, summary, url, ticketsUrl |
| When, in the venue's own time | startsAt, endsAt, timezone |
| Where | venueName, venueAddress, city, region, country, latitude, longitude |
| Online or at a venue | isOnline |
| Who runs it, and how many people follow them | organizerName, organizerUrl, organizerFollowers |
| The ticket price range and the free and sold-out flags | minPrice, maxPrice, currency, isFree, isSoldOut |
| Eventbrite's category labels | categories |
| What you typed, and the place Eventbrite matched it to | searchLocation, locationName, locationSubtitle, locationId, locationVerified |
| When it was read | scrapedAt |
▶️ How to scrape Eventbrite events
- Open Eventbrite Scraper and click Try for free.
- Put one city per line into Location.
- Add a Keyword (tick Only events with the keyword to drop the ones without it) or pick Categories if you want a narrower set.
- Choose When, or fill in both From date and To date. A From date on its own keeps the events of When that start on or after it, and a To date on its own the ones that start on or before it.
- Set Maximum rows, click Start, then download the dataset as JSON, CSV or Excel.
Start it with Location empty and nothing else ticked and you get one labelled sample row, which is not charged.
💰 How much does it cost to scrape Eventbrite events?
$0.92 per 1,000 events on the Free plan. Paid plans pay a little less: $0.91 on Starter, $0.90 on Scale and $0.89 on Business. On the free plan, the $5 Apify gives you each month covers about 5,400 events.
You pay per event row delivered. Events that failed the location check, landed on the wrong side
of a free, paid or online filter, or, with Only events with the keyword ticked, don't have your keyword are not
charged, nor are the sample row and diagnostic rows. A search that finds nothing writes a free NO_RESULTS row
instead, and with that box ticked a keyword no event has writes a free FILTERED_OUT row.
📥 What you give it
{"location": ["London"],"keyword": "startup","onlyKeywordMatches": true,"dateRange": "this_month","categories": ["102"],"maxItems": 100}
| Field | What the run uses if you leave it | What it is |
|---|---|---|
location | box starts at London | One place per line, up to 10. Plain names work. A browse URL or a numeric place id pins an ambiguous one. |
keyword | empty | Words to search for, the way you'd type them into Eventbrite's own search. Eventbrite puts the events closest to your words first and the run keeps that order, so events further down the list may not have the words themselves. |
onlyKeywordMatches | off | Only events with every word of your keyword in their name, summary or tags. Case and accents don't matter, a word can start a longer one (chess finds "chessclub"), and a word of four letters or more can sit anywhere in a tag (jazz finds "livejazzshow"). Events without them are left out and not charged, and the run's status says how many. Without a keyword it does nothing. |
dateRange | current_future | current_future, today, tomorrow, this_weekend, this_week, next_week, this_month, next_month. The short windows follow Eventbrite's calendar where the events are, not where you are. |
startDate, endDate | empty | Your own window as YYYY-MM-DD. A startDate on its own keeps the events of When that start on or after it, and an endDate on its own the ones that start on or before it. A date written any other way, or a start after the end, stops the run before it searches, with a free note saying what to fix. |
categories | all | Eventbrite's own category ids, picked from the list in the form. 103 is Music, 102 Science & Technology, 101 Business & Professional, and so on. |
onlineOnly | off | Online events instead of venue events. They have no place, so the location is not used and the events can come from anywhere. |
freeOnly | off | Only events Eventbrite lists as free. |
paidOnly | off | Only events Eventbrite does not list as free. Some of them still show a minPrice of 0. Tick this or freeOnly, not both. |
maxItems | 50 | Total rows across all your locations, up to 5,000, split evenly between them. This is also your spending cap. |
proxyUrls | none | Optional. Your own servers, one URL per line as http://user:pass@host:port. |
📤 What you get back
A real row from a run in September 2026:
{"ok": true,"charged": true,"recordType": "event","searchLocation": "London","locationName": "London","locationSubtitle": "Greater London, United Kingdom","locationId": "101750367","name": "An Evening with Eckhart Tolle in London","summary": "We are delighted to invite you to a rare and transformational evening with Eckhart Tolle live in London.","startsAt": "2026-09-26T19:00:00","endsAt": "2026-09-26T21:00:00","timezone": "Europe/London","venueName": "ICC Auditorium","venueAddress": "Western Gateway, London, E16 1XL","city": "London","region": "England","country": "GB","latitude": 51.5075864,"longitude": 0.0340907,"organizerName": "Genius Productions","organizerUrl": "https://www.eventbrite.ca/o/genius-productions-9377090349","organizerFollowers": 7252,"minPrice": 44.4,"maxPrice": 212.4,"currency": "GBP","isFree": false,"isSoldOut": true,"isOnline": false,"categories": ["Religion & Spirituality"],"url": "https://www.eventbrite.ca/e/an-evening-with-eckhart-tolle-in-london-tickets-1979620158183","ticketsUrl": "https://www.eventbrite.com/checkout-external?eid=1979620158183","eventId": "1979620158183","scrapedAt": "2026-09-21T02:09:47.149Z"}
| Field | How to read it |
|---|---|
eventId | Eventbrite's own id. Stable, so use it to dedupe across runs. |
startsAt, endsAt, timezone | Local wall-clock times with the venue's timezone beside them, not converted. |
minPrice, maxPrice, currency | The published ticket range. Both null on events with no public price. |
isSoldOut | Eventbrite's own flag, and null when it does not say. |
searchLocation | Exactly what you typed, so you can join rows back to your own list. locationName is what Eventbrite matched it to. Both are null on an online search. |
locationVerified | Only present, and only false, when the venue had no coordinates to check against the place. |
categories | Eventbrite's own labels, not the numeric ids you passed in. |
🧾 Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| An event | recordType: "event", charged: true | yes |
| The sample row | _sample: true, charged: false | no |
| A diagnostic | _diagnostic: true, recordType: "diagnostic" and an errorCode | no |
The sample row also says recordType: "event", so a filter on recordType alone keeps it.
Filter on _sample and _diagnostic being absent instead. The charged field is a label, not a
receipt: it goes on the row when the row is built, before billing happens, so read it as what
separates real events from sample and diagnostic rows, nothing more.
| Code | What it means |
|---|---|
LOCATION_NOT_FOUND | Eventbrite could not place that name, so nothing was searched for it. Try a browse URL or the place id. |
LOCATION_MISMATCH | An event came back that could not be confirmed as being in the place you asked for. It is listed so you can see it, and it was not charged. |
FILTER_MISMATCH | Events came back on the wrong side of freeOnly, paidOnly or onlineOnly. They were left out and not charged; the row gives the count. |
FILTERED_OUT | Events came back and none was left once your own filter was applied, so nothing was charged: with onlyKeywordMatches on, none had every word of your keyword; with a startDate on its own, all of them started before it; with an endDate on its own, all of them start after it. The row says how many were read. |
BAD_INPUT | A date not written YYYY-MM-DD, a start after the end, a category Eventbrite does not have, or both price boxes ticked. Nothing was searched. |
NO_RESULTS | The place resolved, Eventbrite just has nothing matching in that window. |
TIME_BUDGET | The run reached its time limit and stopped by itself. Everything already delivered is complete, and nothing was charged for the places it did not reach. Give it more time to get the rest. |
COST_LIMIT | The spending limit you set for the run was reached before any event came back, so no events were charged. Raise the limit. A run the limit stops after some events says so in its status instead. |
NOT_SERVED | Eventbrite did not answer this run, even when asked again. searchLocation says which place, and nothing was charged for what did not come back. Re-run it later. Runs before 13 October 2026 wrote BLOCKED here. |
NETWORK | Eventbrite was unreachable. Re-run it. |
PROXY_INPUT_ADJUSTED | A connection setting in your input could not be used and was replaced. The run carried on. |
CHARGE_ERROR | One or more charges could not be recorded, so some rows may have arrived unbilled. |
One bad location never stops the others, and a diagnostic row never fails the run. The one exception is an unexpected error on our side before anything came back: that run ends as failed, with an UNEXPECTED_ERROR row.
💡 What people use it for
- Seeing which organisers are active in a city, from
organizerNameandorganizerFollowers. - Watching what a competitor is putting on next month, by keyword, on a schedule, deduping on
eventIdso each run is only what is newly listed. - Pricing research:
minPriceandmaxPriceacross a category tell you what a city will pay. - Finding venues that host a particular kind of event, by grouping rows on
venueName.
🚧 What it does not do
- 1,000 events per search. Split by category or date to go deeper, or by keyword with
onlyKeywordMatcheson. - Upcoming events only. There is no past-event archive here.
- No attendee lists, no ticket sales figures, no organiser email addresses.
minPriceandmaxPriceare the published range, not what any individual ticket costs after fees.- Online events can't be narrowed to a place.
onlineOnlyignoreslocation. A category, a date window or a keyword withonlyKeywordMatcheson still narrows them. - The location check is a "somewhere else entirely" guard, not a precision filter, so a real Greater London event in Wembley is kept rather than dropped.
- Category ids are Eventbrite's, and the row gives you their labels rather than your ids back.
- Rows are a snapshot. Events get cancelled, moved and repriced, and
scrapedAtrecords when it was read. - It is not an official Eventbrite tool. Dami's Studio is independent and is not affiliated with or endorsed by Eventbrite, or by any other company named on this page.
🧭 Which events scraper do you need?
| If you want | Use |
|---|---|
| Upcoming Eventbrite events in a city, with venue, organiser and ticket prices | This one |
| Luma events by city or community calendar, with hosts and ticket prices | Luma Events Scraper |
| Public Facebook events by keyword, city or Page | Facebook Events Scraper |
❓ Questions people ask
Do I need an Eventbrite account or API key?
No. Nothing to apply for and no quota to manage.
My city name is ambiguous. What do I do?
Paste the eventbrite.com/d/<slug>/ browse URL, or the numeric place id. The run then uses exactly
that place.
Why did I get fewer events than I asked for?
Either the search is smaller than your budget, or it hit the 1,000-event ceiling for that location, or some events failed the location or price check and were set aside uncharged. The diagnostic rows say which.
Can I get online Eventbrite events?
Yes, tick onlineOnly. Online events have no place, so the location is not used and the events can come from anywhere.
Can I call it from code or connect it to an AI assistant?
The API tab has code for Python, JavaScript and
the CLI. MCP clients like Claude and ChatGPT use
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/eventbrite-events-scraper; coding assistants can load
our skill file.
All three bill your Apify account at the same price.
Is it legal to scrape Eventbrite?
These are public event pages. Organiser names are personal data under GDPR when the organiser is a person, so have a reason for collecting them. Apify's write-up on the legality of web scraping is a sensible starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the location you used. The errorCode
on the diagnostic row usually names the problem on its own.