Eventbrite Scraper
Pricing
from $2.00 / 1,000 events
Eventbrite Scraper
Scrape Eventbrite events with venue + organizer data by default. $0.002/event, usage paid by buyer. Search by city/query/category, URL mode, organizer mode, dryRun.
Pricing
from $2.00 / 1,000 events
Rating
0.0
(0)
Developer
subimpact
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Scrape Eventbrite events with venue + organizer data by default — cheaper than the market leader.
Price: $0.002/event, usage paid by buyer. No monthly fee.
What it does
- Search events by query, city, category, price, date range, radius
- Venue + organizer data by default (address, website, socials) via
includeDetails(default true) - Guaranteed within-run dedup — no double charges; no double rows within a single run. A platform migration can re-push a small number of un-charged rows (up to ~50 chargeable, more in degraded runs) — they are never charged twice, and the search restarts at page 1 (duplicates count toward
maxEvents). - dryRun mode — count events before you pay
- URL mode — scrape specific event URLs
- Organizer mode — all events by an organizer ID
Inputs
| Field | Description |
|---|---|
query | Free-text search (e.g. "tech", "yoga"). Optional. |
places | ONE city name or place ID. v1 supports a single place. |
country | Filters place resolution (e.g. "United States"). No-op without places. |
category | Eventbrite category ID (e.g. 103 = Music). |
price | free or paid; omit for both. |
onlineOnly | Post-filter for online events. Mutually exclusive with places. |
startDate / endDate | ISO dates; end defaults to +1 year. |
sort | date (default) or distance. distance requires places. |
radius | km. Default 50, max 50 in v1 (required with places). |
eventUrls | Event URLs to scrape directly. Series URLs return a parent stub (not charged). |
organizerId | All events by an organizer. |
maxEvents | Default 1000, max 10000. Counts processed rows (incl. duplicates). |
includeDetails | Default true. Disable for search-only (cheaper, less data). |
maxTotalChargeUsd | Bill-shock guard. Default 20.01 (10k events at $0.002). |
dryRun | Count only, no charge. Still bills platform usage. |
Output
One row per event: id, name, summary, description (details), url, start/end (local + timezone + UTC), venue name + address, city/country (with source markers), organizer name/url/website/facebook/twitter, category/subcategory/format, is_online, is_free (details), currency (details), status, image_url (details), is_series_parent, detail_failed (details), is_cancelled (search rows), listed, series_id/num_children, search_metadata. is_series_parent: true / detail_failed: true / is_cancelled: true / listed: false / status: "canceled" / status: "draft" mark rows that are delivered but not charged.
Honest numbers
- Per-query ceiling: the Eventbrite search API stops at ~900 rows per query (≤18 pages), regardless of the reported object_count. A buyer setting
maxEvents: 10000on a broad search gets ~900 rows. Date-sharding recovers ~4× (measured: 4 quarterly shards = 3,218 rows vs 791 full-year) — coming as an opt-in in v1.1. - Delivery vs object_count: ~96% on narrow queries; ~7% when object_count saturates at 10,000 (the API overstates counts on broad no-query searches — measured 892 rows for a London radius-50 drain that reported 10,000).
- Dedup: within-run only. Measured duplicate rates: 0.4-2.3% on narrow queries, up to 14% on broad no-query searches.
- Series: one row = the next upcoming occurrence.
num_children= remaining occurrences including this row. Series occurrences are NOT expanded in v1 (v1.1 opt-in). - Description:
descriptionequalssummary, both capped at ~140 chars (matches the Eventbrite search UI). Full HTML body is not fetched in v1. - Cancellations: search-only mode is best-effort on cancelled events (the API returns
is_cancelledas null on search rows). WithincludeDetails(default), cancelled/draft/unlisted events are delivered but not charged — the row is in the dataset with its status, and you are not billed for it. - detail_failed rows: if a detail fetch fails, the row is still delivered (search data) but not charged when
includeDetails=true. - Destination fields (on by default,
enrichDestination: falseto disable): each event also carriesticket_min_price/ticket_max_price/ticket_currency(price range from ticket availability),is_sold_out/has_available_tickets/has_bogo_tickets,sales_status/sales_start/sales_end,public_collections_count,saved_by_you,image_small_url/image_large_url. One extra lightweight API call per event; failures leave the fields null and never affect charging (the verdict counts them indestinationMissing). Venue coordinates (venue_latitude/venue_longitude) come from the venue record. - Partial runs: a WAF, rate-limit, auth, charge-cap, detail-degradation, schema-drift, non-200-page, page-cap, or checkpoint-unreadable event ends the run gracefully (SUCCEEDED) with fewer rows than requested — the run log and the KV
finalize_verdictrecord (fieldstruncated/exitReason/detailErrors/detailSkips/detailSkipsAuth/seriesKeyMissing/detailIdentityMissing/dedupSliceOverflow/chargeCapHit/detailDegraded/authBreak/checkpointReadRecovered/deliveredProbe) say so. Check the log if your dataset looks short. ObservableexitReasonvalues include:WafError,RateLimitError,NotAuthorizedError,Error,HTTP_<status>,BODY_UNPARSEABLE,SCHEMA_DRIFT,CHECKPOINT_UNREADABLE.seriesKeyMissingcounts rows delivered but not charged because theis_series_parentkey was absent (schema drift).detailIdentityMissingcounts rows delivered but not charged because the detail response lostid/name/url(schema drift).dedupSliceOverflowmeans the run exceeded the 20,000-ID dedup checkpoint and older IDs were dropped — a migration could re-deliver and re-charge those rows.detailDegraded/authBreaklatch the two degradation exits:detailDegraded= the rolling detail-failure breaker OR any >20-consecutive-skip streak (seedetailSkips/detailSkipsAuthfor the split);authBreak= a >20-skip streak that was majority-auth (likely auth/CSRF break). - City/country: from venue address (ISO-2 country) when details on; from the search locations chain otherwise; ~2% of rows have no geography (marked
city_source: "none").
Pricing
$0.002/event, usage paid by buyer (platform auto-applies Bronze/Silver/Gold plan discounts at checkout). No secondary SKUs.
Privacy / GDPR
Eventbrite event data is public. Organizer socials (facebook/twitter) are part of the public organizer profile. For data deletion requests, contact privacy@subimpact.net.
Refunds
detail_failed rows are not charged. If you believe you were overcharged, contact us and we'll reconcile within 48h.