SeatGeek Event Tickets & Prices Scraper avatar

SeatGeek Event Tickets & Prices Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
SeatGeek Event Tickets & Prices Scraper

SeatGeek Event Tickets & Prices Scraper

Scrape public SeatGeek events by search term or event URL. Export event title, date, venue, city, performers and live ticket price stats (lowest, average, highest, listing count) to JSON, CSV or Excel.

Pricing

from $6.15 / 1,000 results

Rating

4.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Share

SeatGeek Event Tickets & Prices Scraper

SeatGeek Event Tickets & Prices Scraper

Here is one real result, with every field the actor returns:

{
"title": "Breeders' Cup 2 Day Package - Keeneland",
"shortTitle": "Breeders' Cup 2 Day Package - Keeneland",
"type": "horse_racing",
"category": "sports",
"taxonomies": ["sports", "animal_sports", "horse_racing"],
"status": "normal",
"isOpen": true,
"description": "",
"datetimeLocal": "2026-10-30T09:00:00",
"datetimeUtc": "2026-10-30T13:00:00",
"endDatetimeUtc": "2026-10-31T10:00:00",
"dateTbd": false,
"announceDate": "2026-02-10T00:00:00",
"onsaleDate": null,
"visibleUntilUtc": "2026-10-31T10:00:00",
"venueName": "Keeneland Race Course",
"venueId": 2226,
"venueUrl": "https://seatgeek.com/venues/keeneland-race-course/tickets",
"venueCapacity": 7000,
"venueTimezone": "America/New_York",
"venueScore": 0.82,
"address": "4201 Versailles Road",
"city": "Lexington",
"state": "KY",
"postalCode": "40510",
"country": "US",
"displayLocation": "Lexington, KY",
"latitude": 38.04613,
"longitude": -84.60801,
"performers": ["Breeders' Cup World Championships"],
"primaryPerformer": "Breeders' Cup World Championships",
"performersDetailed": [
{
"id": 10846,
"name": "Breeders' Cup World Championships",
"type": "horse_racing",
"slug": "breeders-cup-world-championships",
"primary": true,
"score": 0.82,
"numUpcomingEvents": 3,
"url": "https://seatgeek.com/breeders-cup-world-championships-tickets",
"image": "https://seatgeekimages.com/performers-landscape/breeders-cup-world-championships-067eda/10846/huge.jpg"
}
],
"lowestPrice": 2.44,
"averagePrice": 15.15,
"medianPrice": 15.9,
"highestPrice": 15.9,
"lowestBasePrice": 2.44,
"listingCount": 18,
"ticketCount": 126,
"imageUrl": "https://seatgeekimages.com/performers-landscape/breeders-cup-world-championships-067eda/10846/huge.jpg",
"popularity": 0.8945802785,
"eventScore": 0.7661858243,
"id": 18134479,
"url": "https://seatgeek.com/breeders-cup-world-championships-tickets/horse-racing/2026-10-30-9-am/18134479",
"observedAt": "2026-08-10T14:04:11.209Z",
"error": null
}

The most complete SeatGeek events scraper available. It returns every field SeatGeek exposes for each event, including live ticket price stats (lowest, average, median, highest), full venue detail with coordinates, and detailed performer or team profiles, so you get pricing and location in one record.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches SeatGeek for a term you provide (an event, performer, team, or tournament), or loads specific SeatGeek event page URLs, and writes one normalized record per event to the run's dataset. Each record carries the event detail, live ticket price stats, the full venue with geocoordinates, and detailed performer or team profiles. Prices are converted from cents to whole-dollar amounts, and optional filters let you keep only events in a given city or date range.

Use query to pull every matching event, or eventUrls to scrape specific event pages directly. When eventUrls is provided, query is ignored.

Quickstart

Open the actor, paste this into the input, and press Run. It searches SeatGeek for "World Cup" and returns up to 10 events with live prices.

{
"maxEvents": 10,
"query": "World Cup"
}

Add city, dateFrom, or dateTo to narrow the results. To scrape specific events, pass their page URLs in eventUrls instead of a search term.

Input reference

FieldTypeRequiredDefaultDescription
querystringconditionalWorld CupWhat to search for: an event, performer, team, or tournament (for example Taylor Swift, Lakers, Coldplay). Required unless eventUrls is set.
eventUrlsstring[]conditional(empty)Specific SeatGeek event page URLs to scrape directly. When provided, query is ignored.
maxEventsintegerno10Maximum number of events to collect.
citystringno(empty)Keep only events whose venue is in this city, for example New York, Arlington.
dateFromstringno(empty)Only keep events starting on or after this date (YYYY-MM-DD).
dateTostringno(empty)Only keep events starting on or before this date (YYYY-MM-DD).

Provide a query or at least one eventUrls entry. Filters combine with logical AND.

Output reference

One dataset item per event. Types: string, number, boolean, string[], object[], or null when the source value is absent.

FieldTypeDescription
titlestringFull event title.
shortTitlestringShort event title.
typestringEvent type, for example horse_racing, concert.
categorystringTop-level category, for example sports, concerts.
taxonomiesstring[]All taxonomy names from leaf to root, or null.
statusstringEvent status, for example normal.
isOpenbooleanWhether tickets are on sale, or null.
descriptionstringEvent description (may be empty).
datetimeLocalstringLocal start datetime (YYYY-MM-DDTHH:mm:ss).
datetimeUtcstringUTC start datetime.
endDatetimeUtcstringUTC end datetime, or null.
dateTbdbooleantrue if the date is to be determined.
announceDatestringDate the event was announced, or null.
onsaleDatestringOn-sale date, or null.
visibleUntilUtcstringUTC time the event stays visible until, or null.
venueNamestringVenue name.
venueIdnumberSeatGeek venue id.
venueUrlstringVenue page URL.
venueCapacitynumberVenue capacity, or null.
venueTimezonestringVenue timezone.
venueScorenumberSeatGeek venue popularity score.
addressstringVenue street address.
citystringVenue city.
statestringVenue state or region.
postalCodestringVenue postal code.
countrystringVenue country code.
displayLocationstringHuman-readable location, for example Lexington, KY.
latitudenumberVenue latitude.
longitudenumberVenue longitude.
performersstring[]Names of all performers or teams.
primaryPerformerstringName of the primary performer or team.
performersDetailedobject[]Full performer profiles: id, name, type, slug, primary, score, numUpcomingEvents, url, image.
lowestPricenumberLowest listed ticket price in dollars, or null.
averagePricenumberAverage listed ticket price in dollars, or null.
medianPricenumberMedian listed ticket price in dollars, or null.
highestPricenumberHighest listed ticket price in dollars, or null.
lowestBasePricenumberLowest SeatGeek base price in dollars, or null.
listingCountnumberNumber of ticket listings, or null.
ticketCountnumberNumber of individual tickets available, or null.
imageUrlstringPrimary event image URL, or null.
popularitynumberSeatGeek popularity score.
eventScorenumberSeatGeek event score.
idnumberSeatGeek event id (unique per event).
urlstringSeatGeek event page URL.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed page a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"maxEvents": 10, "query": "World Cup"}):

{
"title": "Breeders' Cup 2 Day Package - Keeneland",
"type": "horse_racing",
"category": "sports",
"taxonomies": ["sports", "animal_sports", "horse_racing"],
"status": "normal",
"isOpen": true,
"datetimeLocal": "2026-10-30T09:00:00",
"datetimeUtc": "2026-10-30T13:00:00",
"venueName": "Keeneland Race Course",
"venueId": 2226,
"venueCapacity": 7000,
"address": "4201 Versailles Road",
"city": "Lexington",
"state": "KY",
"postalCode": "40510",
"country": "US",
"displayLocation": "Lexington, KY",
"latitude": 38.04613,
"longitude": -84.60801,
"primaryPerformer": "Breeders' Cup World Championships",
"lowestPrice": 2.44,
"averagePrice": 15.15,
"medianPrice": 15.9,
"highestPrice": 15.9,
"listingCount": 18,
"ticketCount": 126,
"popularity": 0.8945802785,
"eventScore": 0.7661858243,
"id": 18134479,
"url": "https://seatgeek.com/breeders-cup-world-championships-tickets/horse-racing/2026-10-30-9-am/18134479",
"observedAt": "2026-08-10T14:04:11.209Z",
"error": null
}

This example is trimmed to the key fields for readability. The full record (shown at the top of this page) also includes performersDetailed, timezone, coordinates, and every other field listed above.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~seatgeek-events-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"query":"Taylor Swift","city":"New York","maxEvents":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~seatgeek-events-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"query":"Lakers","dateFrom":"2026-10-01","dateTo":"2026-12-31","maxEvents":50}'

Apify CLI:

apify call scrapers_lat/seatgeek-events-scraper \
--input '{"query":"World Cup","maxEvents":10}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per event returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a page fails, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 events per run. Upgrade for higher maxEvents.
  • Live prices. Ticket price stats reflect the listings at the time of the run and change over time.

FAQ and troubleshooting

A run returned 0 events. Why? The search term matched nothing, or your city / date filters removed every event. Loosen the filters and try a broader search term. Zero-result runs are not charged.

How do I scrape one specific event? Put its SeatGeek event page URL in eventUrls. When set, query is ignored.

Are the prices live? Yes. lowestPrice, averagePrice, medianPrice, and highestPrice come from the live SeatGeek listings at run time and are converted from cents to dollars.

Why is description empty on some events? SeatGeek does not provide a description for every event. Empty and missing values are returned as they are, never invented.

Is this an official SeatGeek tool? No. This actor is independent and has no affiliation with SeatGeek. It reads only data available on public SeatGeek event pages.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with SeatGeek. Accesses only publicly available SeatGeek event data.