Eventbrite Scraper avatar

Eventbrite Scraper

Pricing

from $2.00 / 1,000 events

Go to Apify Store
Eventbrite Scraper

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

subimpact

Maintained by Community

Actor 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

FieldDescription
queryFree-text search (e.g. "tech", "yoga"). Optional.
placesONE city name or place ID. v1 supports a single place.
countryFilters place resolution (e.g. "United States"). No-op without places.
categoryEventbrite category ID (e.g. 103 = Music).
pricefree or paid; omit for both.
onlineOnlyPost-filter for online events. Mutually exclusive with places.
startDate / endDateISO dates; end defaults to +1 year.
sortdate (default) or distance. distance requires places.
radiuskm. Default 50, max 50 in v1 (required with places).
eventUrlsEvent URLs to scrape directly. Series URLs return a parent stub (not charged).
organizerIdAll events by an organizer.
maxEventsDefault 1000, max 10000. Counts processed rows (incl. duplicates).
includeDetailsDefault true. Disable for search-only (cheaper, less data).
maxTotalChargeUsdBill-shock guard. Default 20.01 (10k events at $0.002).
dryRunCount 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: 10000 on 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: description equals summary, 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_cancelled as null on search rows). With includeDetails (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: false to disable): each event also carries ticket_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 in destinationMissing). 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_verdict record (fields truncated/exitReason/detailErrors/detailSkips/detailSkipsAuth/seriesKeyMissing/detailIdentityMissing/dedupSliceOverflow/chargeCapHit/detailDegraded/authBreak/checkpointReadRecovered/deliveredProbe) say so. Check the log if your dataset looks short. Observable exitReason values include: WafError, RateLimitError, NotAuthorizedError, Error, HTTP_<status>, BODY_UNPARSEABLE, SCHEMA_DRIFT, CHECKPOINT_UNREADABLE. seriesKeyMissing counts rows delivered but not charged because the is_series_parent key was absent (schema drift). detailIdentityMissing counts rows delivered but not charged because the detail response lost id/name/url (schema drift). dedupSliceOverflow means 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/authBreak latch the two degradation exits: detailDegraded = the rolling detail-failure breaker OR any >20-consecutive-skip streak (see detailSkips/detailSkipsAuth for 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.