Eventbrite Events Scraper
Pricing
from $3.09 / 1,000 results
Eventbrite Events Scraper
Scrape public Eventbrite events by city, keyword, category, date or search URL. Get titles, dates, times, venues, addresses, coordinates, categories, images and URLs, plus organizer names and ticket price ranges from event pages. No login or API key needed.
Pricing
from $3.09 / 1,000 results
Rating
0.0
(0)
Developer
Axiom Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Returns: one row per Eventbrite event with title, startDate, venueName, city, category, organizerName, priceMin, and url.
Input: {"location":"ca--san-francisco","searchTerm":"music","maxItems":20}
Best for: building local event calendars, monitoring upcoming shows, and researching event organizers.
{"id":"2001035690617","title":"Halloween Cruise Party","startDate":"2026-10-31","venueName":"Hornblower Cruises & Events","city":"San Francisco","category":"Seasonal & Holiday","url":"https://www.eventbrite.com/e/halloween-cruise-party-tickets-2001035690617"}
What does Eventbrite Events Scraper do?
Eventbrite Events Scraper collects publicly listed events from Eventbrite search pages. Search by place and keyword, choose a category or date filter, or supply an existing Eventbrite search URL. Each event is returned as one dataset row with a stable Eventbrite ID and a source URL. This Eventbrite scraper reads the event data embedded in search pages and, when requested, opens event pages to collect organizer and listed ticket range fields. It does not require an Eventbrite login.
The output supports a local event calendar, a spreadsheet of upcoming performances, research into venues and organizers, or a recurring check for events matching a topic. It provides structured fields rather than a copied page, so you can sort by date, city, category, or organizer. The Actor stops at maxItems and deduplicates event IDs across pages and supplied URLs. Every returned row counts as one result. If a public search produces no events, the dataset is empty and the run reports that outcome.
This Actor uses public Eventbrite pages rather than an official Eventbrite API. Eventbrite can change its page structure, search order, availability, or access controls. Results reflect what the public pages displayed when the run fetched them. An event may have no listed price, no venue address, or no organizer details; such fields are returned as null. A search result can also disappear or change between the search and detail request. For reproducible monitoring, keep the ID and source URL alongside each record.
What data can you get?
The dataset contains the following fields. Date and time values are the event's local schedule as exposed by the page. The detail page supplies organizer and ticket range information when includeDetails is enabled. A missing value is null, not a guessed replacement. priceMin and priceMax describe a range shown on the event page; they do not imply that a ticket remains available.
| Field | Description | Example |
|---|---|---|
id | Stable Eventbrite event identifier | 2001035690617 |
title | Event name | Halloween Cruise Party |
summary | Short event summary or description | Halloween Cruise Party is the perfect ship... |
startDate | Local starting calendar date | 2026-10-31 |
startTime | Local starting clock time | 20:00 |
endDate | Local ending calendar date | 2026-11-01 |
endTime | Local ending clock time | 00:00 |
timezone | Event timezone | America/Los_Angeles |
venueName | Venue listed for an in-person event | Hornblower Cruises & Events |
address | Display address or street address | Pier 3 Hornblower Landing, San Francisco, CA 94111 |
city | Venue city | San Francisco |
region | Venue state or region | CA |
postalCode | Venue postal code | 94111 |
country | Venue country code or name | US |
latitude | Venue latitude as page text | 37.7976732 |
longitude | Venue longitude as page text | -122.3958829 |
isOnline | Whether the event is identified as online | false |
category | Event category shown in search results | Seasonal & Holiday |
imageUrl | Main event image URL | https://img.evbuc.com/... |
url | Public event page URL | https://www.eventbrite.com/e/halloween-cruise-party-tickets-2001035690617 |
organizerId | Organizer identifier when listed | 16549088350 |
organizerName | Organizer name from the event page | MGD Productions |
organizerUrl | Public organizer page URL | https://www.eventbrite.com/o/mgd-productions-16549088350 |
priceMin | Lowest listed ticket range value | 65.87 |
priceMax | Highest listed ticket range value | 65.87 |
currency | Ticket range currency | USD |
sourceUrl | Event page associated with the record | https://www.eventbrite.com/e/halloween-cruise-party-tickets-2001035690617 |
Location data comes from each event's public listing. It is possible for the venue city to differ from the searched location because regional search results cover nearby places. For example, a San Francisco search can include an event in Sausalito. Use the returned city and address when filtering exact venues. An online event can lack the venue fields altogether. Coordinates remain strings because that is how the source presents them, preserving the displayed precision.
How to use
Open the Actor in Apify Console, enter a place slug such as ca--san-francisco, then add a keyword such as music. Choose a category when you want browsing rather than a keyword search. Set maxItems to the number of rows you need. Keep includeDetails enabled if organizer and ticket range fields matter. Run the Actor and open its Dataset tab to inspect or export the results in JSON, CSV, Excel, or another supported format.
You can also paste public Eventbrite /d/ search URLs or /b/ browse URLs into startUrls. In that case the Actor uses those URLs instead of building a search from the other search fields. A browse URL is converted to its search path so that the Actor can continue through result pages. The event ID prevents duplicates when the same event appears in several pages or inputs. A search URL must use Eventbrite's public website and must not require an account.
Results are fetched page by page, with a modest pause between search pages. The event detail requests are made only when needed. maxItems is an exact upper bound: with enough results, a value of 7 yields seven rows. If fewer than seven public results match, fewer rows are returned. When a page is blocked or rate limited, the Actor retries with backoff and a fresh proxy session. It does not attempt to solve verification challenges. Residential Apify Proxy is the default because some Eventbrite pages reject datacenter traffic.
Input
The fields below are accepted in an API call or the Apify input editor. Search terms and categories are optional because a location can be browsed without them, and a direct URL can provide the target instead. The example shows the common place and keyword form.
| Field | Type | Required | Description |
|---|---|---|---|
location | string | No | Place slug, default ca--san-francisco; use online for online events. |
searchTerm | string | No | Keyword placed in the generated search path; default empty. |
startUrls | URL list | No | Public Eventbrite search or browse URLs; overrides generated search. |
category | enum | No | Category slug for a generated search when no term is given; default music. |
dateFilter | enum | No | all, today, tomorrow, this-weekend, this-week, next-week, or this-month; default all. |
includeDetails | boolean | No | Fetch event pages for organizer and ticket range fields; default true. |
maxItems | integer | No | Maximum number of records, from 1 through 10000; default 50. |
proxyConfiguration | object | No | Apify Proxy settings; residential group is the default. |
{"location": "ca--san-francisco","searchTerm": "music","dateFilter": "this-weekend","includeDetails": true,"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}}
A URL input can be written as {"startUrls":[{"url":"https://www.eventbrite.com/d/ny--new-york/business/"}],"maxItems":25}. Use the normal public search page URL copied from Eventbrite. The Actor accepts multiple entries and processes them in order until it reaches the result limit. Search results are ordered by Eventbrite; the Actor does not apply a second ranking. The date filter applies to generated searches and should be set in the URL itself when using startUrls.
Output
The following is a real example from the public Eventbrite page probe used to design the Actor. Fields with no value for a particular event can be null. The example is shortened for readability; the dataset includes all fields in the table above. Event information changes over time, so a new run can return different rows.
[{"id": "2001035690617","title": "Halloween Cruise Party","summary": "Halloween Cruise Party is the perfect ship to start off your Halloween festivities in San Francisco.","startDate": "2026-10-31","startTime": "20:00","endDate": "2026-11-01","endTime": "00:00","timezone": "America/Los_Angeles","venueName": "Hornblower Cruises & Events","city": "San Francisco","category": "Seasonal & Holiday","organizerName": "MGD Productions","priceMin": 65.87,"currency": "USD","url": "https://www.eventbrite.com/e/halloween-cruise-party-tickets-2001035690617","sourceUrl": "https://www.eventbrite.com/e/halloween-cruise-party-tickets-2001035690617"},{"id": "2001432136397","title": "Born to Soar the Sky: Celebrating Bobby Weir’s Birthday!","startDate": "2026-10-16","startTime": "19:00","venueName": "San Francisco County Fair Building","city": "San Francisco","category": "Music","organizerName": "Haight Street Art Center","url": "https://www.eventbrite.com/e/born-to-soar-the-sky-celebrating-bobby-weirs-birthday-tickets-2001432136397"}]
The sourceUrl points to the event page rather than the search page, making each record easy to revisit. An event page may change after the run, so store the dataset if you need a record of the information observed at collection time. Dataset exports can be connected to a spreadsheet, database, or downstream workflow. The Actor returns data, not ticket inventory or a booking action.
How much does it cost?
The Actor is charged per result returned. maxItems limits the number of rows and therefore the number of result events. A search that returns no rows does not generate a result charge. See the Actor's Pricing tab in Apify for the current terms. The includeDetails setting affects how much page content must be fetched; it does not add a separate charged result event.
Use with AI agents (MCP)
An AI agent can use this Actor through Apify MCP to gather current public event rows for a city or topic, then reason over the returned fields. The MCP client sees the input schema, so place, keyword, category, and row limit can be provided in a prompt. Add this server configuration to an MCP client that supports remote HTTP servers:
{"mcpServers":{"apify":{"url":"https://mcp.apify.com/?tools=axiomworks/eventbrite-events-scraper"}}}
Example prompts: “Find public Eventbrite music events in San Francisco and return their titles, dates, venues, and event URLs.” “Collect New York business events and group them by organizer.” “Get the next few events for a local calendar and keep only rows whose venue city matches my city.” The agent should use maxItems to keep the response focused. For an event whose organizer or ticket range is essential, ask the agent to enable includeDetails.
The Eventbrite scraper gives an agent structured observations, not an official Eventbrite API connection. The agent should identify the collection time when presenting time-sensitive event details and link to the event URL for confirmation. A missing field means the public page did not provide that value to this run; it should not be filled by guesswork.
Integrations and API
The Actor can be called from code with the Apify API. Use your Apify token in the client or authorization header. The returned dataset ID lets you list the event rows after the run. Apify's Integrations tab also provides connection options for workflow tools, webhooks, and export destinations. Keep maxItems explicit in automated runs so each scheduled call has a predictable upper bound.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("axiomworks/eventbrite-events-scraper").call(run_input={"location": "ca--san-francisco", "searchTerm": "music", "maxItems": 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["startDate"], item["url"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('axiomworks/eventbrite-events-scraper').call({location: 'ca--san-francisco', searchTerm: 'music', maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL
curl -X POST 'https://api.apify.com/v2/acts/axiomworks~eventbrite-events-scraper/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"location":"ca--san-francisco","searchTerm":"music","maxItems":20}'
An automated calendar workflow might call the Actor each morning, retain each id, and compare new IDs with its previous dataset. This avoids treating the same listing on multiple search pages as a new event. When monitoring a venue, filter on the returned venueName or address after collection; a city search can include nearby locations. An organizer research workflow can keep organizerId as the stable key and use organizerUrl to review the public organizer page.
FAQ
How fresh are the results? Each run requests the public search and event pages at run time. Eventbrite controls what those pages show. There is no stored catalog inside this Actor. For ongoing monitoring, schedule runs at the frequency your workflow needs and keep prior datasets for comparison.
Why did my run return zero rows? The place, keyword, category, or URL may not match public events. A target page may also be unavailable or temporarily blocked. Check the run status message and logs, then try a broader query or a different public search URL. If the site blocked the request, use the residential proxy setting and retry later.
Why are organizer or ticket fields empty? These values come from event detail pages and can be missing if includeDetails is false, the page does not list them, or the page could not be fetched. An unpriced event can have no ticket range. The Actor leaves absent values empty instead of inventing them.
Can I search multiple places? Add multiple /d/ search URLs in startUrls. The Actor works through them in order, deduplicates event IDs, and stops at maxItems. A direct URL takes precedence over the generated location and keyword search.
Does the Actor book tickets? No. It collects public event fields and links to the event page. Visit the returned url to check current availability or event changes. The dataset should not be interpreted as a reservation or real-time ticket inventory.
Are times converted to my timezone? No. startDate, startTime, endDate, and endTime are local event values from the source. Use the timezone field when converting a schedule for another region. Some events may omit a time or timezone, in which case the corresponding value is null.
Can I export results? Yes. Open the run's Dataset tab for JSON, CSV, Excel, and other Apify-supported export formats. The API examples above access the same dataset. Keep the stable id field for joins across repeated runs.
Is it legal to scrape Eventbrite?
This Actor collects information from publicly accessible Eventbrite pages without logging in. You are responsible for how you collect and use the data, including any applicable privacy, database, and local laws. Public organizer names may identify people, so handle such information responsibly. This Actor is independent and is not affiliated with or endorsed by Eventbrite. This section is general information, not legal advice.
Feedback
If a field is missing, a public page format has changed, or a search URL behaves unexpectedly, open an issue in the Actor's Issues tab. Include a public example URL, the relevant input settings, and the run ID so the extraction can be reproduced. Do not include account credentials or private event information in a report.