Eventbrite Events Scraper
Last updated November 12, 2026
Eventbrite events by location and keyword, or by event URL: dates, venue with coordinates, category, organizer, and ticket price range. One flat row per event, Clay ready. No login, no key. Refused pages are free.
Install
npx @mambalabsdev/mcp-eventbrite-events-scraperEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- One flat row per event, with dates, venue, and coordinates.
- Organizer name, profile, and ticket price range from the event page.
- Search by location and keyword, with a start date range.
- Refused pages and missing events are free rows.
- Pay per event: Event row with details at $0.003.
Input
locationsarrayoptionalPlaces to search, one per line: "City, Region" such as "Austin, TX" or "London, United Kingdom", an Eventbrite location slug such as ca--san-francisco, or online. A location Eventbrite does not know returns a free row.
keywordsarrayoptionalSearch words, such as tech, startup, or yoga. Each keyword is searched in each location. Leave empty to list all events in a location.
event_urlsarrayoptionalEventbrite event URLs or event IDs, on any Eventbrite domain. Each event page is read for its organizer and price.
start_date_fromstringoptionalOptional, YYYY-MM-DD. Search results that start earlier are skipped and not charged.
start_date_tostringoptionalOptional, YYYY-MM-DD. Search results that start later are skipped and not charged.
read_detailsstringoptionaltrue (default) or false. With true, each event page is read for the organizer name and the ticket price range, at the event row with details price. With false, rows come from search pages only, at the lower event row price, with no organizer name and no price.
max_eventsstringoptionalThe most events to return in this run, across every search and URL, from 1 to 2,000. Default 50. Text or a number.
max_pages_per_searchstringoptionalSearch pages read for each location and keyword pair, from 1 to 50. A page holds about 20 events. Default 5.
max_charge_usdstringoptionalOptional. The run stops before a charge that would pass this amount. Summary rows are always returned.
Output schema
{
"row_type": "string",
"input": "string",
"search_location": "string",
"search_keyword": "string",
"search_page": "integer",
"event_id": "string",
"event_name": "string",
"summary": "string",
"event_url": "string",
"start_date": "string",
"start_time": "string",
"end_date": "string",
"end_time": "string",
"start_datetime": "string",
"end_datetime": "string",
"timezone": "string",
"is_online": "boolean",
"is_cancelled": "boolean",
"event_status": "string",
"attendance_mode": "string",
"venue_name": "string",
"address": "string",
"city": "string",
"region": "string",
"postal_code": "string",
"country": "string",
"latitude": "number",
"longitude": "number",
"category": "string",
"subcategory": "string",
"event_format": "string",
"tags": "string",
"organizer_id": "string",
"organizer_name": "string",
"organizer_url": "string",
"organizer_description": "string",
"price_low": "number",
"price_high": "number",
"currency": "string",
"is_free": "boolean",
"ticket_availability": "string",
"sales_end": "string",
"tickets_url": "string",
"tickets_by": "string",
"image_url": "string",
"language": "string",
"published_at": "string",
"keyword_in_text": "boolean",
"detail_read": "boolean",
"attempts": "integer",
"row_status": "string",
"error_reason": "string",
"billable_events_json": "string",
"scraped_at": "string"
}Pricing
| Event | Free plan price |
|---|---|
| Event row with details | $0.003 |
| Event row | $0.0015 |
| Search | $0.007 |
| Actor Start | $0.026 |
Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.
On the Apify free plan the actor stops at $1.50 of charges a month, about 500 events. Any paid Apify plan removes the cap.
Limits
- A search page holds about 20 events. max_pages_per_search caps pages per location and keyword pair, 5 by default.
- Search results are ordered by Eventbrite's relevance, not by date. The date filter is applied to the results read, so a narrow date range can return fewer events than max_events.
- A date in the search address drops the keyword on Eventbrite's side, so dates are filtered by the actor, not by Eventbrite.
- Eventbrite answers a keyword it has no events for with every event in the location. When no result on the first search page carries a word of the keyword in its name, summary, category, or tags, the actor returns one no_results row for that search, and the search is charged once. keyword_in_text marks each row; a row marked false matched on its description or is a looser match from Eventbrite.
- Keyword words under 3 letters, such as "AI", are not checked.
- Prices are the range shown on the event page, before Eventbrite's checkout fees. Events with hidden or invite only tickets have no price.
- is_cancelled is often empty on search results. event_status from the event page is the better field.
- Organizer email and phone are not returned. Eventbrite does not show them on public pages.
- Refused pages are not retried. Rerun the inputs that came back blocked.