Vivid Seats Scraper
Pricing
from $1.49 / 1,000 events
Vivid Seats Scraper
Scrape Vivid Seats events from search, performer, venue and event URLs: ticket prices (min, max, average, median, all-in), listing and ticket counts, dates, venue, performers and top deals. Export JSON, CSV, Excel.
Pricing
from $1.49 / 1,000 events
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Vivid Seats Scraper
Vivid Seats Scraper pulls event and ticket price data from Vivid Seats for concerts, sports, theater and comedy. It returns min, max, average, median and all-in prices, listing and ticket counts, dates, venues and performers for every event.
| Paste any Vivid Seats search, performer, team, venue or event URL, or just type a keyword, to get 30+ fields per event, including the top 5 ticket deals with section, row, price and deal score. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/vividseats-scraper — scrapes Vivid Seats (vividseats.com) events with ticket price statistics. Call: ApifyClient("TOKEN").actor("parsebird/vividseats-scraper").call(run_input={"startUrls": [{"url": "https://www.vividseats.com/search?searchTerm=imagine"}, {"url": "https://www.vividseats.com/madison-square-garden-tickets/venue/973"}], "searchTerms": ["knicks"], "maxItems": 50, "scrapeEventDetails": true}). Inputs: startUrls (array of {url}; Vivid Seats search, performer/team, venue or event /production/ URLs), searchTerms (array of strings, optional keyword searches), maxItems (int, default 100, max events across all inputs), scrapeEventDetails (bool, default false; adds topDeals, topDealsLowestPrice, onsaleDate, presale1Date, presale2Date, imageUrl by opening each event page), includeParking (bool, default false; also save parking-pass listings), proxyConfiguration (optional Apify Proxy). At least one startUrl or searchTerm is required. Output: one dataset item per event with eventId, eventName, url, localDateTime, timezone, utcDateTime, dateTbd, timeTbd, venueName, venueCity, venueState, venueCountry, category, subCategory, primaryPerformer, minPrice, maxPrice, avgPrice, medianPrice, minAllInPrice, maxAllInPrice, currency, listingCount, ticketCount, onsaleDate, presale1Date, presale2Date, delayStatus, ifNecessary, lastPricingRefresh, topDealsLowestPrice, topDeals[{section,row,price,dealScore}], venue{id,name,address1,city,state,postalCode,countryCode,latitude,longitude,url}, performers[{id,name,url,category,subCategory,isPrimary}], seatingChartUrl, imageUrl, sourceUrl, scrapedAt. Pricing: pay per event saved. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What is Vivid Seats Scraper?
Vivid Seats Scraper is a Vivid Seats API alternative. It collects event listings and ticket price statistics from vividseats.com, one of the largest ticket resale marketplaces in the US. Give it a search, a team or artist page, a venue or a single event, and it returns clean, structured event data. You don't need a Vivid Seats account or a browser.
The easiest way to try it: open the Input tab, keep the prefilled search and venue URLs, and click Start. You'll have 10 events in your dataset in under a minute.
What can Vivid Seats Scraper do?
- 🔎 Search Vivid Seats by keyword, the same way as the site's search box, or paste a
/search?searchTerm=URL - 🎤 Scrape performer and team pages, e.g. every upcoming New York Knicks game or a band's tour dates
- 🏟️ Scrape venue pages, e.g. the full event calendar of Madison Square Garden (up to 600 events per venue)
- 🎟️ Scrape single event pages (
/production/...URLs) for one event's prices - 💲 Ticket price stats for every event: min, max, average and median listing price, plus min and max all-in price (fees included)
- 📊 Supply signals: number of listings and number of tickets for sale
- 🏷️ Top deals (optional): the 5 best-value listings shown on the event page, with section, row, price and Vivid Seats deal score
- ♻️ Deduplication: an event found through several URLs is saved once
- 🅿️ Clean results: Vivid Seats' separate parking-pass listings are skipped unless you turn them on
On the Apify platform you also get:
- ⏰ Scheduling, to track ticket prices daily or hourly
- 🔌 API access and integrations with Google Sheets, Zapier, Make, Slack, webhooks and more
- 📁 Export to JSON, CSV, Excel, XML or HTML
What data can you extract from Vivid Seats?
| Field | Description |
|---|---|
eventName | Event title, e.g. "Brooklyn Nets at New York Knicks" |
url | Event page on Vivid Seats |
localDateTime / utcDateTime | Event start time, local (with offset) and UTC |
venueName, venueCity, venueState | Where the event takes place (full address and coordinates in venue) |
category, subCategory | e.g. Sports / NBA Basketball, Concerts / Rock |
primaryPerformer, performers | Headliner and all performers or teams, with their Vivid Seats pages |
minPrice, maxPrice, avgPrice, medianPrice | Listing price statistics across all tickets for sale |
minAllInPrice, maxAllInPrice | Lowest and highest price including fees |
listingCount, ticketCount | Number of listings and tickets currently for sale |
topDeals | Up to 5 top deals: section, row, price, deal score (event details mode) |
onsaleDate, presale1Date, presale2Date | General on-sale and presale dates, when published (event details mode) |
seatingChartUrl, imageUrl | Venue seating chart image and event image |
How to scrape Vivid Seats
- Open Vivid Seats Scraper in Apify Console and go to the Input tab.
- Paste one or more Vivid Seats URLs into Start URLs: a search, a performer or team, a venue, or an event page. You can also type keywords into Search terms.
- Set Max events to the number of events you need.
- Turn on Scrape event details if you want top deals, on-sale dates and event images.
- Click Start and wait for the run to finish.
- Download your Vivid Seats data from the Output tab as JSON, CSV or Excel, or fetch it via the API.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | One of these two | — | Vivid Seats URLs: search (/search?searchTerm=...), performer/team (/performer/...), venue (/venue/...) or event (/production/...) |
searchTerms | array of strings | One of these two | — | Keywords to search on Vivid Seats, e.g. taylor swift, knicks |
maxItems | integer | No | 100 | Maximum number of events to save across all inputs |
scrapeEventDetails | boolean | No | false | Open each event page to add top deals, on-sale/presale dates and the event image |
includeParking | boolean | No | false | Also save parking passes, which Vivid Seats lists as separate events |
proxyConfiguration | object | No | no proxy | Optional Apify Proxy settings |
Example input:
{"startUrls": [{ "url": "https://www.vividseats.com/search?searchTerm=imagine" },{ "url": "https://www.vividseats.com/madison-square-garden-tickets/venue/973" }],"searchTerms": ["knicks"],"maxItems": 50,"scrapeEventDetails": true}
Output example
Each event is one dataset item. This is a real record (shortened performers) scraped with Scrape event details on:
{"eventId": 7432933,"eventName": "Brooklyn Nets at New York Knicks","url": "https://www.vividseats.com/new-york-knicks-tickets-madison-square-garden-11-2-2026/production/7432933","localDateTime": "2026-11-02T19:30:00-05:00","timezone": "America/New_York","utcDateTime": "2026-11-03T00:30:00Z","dateTbd": false,"timeTbd": false,"venueName": "Madison Square Garden","venueCity": "New York","venueState": "NY","venueCountry": "US","category": "Sports","subCategory": "NBA Basketball","primaryPerformer": "New York Knicks","minPrice": 124.8,"maxPrice": 9700,"avgPrice": 512.23,"medianPrice": 300,"minAllInPrice": 168,"maxAllInPrice": 13094,"currency": "USD","listingCount": 1055,"ticketCount": 3095,"onsaleDate": "2026-09-16T12:00:00-05:00","presale1Date": "2026-09-14T10:00:00-05:00","presale2Date": "2026-09-15T10:00:00-05:00","delayStatus": "NONE","ifNecessary": false,"lastPricingRefresh": "2026-10-29T07:09:52-05:00","topDealsLowestPrice": 176.0,"topDeals": [{ "section": "Section 208", "row": "7", "price": 227.0, "dealScore": 10 },{ "section": "Section 209", "row": "8", "price": 229.0, "dealScore": 10 },{ "section": "Section 226", "row": "4", "price": 239.0, "dealScore": 10 }],"venue": {"id": 973,"name": "Madison Square Garden","address1": "4 Pennsylvania Plaza","address2": null,"city": "New York","state": "NY","postalCode": "10001","countryCode": "US","timezone": "America/New_York","latitude": 40.7505045,"longitude": -73.9934387,"url": "https://www.vividseats.com/madison-square-garden-tickets/venue/973"},"performers": [{"id": 602,"name": "New York Knicks","url": "https://www.vividseats.com/new-york-knicks-tickets--sports-nba-basketball/performer/602","category": "Sports","subCategory": "NBA Basketball","isPrimary": true}],"seatingChartUrl": "https://d2o50i5c2dr30a.cloudfront.net/091a6d56-50a6-494b-9058-d4557dbc60a3.png","imageUrl": "https://a.vsstatic.com/mobile/app/nba/new-york-knicks-3.jpg","sourceUrl": "https://www.vividseats.com/madison-square-garden-tickets/venue/973","scrapedAt": "2026-10-29T12:32:42+00:00"}
Without Scrape event details, topDeals, topDealsLowestPrice and imageUrl are null. On-sale dates are still filled for events found on venue pages, because Vivid Seats includes them there.
Use cases
- Ticket price tracking: schedule daily runs and watch how min, median and all-in prices move as an event gets closer
- Resale market research: compare listing and ticket counts across teams, tours, venues and cities
- Event discovery: build a calendar of upcoming concerts, games and shows for a venue or city
- Arbitrage and pricing: spot events where the median price is far above the minimum, or where supply is thin
- Price comparison: combine with our StubHub Event Scraper and TickPick Events Scraper to compare marketplaces
How it works
- Each start URL is opened and the event data embedded in the Vivid Seats page is read. No browser is needed.
- A search page lists its first 25 events. Performer pages list the performer's upcoming events (only the first 25 for performers with very many dates). Venue pages list up to 600.
- When a search needs more than its first 25 results, the scraper continues through performer and venue pages whose names match every word of the search term.
- With Scrape event details on, each event page is opened as well, five at a time, to add top deals and on-sale dates.
- Parking passes are skipped unless Include parking passes is on. Events are deduplicated by ID, saved to the dataset as they're found, and the run stops at Max events or at your spending limit.
How much does it cost to scrape Vivid Seats?
Vivid Seats Scraper uses pay-per-event pricing. You pay for each event saved to the dataset, and nothing else: platform compute and proxy usage are included in the event price.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
event (per event saved) | $0.00299 | $0.00249 | $0.00199 | $0.00149 |
| Per 1,000 events | $2.99 | $2.49 | $1.99 | $1.49 |
For example, the full 150-event calendar of Madison Square Garden costs about $0.45 on the Free plan. Turning on Scrape event details doesn't change the price per event. Apify's Free plan includes monthly platform credits you can spend on this actor.
Using the Vivid Seats Scraper API
You can run Vivid Seats Scraper from your own code with the Apify API and fetch results as JSON.
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("parsebird/vividseats-scraper").call(run_input={"searchTerms": ["knicks"],"maxItems": 50,"scrapeEventDetails": True,})for event in client.dataset(run["defaultDatasetId"]).iterate_items():print(event["eventName"], event["localDateTime"], event["minPrice"], event["medianPrice"])
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('parsebird/vividseats-scraper').call({startUrls: [{ url: 'https://www.vividseats.com/madison-square-garden-tickets/venue/973' }],maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((e) => console.log(e.eventName, e.localDateTime, e.minAllInPrice));
FAQ
Which Vivid Seats URLs are supported?
Search pages (/search?searchTerm=...), performer and team pages (.../performer/<id>), venue pages (.../venue/<id>) and event pages (.../production/<id>). Category pages such as /concerts also work when Vivid Seats shows an event list on them.
Does it return every individual ticket listing for an event? No. Each record holds the event's price statistics (min, max, average, median, all-in) and listing and ticket counts. With Scrape event details on, you also get the top 5 deals shown on the event page. Seat-by-seat listing data isn't included.
Why did my event URL return nothing? Vivid Seats removes past events, and their URLs redirect to the performer page. The run log flags these URLs and skips them. Pass the performer or venue URL to get that act's current events.
How many events can I get from one search? A Vivid Seats search page lists its first 25 events. The scraper then continues through matching performer and venue pages. Searching for an exact artist, team or venue name gives the most complete results. Some exact-name searches redirect straight to the performer or venue page, and that works too.
Why are parking passes missing? Vivid Seats sells parking for many events as separate listings, which would crowd out real events. They're skipped by default. Turn on Include parking passes to keep them.
What currency are prices in?
The currency is in the currency field. Runs on Apify return USD prices.
Do I need a proxy? Usually not. Vivid Seats pages loaded without a proxy in our tests. If you see repeated errors in the log, enable Apify Proxy under Advanced.
Can I monitor prices over time?
Yes. Create a schedule for the same input and compare minPrice, medianPrice and ticketCount between runs. Each record has a scrapedAt timestamp.
Can I connect it to Google Sheets, Zapier or Make? Yes. Use Apify integrations or a webhook to send each finished run's dataset wherever you need it.
Something isn't working. What should I do? Open an issue in the Issues tab with your input and run link. We read every report.
Is it legal to scrape Vivid Seats?
Vivid Seats Scraper collects only publicly available event and price information that anyone can see on vividseats.com without logging in. It doesn't collect personal data. Still, you should review Vivid Seats' terms of use and the laws that apply to you, such as GDPR or CCPA, before using scraped data. If you're unsure, ask a lawyer. For background, read Apify's blog post Is web scraping legal?
Related Actors
- StubHub Event Scraper: StubHub events by city or explore URL
- TickPick Events Scraper: TickPick events and prices
- Dice.fm Events Scraper: Dice.fm events and ticket types
- Resident Advisor Scraper: electronic music events from Resident Advisor
- Luma Events Scraper: events from Luma
- Meetup Events Scraper: Meetup events, groups and RSVPs