Events Scraper (Eventbrite + Luma)
Pricing
from $2.00 / 1,000 results
Events Scraper (Eventbrite + Luma)
Public events from Eventbrite and Luma in one run: title, dates with time zone, venue, coordinates, organizer, price, tickets, categories and Luma guest counts. Filter by city, keyword, dates, free or online. Bounded retries; failed queries are never charged.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
signal clear
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Collect public event listings from Eventbrite and Luma in one run. Give it cities and optional keywords, pick a date window, and get one clean, de-duplicated table of events from both platforms: title, start and end time with time zone, venue and coordinates, organizer, price range, ticket link, image, categories, and Luma's guest counts.
Useful for local event guides, event-promoter and venue lead lists, market research, and seasonal sweeps: holiday markets, New Year's Eve parties, winter conferences and meetups.
What it does
- Two platforms, one schema. Every row has the same fields whichever platform it came from, plus a
sourcecolumn. - Bounded. Every request has a timeout, every query has a fixed number of attempts (each on a fresh proxy session), and each query stops at your per-query limit. The run always ends.
- Failed queries are never charged. A query (one platform x one location x one keyword) is saved only once it has completely succeeded. If it still fails after its retries, nothing from it reaches the dataset. It is listed in the
FAILED_QUERIESrecord of the run's key-value store instead, with the reason. The run fails only if every query failed. - De-duplicated. An event that turns up in several of your queries (say, two overlapping keywords) is saved once per run.
- No login, no API keys. It reads the same public listings a visitor sees.
Input
| Field | What it does |
|---|---|
sources | both (default), eventbrite or luma. |
locations | Cities, one per line: Austin, TX, London, United Kingdom, Berlin. Eventbrite also accepts its own place slug (tx--austin). Luma covers its discover cities (about 90 large cities worldwide). For any other place on Luma, enter latitude,longitude, such as 45.5152,-122.6784. |
keywords | Optional search terms, one per line, such as christmas market, new year's eve or conference. Each keyword is its own query in every location. Leave empty for all events. |
dateRange | any (default), today, tomorrow, this-weekend (Fri-Sun), this-week (to Sunday), next-week (Mon-Sun), this-month, or custom with dateFrom / dateTo (YYYY-MM-DD). Events are matched on their local date. Presets are computed from today's date in UTC. |
onlineOnly | Online events only. On Eventbrite this searches the online-events listing, which isn't tied to a place, so locations are ignored there. Luma's discover feed lists mostly in-person events. |
freeOnly | Free events only. |
maxEventsPerQuery | Stop each query after this many matching events (default 100). |
includeDescription | Fetch each event's full description, plus categories on Luma. This costs one extra request per event, so it is off by default. Eventbrite rows always include the short summary. |
maxItems | Stop the whole run after this many saved events. |
maxConcurrency | Queries run in parallel (default 3). |
maxAttempts | Attempts per query, each on a fresh proxy session (default 3, maximum 5). |
requestTimeoutSecs | Timeout for each HTTP request (default 30). |
proxyConfiguration | Apify Proxy. The default is the RESIDENTIAL group pinned to the US, because Eventbrite answers datacenter IPs with HTTP 405. Luma also works from datacenter IPs, so Luma-only runs can switch to datacenter to save proxy cost. |
Example:
{"sources": "both","locations": ["Austin, TX", "London, United Kingdom"],"keywords": ["christmas market"],"dateRange": "custom","dateFrom": "2026-12-01","dateTo": "2026-12-24","maxEventsPerQuery": 100}
Output
One row per event. Fields a platform doesn't publish are null or an empty list. Sample rows (the names are fictional):
{"source": "eventbrite","eventId": "1234567890123","title": "Riverside Winter Makers Market","url": "https://www.eventbrite.com/e/riverside-winter-makers-market-tickets-1234567890123","startAt": "2026-12-05T10:00:00-06:00","endAt": "2026-12-05T16:00:00-06:00","timezone": "America/Chicago","isOnline": false,"venueName": "Old Mill Hall","address": "100 Example St, Austin, TX 78701","city": "Austin","region": "TX","country": "US","lat": 30.27,"lon": -97.74,"organizerName": "Riverside Makers Collective","organizerUrl": "https://www.eventbrite.com/o/riverside-makers-collective-12345678901","isFree": false,"priceMin": 5.0,"priceMax": 12.5,"currency": "USD","isSoldOut": false,"salesStatus": "on_sale","isCancelled": false,"ticketUrl": "https://www.eventbrite.com/checkout-external?eid=1234567890123","imageUrl": "https://img.evbuc.com/...","categories": ["Seasonal & Holiday", "Festival or Fair"],"tags": ["holidaymarket", "local"],"summary": "Forty local makers, warm drinks and live music.","attendeeCount": null,"query": { "location": "Austin, TX", "keyword": "christmas market" },"scrapedAt": "2026-11-20T15:04:05.000000+00:00"}
{"source": "luma","eventId": "evt-AbCdEfGhIjKlMnO","title": "Founders Holiday Mixer","url": "https://luma.com/abc123xy","startAt": "2026-12-10T18:00:00+00:00","endAt": "2026-12-10T21:00:00+00:00","timezone": "Europe/London","isOnline": false,"venueName": "The Example Rooms","address": "1 Example Lane, London, UK","city": "London","region": "England","country": "United Kingdom","lat": 51.51,"lon": -0.12,"organizerName": "Northside Startup Club","organizerUrl": "https://luma.com/northside-startups","isFree": true,"priceMin": 0.0,"priceMax": 0.0,"currency": null,"isSoldOut": false,"salesStatus": "open","isCancelled": false,"ticketUrl": "https://luma.com/abc123xy","imageUrl": "https://images.lumacdn.com/...","categories": [],"tags": [],"summary": null,"attendeeCount": 42,"query": { "location": "London, United Kingdom", "keyword": null },"scrapedAt": "2026-11-20T15:04:06.000000+00:00"}
startAt and endAt are ISO 8601 in the event's own time zone. attendeeCount is Luma's public guest count; Eventbrite doesn't publish one. With includeDescription on, rows also carry description as plain text. The run's FAILED_QUERIES record looks like this:
[{ "source": "luma", "query": "Smallville / all events", "error": "not found (\"Smallville\" is not one of Luma's discover cities; pass coordinates as \"latitude,longitude\" instead)", "attempts": 1 }]
Limits
- Eventbrite search returns 20 events per page and stops at the last page it offers, usually a few hundred events per query. Eventbrite needs a place name. Coordinates are rejected with a clear message.
- Luma without a keyword walks the city's feed in date order. With a keyword, Luma's search returns at most 50 ranked results worldwide, and this Actor keeps those within 80 km of the location. Keyword queries on Luma are therefore small by design. Luma categories come only with
includeDescription. - Upcoming events only. Neither platform's public listing covers past events.
- Both sites can change their page layout or rate-limit a proxy IP. A challenge page or HTTP 429 is reported as such, retried on a fresh session after a short wait, and never solved or bypassed. If retries keep failing, check that the proxy is still set to the residential group.
Pricing
Pay per saved event. Queries that fail are not charged, and the run stops at maxItems and maxEventsPerQuery, so the cost of a run is bounded before it starts. Full descriptions cost one extra request per event and make runs slower, so they are off by default.
Legal note
This Actor collects public event listings that organizers publish so people can find and attend their events. It does not log in, and it does not collect attendee lists, guest names, or anyone's contact details. Organizer names and links are included only for organizations: businesses, venues and community groups. When a Luma event is hosted from an individual's personal calendar, organizerName and organizerUrl are left empty. You are responsible for using the data lawfully, including each platform's terms of use and the privacy law that applies to you.