Eventbrite Events Scraper
Scrape upcoming Eventbrite events by city, keyword or date. One row per event with venue, address, organiser and ticket price range. No account, no API key.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
location,keyword,dateRange(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00092 per event = $0.92 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Event scraped | One event with venue, organiser and ticket price range. Unplaceable locations are never charged. | $0.00092 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
location | The city, region or country to search. One per line, up to 10 per run. Plain names work ("London", "Austin", "Berlin"). If a name is ambiguous, paste an eventbrite.com/d/{slug}/ browse URL or the numeric place id instead and the run will use exactly that place. A name Eventbrite cannot place is reported and skipped - it is never quietly turned into a worldwide search. | array |
keyword | Narrow the results to events matching a word or phrase, the same way the search box on the site does. Leave it empty for everything in the place. | string |
dateRange | Which events to include. "All upcoming" is everything from today onwards. The shorter windows follow Eventbrite's own calendar, so "This weekend" means the coming Saturday and Sunday where the events are, not where you are. | string |
startDate | An exact start date as YYYY-MM-DD. Fill in both this and the end date to use your own window instead of the "When" choice above. One on its own is ignored. A date written any other way, or a From date after the To date, stops the run before it searches. | string |
endDate | An exact end date as YYYY-MM-DD. Only used when the From date is filled in too. Written any other way, it stops the run before it searches. | string |
categories | Limit the run to Eventbrite's own categories. Pick as many as you like; leave it empty for all of them. | array |
onlineOnly | Return online events rather than events at a venue. Ticking this makes the location optional - online events do not have one. | boolean |
freeOnly | Return only events Eventbrite lists as free. | boolean |
paidOnly | Return only events Eventbrite does not list as free. Some of them still show a Min Price of 0. Tick this or "Free events only", not both: ticking both stops the run before it searches. | boolean |
maxItems | Total events to return across all your locations. The budget is split evenly between them, so three cities and 300 rows gives you 100 of each. Eventbrite itself stops any one search at 1,000 events, so asking for more than 1,000 per location returns 1,000. Keep it low while you are testing - you pay per row. | integer |
proxyUrls | Leave this empty for a normal run. Fill it in only if you want the traffic to leave through proxy servers you already pay for, one URL per line, in the form http://user:pass@host:port. | array |
What you get
A structured dataset — each result includes fields like:
namestartsAtendsAttimezonevenueNamevenueAddresscityregioncountryorganizerNameorganizerUrlminPricemaxPricecurrencyExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Eventbrite Events Scraper: upcoming events in a city, with venue and organiser
Name a city and get the upcoming Eventbrite events in it, one row each. 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.
The honest limit is Eventbrite's, not ours: 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 keyword, by category or by date window if you need to go past it.
| Input | Cities, regions or countries, up to 10 per run |
| Output | One row per event |
| Ceiling | 5,000 rows per run, 1,000 per location |
| Account needed | None, no API key, no browser |
| Price | $0.92 per 1,000 events, flat on every plan |
🎟️ What Eventbrite Events Scraper does
Type a place name and it resolves that name to a real Eventbrite place before it searches. That step is not optional and it is the reason this actor exists in the shape it does. A search sent without a resolved place comes back at HTTP 200 with a worldwide feed, which looks exactly like a successful search and is not one. So a name Eventbrite cannot place is reported and skipped. No request goes out, 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: a keyword, Eventbrite's own categories, a date window, online-only, and free-only or paid-only.
📥 What you give it
{
"location": ["London"],
"keyword": "startup",
"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 | Narrows results the way the search box on the site does. |
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. Fill in both or neither: one on its own is ignored. A date written any other way, or a start after the end, stops the run before it searches. |
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. Ticking it makes the location optional. |
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 recent run:
{
"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 | What it is |
|---|---|
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. |
organizerFollowers | How many people follow that organiser on Eventbrite. |
searchLocation | Exactly what you typed, so you can join rows back to your own list. locationName is what Eventbrite matched it to. |
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, and recordType tells them apart.
| Row | How to spot it | Charged |
|---|---|---|
| An event | recordType: "event" | yes |
| The sample row | _sample: true, recordType: "sample" | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
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 the way you read recordType: it 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 or paidOnly. They were left out and not charged; the row gives the count. |
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 ran out of time before finishing. Everything already delivered is complete. |
BLOCKED | Eventbrite refused the request. Re-run it, or supply your own servers in proxyUrls. |
NETWORK | Eventbrite was unreachable. Re-run it. |
One bad location never stops the others, and a diagnostic row never fails the run.
▶️ How to run it
1. Open Eventbrite Events Scraper and click Try for free. 2. Put one city per line into Location. 3. Add a Keyword or pick Categories if you want a narrower set. 4. Choose When, or fill in both From date and To date. 5. Set Maximum rows, click Start, then download the dataset as JSON, CSV or Excel.
💰 How much does it cost?
$0.92 per 1,000 events. Flat on every Apify plan, no volume tiers.
You pay per event row delivered. Events that failed the location check, the sample row, diagnostic rows and a search that finds nothing are all free.
💡 What people use it for
- Building a list of organisers running events in a city, with follower counts, from
organizerName
and organizerFollowers.
- Watching what a competitor is putting on next month, by keyword, on a schedule.
- 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. - Feeding a local "what's on" page from a handful of categories and a date window.
🚧 What it does not do
- 1,000 events per search, Eventbrite's own ceiling. Split by keyword, category or date to go
deeper.
- 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.
- One date on its own is ignored.
startDateandendDatework as a pair. - 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.
🧭 Which events scraper do you need?
| If you want | Use |
|---|---|
| Eventbrite events by city | This one |
| Luma events | Luma Events Scraper |
| Trade shows and conferences | 10Times Events Scraper |
| Facebook events | Facebook Events Scraper |
❓ Questions people ask
Do I need an Eventbrite 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 than I asked for? Either the search is smaller than your budget, or it hit Eventbrite's 1,000-event ceiling for that location. The diagnostic row says which.
Can I get online events? Yes, tick onlineOnly. The location then becomes optional, since online events do not have one.
Can I schedule it? Yes. Dedupe on eventId and each run gives you what is newly listed.
Is scraping Eventbrite legal? 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 scraping and the law 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.