Eventbrite Events Scraper avatar

Eventbrite Events Scraper

Pricing

from $4.50 / 1,000 event scrapeds

Go to Apify Store
Eventbrite Events Scraper

Eventbrite Events Scraper

Search Eventbrite by city, keyword, date, category and price, or paste event and organizer URLs. One row per event: dates with time zone, venue and coordinates, price range, sold-out and urgency signals, organizer. Optional: every ticket type, refund policy, organizer track record.

Pricing

from $4.50 / 1,000 event scrapeds

Rating

0.0

(0)

Developer

CHEN-SHU-CHEN

CHEN-SHU-CHEN

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Categories

Share

What is Eventbrite Events Scraper?

You want a list of events: every tech meetup in San Francisco next month, the free concerts in London this weekend, or everything one organizer has run. Eventbrite shows them twenty at a time, spread over pages, with the price, the venue and the organizer each a click away.

Give it a city, keywords, dates, categories and a price filter, or paste event URLs, organizer URLs or Eventbrite search URLs. You get one row per event: title, start and end with their time zone and UTC, online or in person, venue with address and coordinates, category, subcategory and format, price range and currency, free, sold out, sales window, Eventbrite's "few tickets left" and "sales end soon" signals, recurring-series links, and the organizer with their follower count. No login needed.

Turn on details to also get every ticket type (price, fee, all-in price, on sale or sold out, sales window, per-order limits), the refund policy, the waitlist flag, the full description, and the organizer's track record: exact followers, total events hosted, attendees hosted, years on Eventbrite and the verified badge.

Because it runs on Apify, you can schedule a weekly pull for your city, call it through the API, send it to Google Sheets, Make or Zapier, and export it as CSV, Excel or JSON.

How to scrape Eventbrite events

  1. Open the Input tab. Type a Location, such as San Francisco, CA, London or online.
  2. Add Keywords if you want them, one per line. Each keyword is its own search. Leave empty to list everything in the city.
  3. Pick When, Categories and Price if you need them, and set Maximum events per search.
  4. Or skip the search and paste event, organizer or search URLs. They can be mixed with a search in one run.
  5. Click Start. A search of 100 events takes about 15 seconds; with details on, about a minute and a half (three more pages per event, plus a few per organizer).
  6. Open the Output tab or export the dataset. Inputs that found nothing are still listed, with a status and a reason.

What data does it return?

Every event appears once, however many keywords, pages or organizers found it.

FieldNotes
statusok for an event. Rows for inputs that produced no events: no_results, not_found, blocked, failed, parse_error, invalid_input, not_processed
inputType, inputWhich search or URL found the event (search, searchUrl, eventUrl, organizerUrl)
eventId, url, title, summarysummary is the short description Eventbrite shows in search. The full one comes with details
startAt, endAtLocal time with its UTC offset, e.g. 2026-11-04T17:00:00-08:00
startUtc, endUtc, timezoneThe same moments in UTC, and the IANA time zone
startDate, endDate, hideStartDate, hideEndDate
isOnlinetrue for online events
venueName, venueAddress, venueCity, venueRegion, venuePostalCode, venueCountry, venueLatitude, venueLongitude, venueIdNull for online events
neighborhoodFrom search results, e.g. Soma
category, subcategory, format (+ …Id)Eventbrite's own taxonomy, e.g. Business & Professional / Career / Meeting or Networking Event
tagsThe organizer's own tags
imageUrl, imageOriginalUrl
priceMin, priceMax, currency, priceMinDisplay, priceMaxDisplayThe range Eventbrite shows in search. Where Eventbrite uses all-in pricing (the US), this includes fees
isFree, isSoldOut, hasAvailableTickets, hasBogoTickets
salesStatus, salesStatusMessage, salesStart, salesEndon_sale, sold_out, sales_ended, not_yet_on_sale…; dates in UTC
urgencySignals, urgencyCategoriesEventbrite's badges: fewTickets, goingFast, salesEndSoon, earlyBird, popular, new
isPromotedtrue for a paid placement (only with includePromoted on search URLs), false for organic search results, null for URL and organizer inputs
isRecurring, seriesId, seriesUrl, seriesUpcomingCountFor events that are one date of a series
organizerId, organizerName, organizerUrl, organizerFollowers, organizerWebsite, organizerTwitter, organizerFacebook
language, eventStatus, isCancelled, isPrivate, ticketsBy, ticketsUrl, publishedAt, scrapedAt

With details on (includeTicketsAndOrganizer)

FieldNotes
detailsStatus, detailsErrorok, or why the details could not be read (the event row itself is still delivered)
ticketClassesOne object per ticket type: name, category (admission, add-on, donation), price, fee, tax, allInPrice, currency, onSaleStatus (AVAILABLE, SOLD_OUT, UNAVAILABLE, NOT_YET_ON_SALE…), isSoldOut, isAvailable, salesStart, salesEnd, minPerOrder, maxPerOrder, isFree, isDonation, deliveryMethods
ticketClassCount, ticketsOnSaleCount, ticketsSoldOutCount, allInPriceMin, allInPriceMax
refundPolicy, refundDays, refundsAllowed, refundPolicyTexte.g. custom, 7, true, "Refunds up to 7 days before event". no_refunds gives refundsAllowed: false; not_defined gives null
waitlistAvailable, isReservedSeating, isExternallyTicketed, inventoryType, ageRestriction, doorTime, presentedBy, hasDigitalContent
description, descriptionHtmlThe full event description, as text and as HTML
createdAt, updatedAt, locale
organizerFollowersExact, from the organizer's profile
organizerTotalEvents, organizerUpcomingEvents, organizerPastEvents
organizerAttendeesHosted, organizerAttendeesHostedTextEventbrite only publishes this rounded (5.9k), so the number is 5900 and the original text sits beside it
organizerHostingYears, organizerHostingYearsText, organizerVerified, organizerBadge, organizerDescription

Unknown is null, never 0. Eventbrite does not publish how many tickets are left or an event's capacity, so capacity is almost always null. The honest signals are isSoldOut, each ticket type's onSaleStatus, and the fewTickets / goingFast badges.

How much does it cost to scrape Eventbrite?

You pay per event delivered, not per page or per minute.

EventCharged forPricePer 1,000 events
event-scrapedEach event row delivered (status: ok)$0.0045$4.50
event-detailsEach event whose ticket types, refund policy and organizer record were read (detailsStatus: ok)$0.003$3

So 1,000 events cost $4.50, or $7.50 with details. Rows for inputs that found nothing (no_results, not_found, blocked, invalid_input, not_processed…) are free, and so are the details of an event whose details could not be read. An event found by two searches is charged once.

Is it free to try?

Apify's free plan includes $5 of usage a month, which covers about 1,100 events, or about 650 with details.

How do I cap what a run can spend?

Set a maximum cost per run in the run options. Before reading each batch of events the Actor works out how many more rows the limit covers, with or without details, and reads no more than that. When the limit is reached it stops, and every input it did not get to is listed as not_processed. If a charge fails, the run stops the same way rather than keep working unbilled. A failed charge is not sent a second time, so an event is never billed twice.

What happens if Apify restarts a run?

Each event row is written and charged in the same step, so an event is never charged without being in your dataset. When Apify moves a run to another server, the restarted run reads back the events already in the dataset and does not deliver or charge them again; each search and organizer keeps its limit across the restart. The run also has a time budget (timeBudgetSeconds, and the run's own timeout): no request starts, and no retry waits, past it. Events whose details were still being read when time ran out are left out and not charged, and the inputs not reached are listed as not_processed.

Input example

{
"location": "San Francisco, CA",
"keywords": ["tech", "startup"],
"dateFilter": "next_month",
"price": "any",
"maxEvents": 200,
"urls": [
"https://www.eventbrite.com/e/tech-networking-event-in-san-francisco-tickets-1998391270084",
"https://www.eventbrite.com/o/the-business-minds-108731452361"
],
"organizerEvents": "upcoming",
"includeTicketsAndOrganizer": true
}

Locations: a city as you would write it (Austin, Paris, France, Springfield, IL), an Eventbrite place slug (tx--austin), or online. Eventbrite picks the best match for a bare city name, so the place it chose is written to the log; add the state or country when a name is ambiguous.

URLs: event pages (/e/...-tickets-123), organizer pages (/o/...-456) and search pages (/d/...) from any Eventbrite country site. A search URL is a way to use any filter Eventbrite's own search offers: set it up on eventbrite.com, copy the address, paste it here.

Output example

One row from a run on 2026-10-18, with details on, trimmed:

{
"status": "ok",
"inputType": "search",
"input": "python @ online",
"eventId": "2002225540490",
"title": "Introduction to Python for Data Analysis",
"startAt": "2026-11-09T14:30:00-05:00",
"startUtc": "2026-11-09T19:30:00Z",
"timezone": "America/Toronto",
"isOnline": true,
"category": "Science & Technology",
"priceMin": 50.85,
"priceMax": 50.85,
"currency": "CAD",
"isSoldOut": false,
"salesStatus": "on_sale",
"urgencySignals": [],
"organizerName": "Quantitative Methods Workshop Series",
"organizerFollowers": 188,
"ticketClasses": [
{
"name": "General Admission",
"price": 45.0,
"fee": 0.0,
"tax": 5.85,
"allInPrice": 50.85,
"currency": "CAD",
"onSaleStatus": "AVAILABLE",
"salesStart": "2026-09-24T13:00:00Z",
"salesEnd": "2026-11-08T19:30:00Z",
"minPerOrder": 1,
"maxPerOrder": 1
}
],
"refundPolicy": "custom",
"refundDays": 7,
"refundPolicyText": "Refunds up to 7 days before event",
"organizerTotalEvents": 79,
"organizerAttendeesHosted": 1100,
"organizerAttendeesHostedText": "1.1k",
"organizerHostingYears": 5,
"organizerVerified": true
}

FAQ

Why did my keyword search return fewer events than Eventbrite says?

When a keyword has few real matches, Eventbrite's search fills the rest with unrelated events from the same city: a search for "python" in San Francisco returns a class reunion and a bluegrass night. With Only keep events that contain the keyword on (the default), an event is kept only if every word of the keyword is in its title, summary, category or tags, and the search stops at the first page with no matches. Turn it off to get exactly what Eventbrite shows.

How many events can one search return?

Eventbrite stops at 1,000 results for any one search, and so does this Actor. For more, split the search: several keywords, categories, or date ranges. Events that show up in more than one are returned once.

Can it get past events?

For an organizer, yes: set Which events of an organizer to Past or Upcoming and past. Search only covers upcoming events, as on eventbrite.com.

Does it need a login, cookies or an API key?

No. It reads the same public data a logged-out visitor sees, from the JSON Eventbrite's own pages load. Private and password-protected events are not visible logged out and come back not_found.

Why is an input marked blocked?

Eventbrite refused the request on every proxy session tried. The Actor uses Apify's datacenter proxy and, if Eventbrite keeps refusing it, moves the rest of the run to Apify's US residential proxy (included in the price; turn off with Switch to residential proxy if blocked). If inputs still come back blocked, run again later.

What can it not return?

  • Tickets remaining and capacity. Eventbrite does not publish them. Use isSoldOut, onSaleStatus and the fewTickets signal instead.
  • Attendee lists and organizer email addresses. Not public.
  • Exact attendee totals for organizers. Eventbrite only shows them rounded (5.9k).
  • Refund terms when the organizer set none. refundPolicy is then not_defined and refundsAllowed is null.

It reads only public event pages, the same data any visitor sees, and no personal data beyond what organizers publish about their events. Check the rules that apply to you and to what you do with the data; this is not legal advice.

Something broke or a field looks wrong

Open an issue on the Issues tab with the input and the run link. Reports are answered there.