VividSeats Scraper | Tickets, Prices and Events avatar

VividSeats Scraper | Tickets, Prices and Events

Pricing

from $2.51 / 1,000 events

Go to Apify Store
VividSeats Scraper | Tickets, Prices and Events

VividSeats Scraper | Tickets, Prices and Events

Vivid Seats scraper for ticket prices and events: type an artist, team or venue and get 20 events in 20 seconds, 47 fields each. Lowest, average, median and highest prices before and after fees, tickets for sale, venue, local date and every resale ticket listing with its section, row and price.

Pricing

from $2.51 / 1,000 events

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

VividSeats Scraper | Vivid Seats Tickets, Prices and Events (2026)

VividSeats events, 47 fields each, from any search.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for โ€œjd scraperโ€ in Apify Store search), with 810,000+ combined lifetime runs.

Every Vivid Seats event as one clean row, with its prices before and after fees and every ticket listing for sale, from an artist name, a team, a venue, a link or an event ID. Our default test run typed New York Knicks and saved 20 upcoming games in 20 seconds: 9 different arenas, 18,479 ticket listings (923 per game on average, each with its section, row, quantity, price, all-in price and deal score), the lowest, average, median and highest price of every game with and without fees, and the local start time with its offset. No Vivid Seats account, no API key, nothing to install.

Why choose this actor?

Opening Vivid Seats event pages one by one to note the get-in price? Pasting a link for every game of a season before each run? Losing track of which prices include fees and which do not?

  • Type a name, paste a link or an event ID, in the same run. An artist, a team, a show or a venue (New York Knicks, Hamilton, Madison Square Garden) reads all its upcoming events; any other word works like the site's search box. Links to performers, venues, events, searches, leagues, categories and curated lists work too, and so do bare event IDs. In our test, the nfl league page returned 40 games in 1 second, and two event IDs plus the name Madison Square Garden returned 8 events with all their tickets in 10 seconds, the unknown ID reported in the log. The most used Vivid Seats scraper takes links only.
  • Nothing to fill in: the form runs as it opens. No field is required. The form comes prefilled with New York Knicks, so the first click on Start returns rows, and an empty form reads the upcoming events of the whole site, soonest first: 100 concerts, games and shows in 1 second in our test with the listings off. The most used Vivid Seats scraper makes its link field mandatory.
  • 45 fields filled on every event, plus 14 per ticket listing. In our 20-game run, 45 data fields held a value on more than half of the rows, yes/no flags included: lowest, average, median and highest price before fees, the same four after fees, listings, tickets and sections for sale, category and league, every performer on the bill, venue name, address, capacity, phone and coordinates, local and UTC start time, on-sale and presale dates, status, image and seat map. Each ticket listing adds section, row, quantity, price, price with fees, face value when shown, deal score, delivery method, seat numbers, badges and perks.

Try VividSeats Scraper

Try your first 20 events

Paste this input in the JSON tab of the Input page and press Start. It reads the next 20 games of the New York Knicks, home and away, with every ticket listing.

{
"searches": ["New York Knicks"],
"category": "all",
"maxItems": 20,
"includeTickets": true
}

It runs on the Apify Free plan. Each event becomes one row of your dataset: open the Output tab to see the table with the event, local date, venue, city, lowest price, median price and number of listings, or switch to the "Prices and stock" view to compare the lowest, median and highest prices before and after fees with the number of tickets for sale. Export the rows as JSON, CSV or Excel, or pull them from the API.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full picture of this scraper:

You have access to the VividSeats Scraper on Apify: silentflow/vividseats-scraper
It reads events and ticket listings from Vivid Seats (vividseats.com, the US ticket marketplace)
without an account and returns one row per event: prices before and after fees, listings and
tickets for sale, venue, local date and, by default, every ticket listing.
Input schema (no field is required; with no name, link or ID it reads upcoming events, soonest first):
- searches (array of strings): artists, teams, shows or venues ("New York Knicks", "Hamilton",
"Madison Square Garden"). An exact name reads all its upcoming events; any other word searches
event names like the site's search box ("comedy", "tribute").
- startUrls (array of {url}): vividseats.com pages: performer (.../performer/602), venue
(.../venue/973), event (.../production/7432933), search (/search?searchTerm=imagine),
category (/concerts, /sports, /theater), league or genre (/nfl, /comedy), curated list (.../custom/475).
- eventIds (array of strings): Vivid Seats event IDs such as "7432933". Filters do not apply to them.
- category (string, default "all"): "all", "concerts", "sports" or "theater".
- location (string): a city, events within 50 miles: "Chicago", "Las Vegas, NV", "London, United Kingdom".
- dateFrom (string, YYYY-MM-DD): first day of events, at the venue.
- dateTo (string, YYYY-MM-DD): last day of events, included.
- maxItems (integer, default 100): most events returned, all entries together.
- includeTickets (boolean, default true): add every ticket listing of each event.
Output per event (one flat object, 48 fields):
- identity: id (string, stable Vivid Seats event ID), url (event page), name
- content: category, subCategory, performers [string], mainPerformer, mainPerformerId,
mainPerformerUrl, tags [string]
- measures (numbers, USD): minPrice, maxPrice, avgPrice, medianPrice (before fees),
minPriceWithFees, maxPriceWithFees, avgPriceWithFees, medianPriceWithFees (all-in),
listingCount, ticketCount, sectionCount (integers), currency ("USD")
- venue: venueId, venueName, venueAddress, city, state, postalCode, countryCode (ISO 3166-1 alpha-2),
latitude, longitude, venueCapacity, venuePhone, venueUrl, timezone (IANA)
- time: startDate (RFC 3339 with the venue's UTC offset), startDateUtc (RFC 3339 UTC),
isDateTbd, isTimeTbd, isIfNecessary (booleans), status ("scheduled", "rescheduled", ...),
onsaleDate, presaleDate (RFC 3339)
- media: imageUrl, seatMapUrl
- tickets [{listingId, section, row, quantity, price, priceWithFees, faceValue, dealScore,
deliveryMethod, seatFrom, seatTo, notes, badges [string], perks [string]}], cheapest first;
null when not asked for, [] when nothing is for sale
- meta: searchQuery (the entry that found the event), scrapedAt (RFC 3339)
Absent values are null.
Use apify-client for Python or JavaScript: client.actor("silentflow/vividseats-scraper").call(run_input={...}),
then client.dataset(run["defaultDatasetId"]).list_items().items.

How to scrape Vivid Seats ticket prices

Three inputs, from the simplest to a combined search. Each one runs as is.

Get every upcoming game of your team

One name is enough. The run finds the team on Vivid Seats and reads all its upcoming games, home and away, soonest first.

{
"searches": ["New York Knicks"],
"maxItems": 100
}

Watch the concerts of one city over two weeks

Pick a category, a city and dates. The run keeps the events within 50 miles of the city, between the two days. In our test, Las Vegas concerts from 15 to 30 November listed 289 events, and the first 25 came back with all their ticket listings in 20 seconds.

{
"category": "concerts",
"location": "Las Vegas, NV",
"dateFrom": "2026-11-15",
"dateTo": "2026-11-30",
"maxItems": 25
}

Paste a league page and a show's page, add an event you follow, and leave the ticket listings out for a fast, light table of event-level prices.

{
"startUrls": [
{ "url": "https://www.vividseats.com/nfl" },
{ "url": "https://www.vividseats.com/hamilton-tickets--theater-musical/performer/40710" }
],
"eventIds": ["7432933"],
"searches": ["Madison Square Garden"],
"maxItems": 300,
"includeTickets": false
}

Input parameters

FieldTypeDefaultWhat it does
searcheslist of textsNew York Knicks (prefill)Artists, teams, shows or venues. An exact name reads all its upcoming events; any other word searches event names.
startUrlslist of linksnoneVivid Seats pages: performer, venue, event, search, category, league or genre, curated list.
eventIdslist of textsnoneEvent IDs, the number at the end of an event page address. One row each, filters aside.
categorychoiceallconcerts, sports or theater (comedy, musicals and family shows are under theater).
locationtextnoneA city: events within 50 miles, like the site's own location filter.
dateFromdatetodayFirst day of events, at the venue.
dateTodatenoneLast day of events, included.
maxItemsnumber100 (prefill 20)Most events returned, all entries together. An event found twice counts once.
includeTicketsyes/noyesAdds every ticket listing of each event and the average and median price after fees.

Accepted formats

  • Names: New York Knicks, Bad Bunny, Hamilton, Madison Square Garden. Case and punctuation do not matter for the exact match. Words that are not a name (comedy, tribute, imagine) search the event names, as the site's search box does.
  • Links: https://www.vividseats.com/new-york-knicks-tickets--sports-nba-basketball/performer/602, https://www.vividseats.com/madison-square-garden-tickets/venue/973, https://www.vividseats.com/new-york-knicks-tickets-madison-square-garden-11-2-2026/production/7432933, https://www.vividseats.com/search?searchTerm=imagine, https://www.vividseats.com/concerts, https://www.vividseats.com/nfl, https://www.vividseats.com/comedy, https://www.vividseats.com/monday-night-football-tickets--sports-nfl-football/custom/475. Links without https:// and older Production.action?productionId= links work too.
  • Event IDs: 7432933, as text or as a number.
  • Cities: Chicago, Chicago, IL, Las Vegas, NV, Toronto, Canada, London, United Kingdom, London, GB. The state or country after the comma picks the right city when several share a name.
  • Dates: 2026-12-01, or a full timestamp; today works too.
  • Other scrapers' inputs: the field names of other Vivid Seats scrapers (q, performerId, venueId, categoryId, limit, urls) are read as well, so an input you already have runs here unchanged.

What data can you extract from Vivid Seats?

Each row is one event, with the fields grouped as a buyer reads them.

GroupFields
Identityid, url, name
What it iscategory, subCategory, performers, mainPerformer, mainPerformerId, mainPerformerUrl, tags
Prices before feesminPrice, avgPrice, medianPrice, maxPrice, currency
Prices after feesminPriceWithFees, avgPriceWithFees, medianPriceWithFees, maxPriceWithFees
StocklistingCount, ticketCount, sectionCount
VenuevenueId, venueName, venueAddress, city, state, postalCode, countryCode, latitude, longitude, venueCapacity, venuePhone, venueUrl, timezone
WhenstartDate, startDateUtc, isDateTbd, isTimeTbd, isIfNecessary, status, onsaleDate, presaleDate
MediaimageUrl, seatMapUrl
Ticket listingstickets: listingId, section, row, quantity, price, priceWithFees, faceValue, dealScore, deliveryMethod, seatFrom, seatTo, notes, badges, perks
MetasearchQuery, scrapedAt

Good to know before you build on it:

  • id is Vivid Seats' own event ID and never changes; url is the permanent event page. mainPerformerId and venueId are stable too, so you can join runs over time.
  • startDate is the local start time at the venue with its UTC offset (2026-11-02T19:30:00-05:00), startDateUtc the same moment in UTC. When isDateTbd or isTimeTbd is true, the date or time is a placeholder until Vivid Seats sets it.
  • Prices are per ticket, in US dollars. "With fees" is the all-in price a buyer pays per ticket at checkout, fees included; the plain price is the listing price before fees.
  • The event-level prices are Vivid Seats' own summary of the event and can lag the live listings by a few minutes; the tickets list is read live, one listing per seller block, cheapest first.
  • faceValue is null when the seller did not state it, dealScore is Vivid Seats' own value score from 0 to 10, and seatFrom and seatTo are null when the seat numbers are hidden until purchase.
  • tickets is null when ticket listings are turned off and an empty list when nothing is for sale. The event-level fields are filled either way.

Output example

A real row from our default run, with the tickets list cut to 2 of its 1,005 listings:

{
"id": "7432933",
"url": "https://www.vividseats.com/new-york-knicks-tickets-madison-square-garden-11-2-2026/production/7432933",
"name": "Brooklyn Nets at New York Knicks",
"category": "Sports",
"subCategory": "NBA Basketball",
"performers": ["New York Knicks", "Brooklyn Nets"],
"mainPerformer": "New York Knicks",
"mainPerformerId": "602",
"mainPerformerUrl": "https://www.vividseats.com/new-york-knicks-tickets--sports-nba-basketball/performer/602",
"tags": null,
"minPrice": 122.85,
"maxPrice": 10210,
"avgPrice": 532.71,
"medianPrice": 310,
"minPriceWithFees": 166,
"maxPriceWithFees": 13783,
"avgPriceWithFees": 736.18,
"medianPriceWithFees": 428,
"listingCount": 1005,
"ticketCount": 2886,
"sectionCount": 99,
"currency": "USD",
"venueId": "973",
"venueName": "Madison Square Garden",
"venueAddress": "4 Pennsylvania Plaza",
"city": "New York",
"state": "NY",
"postalCode": "10001",
"countryCode": "US",
"latitude": 40.7505045,
"longitude": -73.9934387,
"venueCapacity": 19763,
"venuePhone": "212-465-6741",
"venueUrl": "https://www.vividseats.com/madison-square-garden-tickets/venue/973",
"timezone": "America/New_York",
"startDate": "2026-11-02T19:30:00-05:00",
"startDateUtc": "2026-11-03T00:30:00Z",
"isDateTbd": false,
"isTimeTbd": false,
"isIfNecessary": false,
"status": "scheduled",
"onsaleDate": "2026-09-16T12:00:00-04:00",
"presaleDate": "2026-09-14T10:00:00-04:00",
"imageUrl": "https://a.vsstatic.com/mobile/app/nba/new-york-knicks-3.jpg",
"seatMapUrl": "https://d2o50i5c2dr30a.cloudfront.net/091a6d56-50a6-494b-9058-d4557dbc60a3.png",
"tickets": [
{
"listingId": "VB17719475367",
"section": "Section 415",
"row": "4",
"quantity": 2,
"price": 125.78,
"priceWithFees": 169,
"faceValue": 157,
"dealScore": 9.9,
"deliveryMethod": "Ticketmaster Transfer",
"seatFrom": null,
"seatTo": null,
"notes": "Please note that you will need to use an iOS or Android mobile device to gain entry to your event.",
"badges": ["Lowest Price in Section"],
"perks": ["Seated Together"]
},
{
"listingId": "VB17672633577",
"section": "Section 413",
"row": "6",
"quantity": 2,
"price": 130.65,
"priceWithFees": 176,
"faceValue": null,
"dealScore": 9.9,
"deliveryMethod": "Ticketmaster Transfer",
"seatFrom": null,
"seatTo": null,
"notes": "Please note that you will need to use an iOS or Android mobile device to gain entry to your event.",
"badges": ["SALE!", "Lowest Price in Section"],
"perks": ["Seated Together"]
}
],
"searchQuery": "New York Knicks",
"scrapedAt": "2026-10-30T10:27:37Z"
}

Advanced usage

Track the get-in price of a tour every morning

Save this input as a task and schedule it daily. Each run writes the lowest, median and highest price of every date with and without fees, so a week of runs gives you the price curve of the whole tour. Leaving the listings out keeps each daily run to a few seconds.

{
"searches": ["Harry Styles"],
"maxItems": 200,
"includeTickets": false
}

Read a whole category past 1,000 events

Vivid Seats pages a list 1,000 events at a time. This actor reads on from the day it reached, so a full category comes back whole. In our test, the concerts category returned 1,150 different events in 9 seconds with the listings turned off.

{
"category": "concerts",
"maxItems": 5000,
"includeTickets": false
}

Map where tickets are left in one arena

Point the run at a venue with the listings on. Every row carries the sections, rows and quantities still for sale and their prices, cheapest first, which is enough to chart supply by section for every event in the building.

{
"startUrls": [{ "url": "https://www.vividseats.com/madison-square-garden-tickets/venue/973" }],
"dateFrom": "2026-11-01",
"dateTo": "2026-11-30",
"maxItems": 60
}

Build a city's weekend calendar for a newsletter

A city, a weekend and no category: concerts, games and shows together, with the lowest price after fees ready for the "tickets from" line and the image and seat map for the layout.

{
"location": "Chicago, IL",
"dateFrom": "2026-11-13",
"dateTo": "2026-11-15",
"maxItems": 150,
"includeTickets": false
}

Refresh the events you already follow

Keep the IDs of the events you watch and refresh them on a schedule: each ID returns one full row with all its tickets, whatever the filters. An ID that is gone is reported in the log and the run goes on.

{
"eventIds": ["7432933", "7432935", "7300953"],
"includeTickets": true
}

FAQ

What is Vivid Seats? Vivid Seats is one of the largest ticket marketplaces in the United States, alongside StubHub and SeatGeek: fans and brokers resell tickets for concerts, sports and theater, and the site shows every listing with its section, row and price. It lists events in the US, Canada, the UK and Europe.

What does one row contain? One upcoming event: what it is, who plays, where and when, its lowest, average, median and highest prices before and after fees, how many listings, tickets and sections are for sale, and, unless you turn it off, every ticket listing with section, row, quantity, prices, face value, deal score and delivery method. 45 fields were filled on every event of our default run.

Do I need a Vivid Seats account or an API key? No. The actor reads the prices and listings Vivid Seats shows every visitor. Nothing to log in to, nothing to install.

How fresh are the prices? They are read when the run happens; nothing is cached. Ticket prices move every day, so schedule the run (daily or hourly) and keep the rows: scrapedAt tells you when each one was read.

Why does the cheapest ticket sometimes differ from minPrice? minPrice and the other event-level prices are Vivid Seats' own summary of the event, refreshed by the site from time to time. The tickets list is read live at run time. A gap of a few dollars between the two is normal on a busy event.

What is the difference between price and priceWithFees? price is the listing price per ticket before fees. priceWithFees is the all-in price per ticket a buyer pays at checkout, fees included, which is what Vivid Seats shows by default. Both are in US dollars.

How many events can I get? No fixed limit: set maxItems. A team or a tour usually lists 30 to 150 upcoming events and a big arena about the same; a whole category lists thousands. Long lists are read past their first 1,000 events: 1,150 concerts came back in 9 seconds in our test.

Can I combine filters? Yes, they all apply together. category: "sports" with location: "Chicago, IL" and a date range returns the games within 50 miles of Chicago between those days. Filters apply to names, links and the empty-form listing; event IDs always return their event.

Can I run several searches at once? Yes. Mix names, links and IDs in one run. An event found by two entries is saved once, and searchQuery tells you which entry found it.

Are parking passes included? Vivid Seats sells parking passes as separate events. Lists leave them out, so a team's games are games; ask for a parking event by its ID or link if you want one.

How long do the links stay valid? url, venueUrl and mainPerformerUrl are permanent pages. An event page stays up until the event has passed. imageUrl and seatMapUrl are Vivid Seats' own image links: copy the files if you need to archive them.

Is the output heavy with ticket listings on? A busy NBA game lists about 1,000 tickets, so a row can carry a long tickets list. For a flat spreadsheet, export the "Events" or "Prices and stock" view to CSV or Excel; for analysis by section, read the JSON. Turn ticket listings off when you only need event-level prices: 20 events took 1 second instead of 20 in our test.

I already use another Vivid Seats scraper. Do I rewrite my input? No. The field names of the other Vivid Seats scrapers on the Store (startUrls, maxItems, q, performerId, venueId, categoryId, limit, urls) are read as they are.

Is it legal to scrape Vivid Seats? The actor reads public event and price pages that anyone can open, without logging in. You are responsible for how you use the data: see the legal note below.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐Ÿ“ˆ Marketing

๐ŸŽฌ Video

๐Ÿ“ฐ News

๐Ÿงฐ More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from vividseats.com. It does not bypass any login, paywall or CAPTCHA, and it reads only what Vivid Seats shows to every visitor. Users are responsible for complying with Vivid Seats' terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). The output describes events, venues and ticket listings and contains no buyer or seller identity; venue phone numbers are public business contacts. The data returned is informational; check the event page before buying a ticket or travelling.

VividSeats Scraper by SilentFlow: every Vivid Seats event and ticket price, one clean row per event.