Ticketmaster API: How to Get Live Ticket Listings and Prices in Python (2026)
The official Ticketmaster API tells you what events exist. Here is how to get what is actually for sale, seat by seat.
If you searched for “Ticketmaster API”, you probably want one of two things: a list of events, or the live tickets and prices for an event. Ticketmaster’s official developer API is built for the first. This guide covers the second: live sections, rows, prices, fees and resale listings for any Ticketmaster event, in Python.
Official Ticketmaster API vs live listings
TicketsData supports Ticketmaster events in the US, Canada, the UK, Ireland and Mexico on every plan.
Setup
You need Python 3.9+, the requests library and a free TicketsData trial. The API uses your account email and password, so keep them in environment variables.
export TD_USER="you@example.com"
export TD_PASS="your-password"
pip install requestsFetch live Ticketmaster listings
Pass the full Ticketmaster event URL, or just the event ID.
import os, requests
r = requests.get("https://ticketsdata.com/fetch", timeout=60, params={
"username": os.environ["TD_USER"],
"password": os.environ["TD_PASS"],
"platform": "ticketmaster",
"event_url": "https://www.ticketmaster.com/event/160062583FD9756B",
"mode": "pricing", # offers sorted by all-in price
})
r.raise_for_status()
data = r.json()
print(data["status"], data["response_s"], "s")Responses typically arrive in 1 to 2 seconds, live, with no cache.
Read sections, rows and prices
Ticketmaster data comes in two parts: body._embedded.offer holds the offers with prices, and body.facets tells you which section each offer belongs to and how many seats are available.
body = data["body"]
offers = {o["offerId"]: o for o in body["_embedded"]["offer"]}
rows = []
for facet in body["facets"]:
for offer_id in facet.get("offers", []):
o = offers.get(offer_id)
if not o:
continue
rows.append({
"section": facet.get("section"),
"seats": facet.get("count"),
"type": o.get("inventoryType"), # primary or resale
"price": o.get("listPrice"), # before fees
"all_in": o.get("totalPrice"), # with fees
"face": o.get("faceValue"),
})
for row in sorted(rows, key=lambda x: x["all_in"] or 0)[:10]:
print(row)Now you have the ten cheapest offers with section, seat count, primary or resale, and the price with and without fees.
Three modes worth knowing
pricing: offers sorted by all-in price, cheapest first.
Get TicketsData: Ticket Price API’s stories in your inbox
Join Medium for free to get updates from this writer.
availability: in-stock offers sorted by quantity, useful for groups.
quickpicks: Ticketmaster’s own best-value picks per section.
Find events first
If you only have an artist or team, list their events with /events, then fetch the one you want.
r = requests.get("https://ticketsdata.com/events", timeout=60, params={
"username": os.environ["TD_USER"],
"password": os.environ["TD_PASS"],
"platform": "ticketmaster",
"performer_url": "<Ticketmaster artist or team page URL>",
})
events = r.json()FAQ
Is there a free Ticketmaster API?
The official developer API is free for event discovery. Seat-level live listings are not part of it. TicketsData has a free trial.
Can I get Ticketmaster resale prices?
Yes. Each offer has inventoryType, so you can split primary and resale.
Does it include presales?
It can return presale inventory that sits behind access codes. It does not pass virtual queues.
How do I compare Ticketmaster with StubHub and SeatGeek?
For one Knicks game, the same section cost 76% more on Ticketmaster than on the cheapest site. See the full comparison: StubHub vs SeatGeek vs Vivid Seats: 7,460 Tickets Compared.
Get live ticket prices from every major marketplace.
TicketsData gives you real-time listings from Ticketmaster, StubHub, SeatGeek, Vivid Seats, TickPick, Gametime, viagogo and more through one API, with responses in 1 to 2 seconds and no cache.
Start a free trial at ticketsdata.com.
API docs: ticketsdata.com/docs






