Eventbrite Events Scraper
Pricing
Pay per event
Eventbrite Events Scraper
Scrape public Eventbrite events, category/search listings, and organizer profiles into structured rows: title, timing, venue, pricing, and ticket availability. Discover by keyword, location, or category, or supply direct event/listing/organizer URLs. No login required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🎯 What this scrapes
Eventbrite hosts millions of public events — conferences, meetups, concerts, workshops, fundraisers — and this Actor turns that into a clean, structured feed. Point it at direct event URLs, a category/search listing page, or a keyword + location combination, and it writes one row per event: title, start/end time, venue, price range, ticket availability, and organizer details. Add organizer enrichment to pull each event's organizer profile alongside it. Built for B2B events-intel — sponsorship prospecting, competitor-event tracking, and local-market research — without hand-building Eventbrite search URLs or parsing the site yourself.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Proxy rotation via Apify Proxy — fresh session and exit IP on every block; the RESIDENTIAL group is one input toggle away if Eventbrite ever tightens up.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Per-item fault isolation — one broken event or listing page is logged and skipped; the rest of your run keeps going.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for events that land in your dataset. No data, no charge.
💡 Use cases
- Sponsorship prospecting — find every event in a category or region that matches your sponsor's target audience, with organizer contact context.
- Competitor-event tracking — watch what events a rival brand or organizer is running, where, and how their pricing/availability shifts over time.
- Local-market research — snapshot everything happening in a city or region for a given category to spot trends and gaps.
- Organizer lead lists — build a list of active Eventbrite organizers behind events in your niche.
- Event-calendar aggregation — pull structured event data into your own calendar, dashboard, or n8n / Make workflow on a schedule.
⚙️ How to use it
- Click Try for free at the top of the Store listing.
- Either add Start URLs (direct event / listing / organizer links), or set Keyword and/or Category together with Location to build a search automatically.
- Set Max items and optionally enable Include organizer details.
- Click Start. Rows stream into the dataset as events are discovered and fetched.
- Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | no | — | Direct mix of event (/e/...), listing (/d/...), and organizer (/o/...) URLs. |
keyword | string | no | — | Free-text search term, combined into a listing URL. Requires location. |
location | string | no | — | City/region, e.g. "Los Angeles, CA". Required with keyword/category when startUrls is empty. |
category | string | no | — | Eventbrite category slug or free text, e.g. music, food-and-drink. |
maxItems | integer | no | 100 | Cap on total events returned across all sources (1–1000). |
includeOrganizerDetails | boolean | no | false | Fetch each event's organizer page and merge extra fields onto the row. |
proxyConfiguration | object | no | {"useApifyProxy": true} | Apify Proxy configuration. |
At least one of startUrls or (keyword/category + location) is required.
Example input
{"startUrls": ["https://www.eventbrite.com/e/2026-alaska-geosummit-registration-1987460378493"],"maxItems": 100,"includeOrganizerDetails": false,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output
Every row is one dataset item — one event.
| Field | Type | Notes |
|---|---|---|
event_id | string | Trailing numeric segment of the event URL. |
event_url | string | Canonical event page URL. |
title | string | Event title. |
description | ['string', 'null'] | Truncated to 500 chars. |
start_datetime | string | ISO 8601. |
end_datetime | ['string', 'null'] | ISO 8601. |
timezone | ['string', 'null'] | Offset parsed from the start/end datetime. |
is_online_event | boolean | True for virtual events. |
venue_name | ['string', 'null'] | Venue name. |
venue_street_address | ['string', 'null'] | Street address. |
venue_city | ['string', 'null'] | City. |
venue_region | ['string', 'null'] | State/region. |
venue_country | ['string', 'null'] | Country. |
organizer_name | ['string', 'null'] | Organizer name. |
organizer_url | ['string', 'null'] | Organizer profile URL. |
price_low | ['number', 'null'] | Minimum ticket price. |
price_high | ['number', 'null'] | Maximum ticket price. |
price_currency | ['string', 'null'] | Ticket price currency. |
ticket_availability | ['string', 'null'] | e.g. InStock / SoldOut. |
image_url | ['string', 'null'] | Event image URL. |
category | ['string', 'null'] | Set when discovered via a listing; null for direct event URLs. |
source_url | string | Page URL the row was extracted from. |
scraped_at | string | ISO 8601 run-time timestamp. |
organizer_description | ['string', 'null'] | Set only when includeOrganizerDetails=true. |
organizer_event_count | ['integer', 'null'] | Set only when includeOrganizerDetails=true, if available. |
Example output
{"event_id": "1987460378493","event_url": "https://www.eventbrite.com/e/2026-alaska-geosummit-registration-1987460378493","title": "2026 Alaska GeoSummit","description": "Annual gathering of Alaska's geospatial community...","start_datetime": "2026-09-15T08:00:00-08:00","end_datetime": "2026-09-17T17:00:00-08:00","timezone": "-08:00","is_online_event": false,"venue_name": "Dena'ina Civic and Convention Center","venue_street_address": "600 W 7th Ave","venue_city": "Anchorage","venue_region": "AK","venue_country": "US","organizer_name": "Alaska Geospatial Office","organizer_url": "https://www.eventbrite.com/o/alaska-geospatial-office-61455617933","price_low": 0.0,"price_high": 250.0,"price_currency": "USD","ticket_availability": "https://schema.org/InStock","image_url": "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2Fexample.jpg","category": "Science & Tech","source_url": "https://www.eventbrite.com/e/2026-alaska-geosummit-registration-1987460378493","scraped_at": "2026-08-10T12:00:00Z","organizer_description": null,"organizer_event_count": null}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.01 | One-off warm-up charge per run |
result-emitted | $0.0015 | Charged for each event row written to the dataset |
Example: 1 000 results at the rates above ≈ $1.51. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
Read-only, public data only — no ticket purchase/checkout flow, no attendee lists or RSVP identities, no private/unlisted events. This Actor scrapes public HTML only; it does not use Eventbrite's paid Partner API. Past/historical event archives beyond what search/category listing pages currently surface are out of scope, as is locale-switching beyond Eventbrite's default for a given location.
❓ FAQ
Do I need an Eventbrite account or API key?
No. This Actor scrapes Eventbrite's own publicly listed event data — no login, no API key.
Can I mix event, listing, and organizer URLs in one run?
Yes — startUrls accepts any mix of the three; each is dispatched to the right handler automatically based on its URL shape.
What happens if I search by keyword or category instead of URLs?
We compile keyword/category + location into a real Eventbrite search/category listing URL, fetch it, and discover events from it the same way a direct listing URL would.
Does organizer_description always populate?
Only when includeOrganizerDetails is true and the organizer's profile page exposes it; otherwise it's null.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.