Viagogo Scraper icon

Viagogo Scraper

Scrape Viagogo events by artist, production, venue, city, category, or URL. Extract event names, dates, venues, locations, availability, and links.…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Viagogo Scraper at a glance

Viagogo Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, recordid, eventid, url and title, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $3.00 per 1,000 results on the Apify Free plan and from $1.80 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Web data
Pricing
$3.00 per 1,000 results (Free plan), from $1.80 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
18 options

Scrape Viagogo events by artist, production, venue, city, category, or URL. Extract event names, dates, venues, locations, availability, and links. Track NEW, UPDATED, REAPPEARED, and EXPIRED events with incremental runs, resume, and MCP export.

What Viagogo Scraper can do

  • Real source-service data. Each search term returns the source's own served window of up to 20 events, with venue, city, country, date and time in one record, plus a curated raw snapshot so nothing upstream is dropped. City and category page links are read directly and can return far more (a category page lists about 2,000 events), bounded by Max items.
  • Keyword search across the whole catalogue. Artists, productions, venues, cities and categories all work as search terms.
  • Date window and sort. startDate and endDate keep only events inside a date range on every row the run reads (search windows, city pages and category pages), and sortBy picks the site's relevance or published-date order for search terms and for search, production and venue links (city and category pages keep their own order).
  • Link mode. Paste city and category links and the actor reads those pages directly for their own events; search, production and venue links are resolved by text search and kept only when they carry the link's own production path or venue id. Single-event links (/E-) name no search term and are reported as skipped, never silently dropped.
  • Availability monitoring. Scheduled runs classify every event as NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, with per-campaign state you can name or share.
  • Global coverage. Tens of thousands of events across 70+ countries, with loud failures instead of silent empty datasets.

Choose what to collect

These inputs let you configure Viagogo Scraper - Events, Venues, Availability & Monitoring. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredSearch finds events for one or more keywords (artist, production, venue, city or category text). Link mode reads the events behind production, venue, category, city or search links.

Choices: search, url

queriesarrayOne entry per search: an artist (Coldplay), a production (The Lion King), a venue (Madison Square Garden), a city (Chicago) or a category (Concerts). Multi-value supported.
urlInputsarrayLink mode: city (/Atlanta) and category (/Concert-Tickets) pages are read directly for their own events; search (.../?q=coldplay), production (.../Usher-Tickets) and venue (.../_V-27372) links are resolved by search and kept only when they carry the link's own production path or venue id. Event-only links (/E-) are not readable and are reported as skipped. Left untouched, the two default links are scraped.
urlsarrayAlias for Links, accepted under the name other Apify actors use for URL mode. Entries are read in order.
maxItemsintegerStop after this many records (0 = no limit; the run then stops when the served windows run out). Event records and, optionally, match records share this budget, so matches do not crowd out the events you are after.
includeMatchesbooleanOff by default: the dataset then carries event records only. Turn on to also emit the search page's top production, venue and category matches, marked kind=match.
startDatestringKeep only events starting on or after this date (YYYY-MM-DD). Applied to every row read: a search window, a city page or a category page (the source ignores date parameters). City-page rows are compared by their venue-local date, search, production, venue and category rows by their UTC start. Events with no known start time are kept.
Show 11 more inputs
More input fields
InputWhat it controls
endDatestringKeep only events starting on or before this date (YYYY-MM-DD). Same rule as the earliest date.
sortBystringOrder of the served window: the site's relevance order or its published-date order. Applies to search terms and to search, production and venue links; city and category pages keep their own order.

Choices: relevance, published

resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large pull without returning events already collected there.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns every matching event as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED events. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each keyword, filter and lookup setup; use State key to name or deliberately share a monitoring campaign. Compared for UPDATED: every output field (title, date and time, event and availability state, listings flag, purchase flags, venue, country) except the ones excluded. Excluded by default: the raw source payload, countdown and sold-out message text, favorites counts and distance-from-you values, plus any field named in Ignore fields.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the search and filter settings.
emitUnchangedbooleanOff by default. Turn on to also return events that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have.
emitExpiredbooleanOff by default. Turn on to also return events that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search.
ignoreFieldsForChangesarrayOptional. Field names to exclude from UPDATED change detection, matched by name at any depth. Already ignored by default (kept in the output, never trigger UPDATED): the raw source payload, countdown and sold-out message text, favorites counts and distance-from-you values. Add a field here if it turns out to be noisy in your setup.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output.
notionParentPageUrlstringURL or id of the Notion page under which event pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

kindkind
recordIdrecordId
eventIdeventId
urlurl
titletitle
dayOfWeekdayOfWeek
formattedDateformattedDate
formattedTimeformattedTime
formattedDateWithDayOfWeekformattedDateWithDayOfWeek
startDateTimeUtcstartDateTimeUtc
startDateTimeLocalstartDateTimeLocal
isDateConfirmedisDateConfirmed
Show 38 more fields
isTimeConfirmedisTimeConfirmed
isTbdisTbd
isMultidayEventisMultidayEvent
isParkingEventisParkingEvent
venueTimeZoneOffsetHoursvenueTimeZoneOffsetHours
eventStateeventState
availabilityStateavailabilityState
hasListingshasListings
allowPublicPurchaseallowPublicPurchase
isUnderHundredisUnderHundred
venueIdvenueId
venueNamevenueName
venueCityvenueCity
venueLocationvenueLocation
countryCodecountryCode
countryNamecountryName
searchKeywordsearchKeyword
sourceUrlsourceUrl
formattedDateWithoutYearformattedDateWithoutYear
formattedRescheduledFromDateformattedRescheduledFromDate
eventCountdownMessageeventCountdownMessage
soldOutMessagesoldOutMessage
notificationModalContentnotificationModalContent
isFavoriteisFavorite
aggregateFavoritesaggregateFavorites
userDistanceFromVenueuserDistanceFromVenue
formattedDistanceInMilesformattedDistanceInMiles
isRefetchedGlobalEventisRefetchedGlobalEvent
eventMetadataeventMetadata
changeTypechangeType
changedFieldschangedFields
firstSeenAtfirstSeenAt
lastSeenAtlastSeenAt
objectIdobjectId
subtitlesubtitle
entityTypeentityType
rankrank
imageUrlimageUrl

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "kind": "event",
  "recordId": "event-500001",
  "eventId": "500001",
  "url": "https://www.viagogo.com/Concert-Tickets/Sample-Category/Sample-Artist-Tickets/E-500001",
  "title": "Sample Artist Live",
  "dayOfWeek": "Sat",
  "formattedDate": "Nov 07 2026",
  "formattedTime": "7:30 PM",
  "formattedDateWithDayOfWeek": "Sat, Nov 07 2026",
  "startDateTimeUtc": "2026-11-08T00:30:00+00:00",
  "isDateConfirmed": true,
  "isTimeConfirmed": true,
  "isTbd": false,
  "isMultidayEvent": false,
  "isParkingEvent": false,
  "venueTimeZoneOffsetHours": -5,
  "eventState": 1,
  "availabilityState": 1,
  "hasListings": true,
  "allowPublicPurchase": true,
  "isUnderHundred": false,
  "venueId": 90001,
  "venueName": "Sample Arena",
  "venueCity": "Sample City",
  "venueLocation": "Sample City, ST, USA",
  "countryCode": "US",
  "countryName": "United States",
  "searchKeyword": "Sample Artist",
  "raw": {
    "note": "curated upstream event object, session tokens and UI copy stripped"
  },
  "changeType": "NEW",
  "changedFields": [],
  "firstSeenAt": "2026-01-01T00:00:00+00:00",
  "lastSeenAt": "2026-01-01T00:00:00+00:00"
}

Ways to use this data

  • Ticket resale market research: track availability, event counts and listing status across artists, venues or cities to spot demand trends.
  • Event discovery integrations: feed a search or alerting app with live event names, dates, venues and links for the acts your users follow.
  • Fan and reseller alerting: schedule recurring runs with incremental mode to get notified only when events go on sale, change or sell out.
  • Venue and category monitoring: watch a venue, city or category page's event lineup over time without rechecking it by hand.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Viagogo Scraper return?

The documented output for Viagogo Scraper includes kind, recordid, eventid, url, title, dayofweek, formatteddate and formattedtime. Availability of each field depends on the source page and the selected mode.

How much does Viagogo Scraper cost?

It costs $3.00 per 1,000 results on the Apify Free plan and from $1.80 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed events on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only NEW, UPDATED and REAPPEARED events (plus EXPIRED ones if you turn on Emit expired), and unchanged ones are not billed unless you turn on Emit unchanged.

Why did a wide search term return fewer events than I expected?

The source serves one window of up to 20 events per search term, search link, production link or venue link and ignores page parameters, so there is no page-by-page walk to extend a single term's results (city and category page links are read in full instead). Split a wide act or a big city across several narrower terms (add a city, a venue or a tour name) instead of raising Max items on one term.

Why did a monitoring run with Max items set return far more rows than Max items?

Emit expired records pushes the whole batch of events that dropped out of your tracked baseline in one commit after a complete scan, and that batch is not limited by Max items (only the rows collected during the scan are). If you track a large baseline and most of it is no longer found, a run with Emit expired on can return, and bill, well over Max items. Set Max items with your baseline size in mind when Emit expired is on. With several terms, also set Max items to 0: a term cut short by its share of Max items can otherwise have still-listed events marked EXPIRED (see the Resume and recurring updates tips).

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with Viagogo Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.