StubHub Ticket Resale Scraper avatar

StubHub Ticket Resale Scraper

Pricing

Pay per event

Go to Apify Store
StubHub Ticket Resale Scraper

StubHub Ticket Resale Scraper

Scrape seller-level ticket resale listings from StubHub — concerts, sports and theater. Returns section, row, seat range, quantity, price, fees, face value and ticket class per listing, plus an event record with venue, date and lowest price.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

3

Monthly active users

2 days ago

Last modified

Share

Scrapes seller-level ticket listings from StubHub — concerts, sports, theater. Returns section, row, seat range, quantity, price, fees, face value and ticket class for every listing on an event, plus an event record with venue, date and lowest price.

Not the ten listings the page shows you. All of them.


StubHub Ticket Resale Scraper Features

  • Returns every listing on an event, not the curated handful the page renders. One Los Angeles Dodgers game came back with 552 listings across 58 pages.
  • Extracts 30+ fields per listing — section, row, seat range, available quantity, raw price, fees, face value, ticket class, plus StubHub's own star rating, deal score and seat-quality score.
  • Stable listing_id per seller listing, so you can diff two runs and see exactly what moved.
  • Discovers events from any performer, team or venue page. Point it at /new-york-yankees-tickets and it finds the schedule itself.
  • eventsOnly mode returns just the event rows with lowest price. Much cheaper when you only want to know what is on sale and roughly what it costs.
  • Works across every category. Concerts, MLB, NFL, theater — the extraction does not care what you point it at.
  • Fails loudly on an empty result instead of billing you for a run that returned nothing.

What Can You Do With StubHub Listing Data?

  • Ticket resellers — Watch an event's inventory and pricing across runs, and see which sections are thinning out before the price moves.
  • Price monitors — Diff listing_id between runs to catch new listings, price drops and sold-out sections without re-reading the whole market.
  • Market analysts — Compare face value against asking price by section to measure markup across venue, category or day of week.
  • Event aggregators — Pull a performer's schedule and lowest price with eventsOnly, then drill into the events that matter.
  • Venue and promoter analysts — Track secondary-market depth for your own events, which is the number nobody hands you.

Two jobs show up in how people actually use ticket scrapers, and this one is built for both. Some run a single event on a schedule and want every listing — that is monitoring, and it needs full inventory and a stable id to diff on. Others run once across many events and only want the headline price — that is research, and it needs eventsOnly and a small bill.


How StubHub Ticket Resale Scraper Works

StubHub does not put its inventory in the page source. The event HTML carries event metadata and a lowest price; the listings arrive separately once the page is running, behind AWS WAF and DataDome.

So the scraper runs a real browser, clears the challenge, then walks the listing grid page by page from inside that cleared session. Ten listings per page, however many pages the event has. It stops when the event runs out, not when the page stops scrolling.

Residential mobile egress, because that is what the site's bot protection lets through. If an exit gets refused it draws a fresh one and carries on.


Input

FieldTypeDefaultDescription
maxItemsinteger50Maximum records to return, counting both event and listing rows.
discoverUrlstringPerformer, team or venue page to pull events from. Example: https://www.stubhub.com/new-york-yankees-tickets
eventUrlsarraySpecific StubHub event URLs. Overrides discoverUrl when set.
quantityinteger1Only return listings that can sell this many tickets together.
eventsOnlybooleanfalseReturn event rows without their listings. The cheap way to browse what is on sale.

Supply either discoverUrl or eventUrls. Supplying neither is the one way to make it complain immediately.


StubHub Ticket Resale Scraper Output Fields

Every row carries record_typeevent for an event summary, listing for a seller listing.

Event rows

FieldTypeDescription
record_typestringAlways event on these rows
event_idstringStubHub event id
event_urlstringCanonical event page URL
event_titlestringEvent name, e.g. Seattle Mariners at Los Angeles Dodgers
event_date_utcstringStart date and time, ISO 8601
venue_namestringVenue name
venue_citystringVenue city
venue_statestringState or region
venue_countrystringCountry
categorystringStubHub category for the event
lowest_pricenumberLowest advertised price across the event
price_currencystringCurrency of lowest_price
availabilitystringschema.org availability
category_idstringStubHub numeric category id

Listing rows

FieldTypeDescription
record_typestringAlways listing on these rows
listing_idstringUnique per seller listing. This is the one you diff on.
sectionstringSeating section label, e.g. 30RS
section_idintegerNumeric section id
section_map_namestringSection name as shown on the seat map
rowstringRow within the section
seat_fromstringFirst seat number
seat_tostringLast seat number
available_ticketsintegerTickets available in this listing
available_quantitiesstringQuantities the seller will split to, e.g. 1,2,4
max_quantityintegerLargest purchasable quantity
pricenumberRaw per-ticket price
formatted_pricestringPer-ticket price as displayed
formatted_total_pricestringTotal price as displayed
formatted_feesstringFees, when broken out
face_valuenumberFace value, when the seller discloses it
listing_currencystringCurrency the listing is priced in
ticket_classstringTicket class, e.g. Infield Reserve
ticket_typestringTicket type name
listing_notesstringSeller and site notes, e.g. Clear view
star_ratingintegerStubHub star rating
deal_scorestringStubHub deal score
seat_quality_scorestringStubHub seat quality score
is_seated_togetherbooleanWhether the seats are together
is_zone_ticketbooleanZone seating rather than specific seats
is_cheapestbooleanFlagged as the cheapest listing
is_better_valuebooleanFlagged as better value
is_sponsoredbooleanPromoted listing
listing_urlstringDeep link to the listing
scraped_atstringISO 8601 scrape timestamp

Listing rows repeat event_id, event_title, event_date_utc, venue_name and venue_city, so a listing stands on its own without a join.


FAQ

How many listings does it actually return?

However many the event has. A single Los Angeles Dodgers game returned 552 unique listings across 58 pages. The event page itself shows ten, which is where most tools stop.

Can I track price changes over time?

Yes, and that is what listing_id is for. Run it on a schedule, keep the results, and diff on listing_id — new ids are new listings, missing ids have sold or been pulled, and a changed price on the same id is a repricing.

What is the difference between price and face_value?

price is what the seller is asking per ticket. face_value is what was originally printed on it, when the seller discloses it — often they do not. The gap between the two is the markup, which is usually the interesting part.

Why do some listings have no seat numbers?

Zone listings. When is_zone_ticket is true the seller is selling into a general area rather than specific seats, so seat_from and seat_to are empty and section is the granularity you get.

Can I scrape an event that has already happened?

No, and neither can anyone else. StubHub delists past events, so there is nothing on the page to scrape. The actor says so rather than handing back an empty dataset.

Do I need my own proxies?

No. Residential egress is handled for you, including drawing a fresh exit when one gets refused.


Need More Features?

Open a request at orbtop.com — extra filters, new discovery entry points, and scheduled delivery are all on the table. Specifics help more than "it should do more".


Why Use StubHub Ticket Resale Scraper?

  • Full inventory, not a sample — 552 listings on an event whose page renders ten. If you are pricing against the market, you need the market.
  • Seat-level detail — Section, row, seat range and quantity, plus face value and StubHub's own deal and seat-quality scores.
  • Built for repeat runs — A stable listing_id makes diffing two runs trivial, which is what monitoring actually requires.
  • A cheap mode that is genuinely cheapeventsOnly skips the listing walk entirely when you only need the schedule and the headline price.
  • Honest failures — A run that returns nothing raises an error explaining why, instead of handing you an empty dataset and a bill.