Viagogo Scraper API
Capture live Viagogo ticket inventory without building or maintaining your own Viagogo scraper. Send a public viagogo.com event URL and receive current listings, pricing, fees, sections, rows, quantities, availability, and seat maps as structured JSON, captured live and never cached.
The API endpoint is https://api.tickets.dev/v1/capture/viagogo
Viagogo scraper API for live inventory
Each request captures current listing-level inventory with sections, rows, quantities, prices, fees, and optional seat maps in the same normalized JSON used across every marketplace.
{
"status": "Loading example…"}Capture a Viagogo event
Submit a public event page URL. The request runs the capture and returns one normalized snapshot when it completes.
| Method | Endpoint |
|---|---|
| GET | /v1/capture/viagogo |
import requests
endpoint = "https://api.tickets.dev/v1/capture/viagogo"
response = requests.get(
endpoint,
params={"eventUrl": event_url},
headers={"x-api-key": api_key},
)
snapshot = response.json()Query parameters
| Parameter | Type | Description |
|---|---|---|
eventUrl | string required | A public Viagogo event page URL to capture, from viagogo.com. Any country domain or subdomain of those works as well. The match is on the marketplace name, not the exact host. An event URL from a different marketplace returns 400 marketplace_mismatch. |
includeVenueMaps | boolean optional | Render the venue maps for this capture and host them, filling sectionLevelUrl and seatLevelUrl, and fill venueLayout with the sections, rows and seats of the venue. Off by default, because the maps add render and upload time to a request most callers make for pricing alone, so the URLs come back as empty strings and venueLayout at level none unless you pass true. |
apiKey | string optional | Your API key, when you send it in the query string rather than the x-api-key header. Either is accepted, and the key is required one way or the other. Keep it server-side. It carries your full quota. The public sandbox key tk_test_sandbox hits the same URL and returns fixture snapshots without spending a capture. |
Example response
One capture of a real Viagogo event, trimmed to two listings. Every marketplace returns this same shape, so a parser written once works against all of them.
{
"source": "viagogo",
"eventId": "161551904",
"eventName": "The Eagles",
"performers": [
{
"performerId": "",
"name": "The Eagles",
"master": true
}
],
"venueId": "150030906",
"venueName": "Sphere at The Venetian Resort",
"venueAddress": "255 Sands Ave",
"venueCity": "Las Vegas",
"venueState": "Nevada",
"venueTimezone": "",
"eventDateLocal": "2026-12-11T20:30:00-08:00",
"eventDateUtc": "2026-12-12T04:30:00+00:00",
"sourceUrl": "https://www.viagogo.com/Concert-Tickets/Rock-and-Pop/The-Eagles-Tickets/E-161551904",
"capturedAt": "2026-09-22T15:43:55.939036+00:00",
"currency": "USD",
"note": "",
"seatLevelUrl": "https://storage.tickets.dev/seatmaps/viagogo/seat/161551904/1790091835.svg",
"sectionLevelUrl": "https://storage.tickets.dev/seatmaps/viagogo/section/161551904/1790091835.svg",
"stats": {
"listingCount": 398,
"ticketCount": 1572,
"getInPrice": 379.55,
"medianPrice": 651.01,
"avgPrice": 880.12,
"maxPrice": 7526.75
},
"listings": [
{
"listingId": "13820069372",
"inventoryType": "resale",
"section": "404",
"row": "15",
"quantity": 2,
"ticketPrice": 379.55,
"fee": 0,
"totalPrice": 379.55,
"ticketType": "Mobile Transfer ticket",
"sellableQuantities": "2",
"group": "400 Level",
"seats": "",
"listingNotes": "Clear view",
"dealScore": "8.94"
},
{
"listingId": "13384793759",
"inventoryType": "resale",
"section": "110",
"row": "29",
"quantity": 2,
"ticketPrice": 399.69,
"fee": 0,
"totalPrice": 399.69,
"ticketType": "Mobile Transfer ticket",
"sellableQuantities": "2",
"group": "100 Level",
"seats": "",
"listingNotes": "Limited or Obstructed View (printed on ticket)",
"dealScore": "8.92"
}
// …396 more listings
],
"venueLayout": {
"level": "row",
"sections": [
{
"section": "101",
"group": "",
"ga": false,
"rows": [
{
"row": "12",
"seats": ""
},
{
"row": "13",
"seats": ""
}
// …24 more rows
]
}
// …43 more sections
]
}
}Real-time Viagogo pricing and availability
Store successive captures to monitor new and removed listings, price changes, fee changes, quantity movement, and inventory depth over time. The ticket price API guide covers all-in comparison, price alerts, resale analytics, and dynamic pricing workflows.
Viagogo API questions
What does the Viagogo API return?
One normalized snapshot of the event as it looks right now: every listing with its section, row, quantity, ticket price, fee and all-in total, plus event and venue details. Ask for venue maps and the same response carries hosted section and seat level map images tied to those listings.
Why use a Viagogo scraper API?
Catalog and partner APIs often focus on events, performers, or seller workflows. Tickets.dev captures the inventory visible on a public event page, including current listings, buyer-facing prices, fees, quantities, locations, and availability. It also removes the browser fleet, parsers, network routing, retries, and marketplace page maintenance involved in operating a production scraper.
Which Viagogo URLs does it accept?
Any public event page URL from viagogo.com. Country domains and subdomains work as well. The match is on the marketplace, not the exact host.
Is the Viagogo data live or cached?
Live. Each call opens the event page and reads its current listings and prices. There is no crawl schedule to wait on and no cached row to go stale.
Does Viagogo use the same response shape as the other marketplaces?
Yes. Every Tickets.dev marketplace API returns the identical snapshot schema, so a parser written against Viagogo works unchanged against Ticketmaster, StubHub, SeatGeek, TickPick, Vivid Seats, Gametime, GoTickets, Paciolan, ATG Tickets, ProVenue and GoFevo.
How is the Viagogo API priced?
Per completed capture, starting at $0.050 each on the Starter plan. Failed requests are never charged, and every plan includes every marketplace and live seat maps.
Does the response include the venue's seating chart and capacity?
To the seat where the venue's map has seats, otherwise to the row. Ask for venue maps and venueLayout carries the venue map as data: every section and row, and every seat where the map has them, with capacities counted from the seats. Names match the listings and the maps.
Are there any restrictions on how I can use the data?
No. A capture only reads public data: the listings, prices, fees and seat maps the marketplace shows any visitor on its event page, with no login. Tickets.dev puts no license terms on what a capture returns. Store it, analyze it, build products on it and show it to your own users, with no attribution required.
Other marketplace APIs
The same endpoint shape and the same response schema cover every marketplace we support: Ticketmaster API, StubHub API, SeatGeek API, TickPick API, Vivid Seats API, Gametime API, GoTickets API, Paciolan API, ATG Tickets API, ProVenue API, and GoFevo API. Start with the ticket scraping API, explore live ticket inventory, real-time ticket pricing and seat maps, see every ticket marketplace API, check per-capture pricing, or talk to us about volume.