# Ticketmaster Scraper (`aboo.script/ticketmaster-scraper`) Actor

\[💰$3 / 1K] ⚡ Fast Ticketmaster scraper that bypasses anti-bot blocking. No login, no API key. Get concerts, sports & theater events in 18 countries by keyword or URL: dates, presales, venue GPS, artists, sold-out status, and every ticket price with fees.

- **URL**: https://apify.com/aboo.script/ticketmaster-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Ticketmaster Scraper

**Ticketmaster Scraper** extracts events from [Ticketmaster](https://www.ticketmaster.co.uk/) in 18 countries, including the UK, Ireland, Germany, Australia, and the UAE, into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste a Ticketmaster search, category, artist, venue, or event URL, or type a few keywords and choose a country, and get the event name, dates, venue, artists, ticket types, and prices for every result. No account or login required.

### Introduction

[Ticketmaster](https://www.ticketmaster.co.uk/) is one of the world's largest ticket sellers, with local sites for concerts, sports, comedy, theatre, and family events in dozens of countries. Its listings show what is on, where, when, and at what price, which makes it a key source of live event data.

This actor collects the same public information you see in your browser and turns it into a ready-to-use dataset. You can run it once, schedule it to run daily, or connect it to your own tools.

Supported country sites: United Kingdom, Ireland, Germany, Austria, Switzerland, Netherlands, Belgium, Sweden, Denmark, Norway, Finland, Poland, Czech Republic, South Africa, Australia, New Zealand, Mexico, and the United Arab Emirates.

### What data can you extract from Ticketmaster?

- 🎫 Event name, description, category, sub-category, genre, sub-genre, and product type
- 📅 Start and end date, on-sale and off-sale date, presale windows, and time zone
- 🚦 Event status (scheduled, cancelled, postponed), sold-out and limited-availability flags
- 💲 Every price on offer: ticket type, offer type (standard, VIP, platinum), price level, seating sections, face value, service fees, total price, price components, and quantity limits
- 🪑 Seating sections, ticket limit per order, and handling fee
- 📍 Venue ID, name, address, city, postal code, country, coordinates, and venue page URL
- 🎤 Artists and performers with IDs, links, and images
- 🏢 Organizer name and address
- ℹ️ Age restriction, family-friendly and general admission flags, terms and conditions, extra event information (such as bag policy), and accessibility contact details
- 🖼️ Event images and seat map image
- 🌍 Country site and Ticketmaster Discovery ID of each event
- 🔗 Direct URL to each event page

### Use Cases

- 📈 **Market research**: compare ticket prices and event volume across countries, cities, and categories.
- 🕵️ **Competitor monitoring**: see which promoters and venues are selling, and at what price.
- 🤝 **Lead generation**: build lists of organizers, venues, and artists active in each market.
- 🗂️ **Database building**: create your own event calendar for a city guide, travel site, or newsletter.
- 🤖 **AI and automation**: feed clean, structured data into spreadsheets, dashboards, or AI workflows.

### How to scrape Ticketmaster step by step

1. Paste one or more Ticketmaster URLs into **Start URLs**, or type keywords into **Search queries** and pick a **Country**.
2. Optionally set a **Start date**, **End date**, and **Sort by** for your search queries.
3. Set **Maximum number of results** to how many events you want per URL or per query.
4. Click **Start**, wait for the run to finish, and download your data from the **Output** tab.

### Input

- **Start URLs**: Ticketmaster URLs from any supported country site. Supported pages: search results (or the search page without keywords for all upcoming events), category pages, artist pages, venue pages, and single event pages. The country is taken from the URL, so you can mix sites from different countries in one run. Filters in a search URL (keywords, dates, sort order, and region) are kept, and if the URL points to a later results page, scraping starts from that page.
- **Search queries**: keywords to search, such as an artist, team, show, or venue, one per line. Each query is scraped separately.
- **Country**: the Ticketmaster country site to search. Applies to search queries.
- **Start date** and **End date**: only include events within this date range. Apply to search queries.
- **Sort by**: order search query results by relevance or by date.
- **Maximum number of results**: how many events to collect for each start URL or search query.
- **Proxy configuration**: residential proxies are required, because Ticketmaster blocks datacenter IP addresses. The default setting already uses them.

You can use start URLs, search queries, or both in the same run. At least one of them is required.

### Input Examples

Scrape a venue page from Ticketmaster UK:

```json
{
  "startUrls": [
    {
      "url": "https://www.ticketmaster.co.uk/o2-academy-bristol-tickets-bristol/venue/509558"
    }
  ],
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

Search by keywords in the United Kingdom:

```json
{
  "searchQueries": ["comedy"],
  "country": "GB",
  "sort": "relevance",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Output

Each event is saved as one item in the dataset. Here is an example of a single item (shortened to two of its 22 price rows):

```json
{
  "url": "https://www.ticketmaster.ae/event/euroleague-dubai-basketball-vs-crvena-zvezda-meridianbet-belgrade-tickets/1948608871",
  "id": "1948608871",
  "discoveryId": "Z698xZ52Z16vPFbF-s",
  "country": "AE",
  "name": "EuroLeague | Dubai Basketball vs Crvena Zvezda Meridianbet Belgrade",
  "description": "Dubai Basketball returns to the court on 8th of Ocrober for an exciting Euroleague matchup against Crvena Zvezda Meridianbet Belgrade at Coca-Cola Arena. ...",
  "status": "Scheduled",
  "soldOut": false,
  "limitedAvailability": null,
  "startDate": "2026-10-08T16:00:00Z",
  "endDate": "2026-10-08T16:00:00Z",
  "onsaleDate": "2026-09-30T07:56:00Z",
  "offsaleDate": "2026-10-08T19:59:00Z",
  "presales": [],
  "timeZone": "Asia/Dubai",
  "category": "Sports",
  "subCategory": "Basketball",
  "genre": "Basketball",
  "subGenre": "Men Professional",
  "productType": "General",
  "familyFriendly": false,
  "generalAdmission": false,
  "ageRestriction": null,
  "venueId": "511",
  "venueName": "Coca-Cola Arena",
  "venueAddress": "City Walk",
  "venueCity": "Dubai",
  "venuePostalCode": null,
  "venueCountryCode": "AE",
  "venueLatitude": 25.20447,
  "venueLongitude": 55.26627,
  "venueUrl": "https://www.ticketmaster.ae/venue/coca-cola-arena-dubai-tickets/cca/805",
  "organizer": "Coca-Cola Arena",
  "organizerAddress": "City Walk, 111111, Dubai, United Arab Emirates",
  "artists": [
    {
      "id": "1529273",
      "name": "Dubai Basketball",
      "url": "https://www.ticketmaster.ae/artist/dubai-basketball-tickets/1529273",
      "imageUrl": "https://s1.ticketm.net/img/tat/dam/a/c01/a44dc9b3-a954-4be3-99a6-de1502134c01_EVENT_DETAIL_PAGE_16_9.jpg"
    }
  ],
  "currency": "AED",
  "priceMin": 20,
  "priceMax": 1360,
  "prices": [
    {
      "ticketType": "Sideline",
      "ticketTypeId": "4",
      "ticketTypeDescription": "Floor-level seating close to every moment of the game\nImmersive basketball and entertainment from court level\nDubai Basketball VIP Lounge access with game-day F&B hospitality",
      "offerType": "Standard",
      "priceLevel": "Sidelien 5 Prime",
      "priceLevelId": "11",
      "sections": [
        "FLOOR"
      ],
      "faceValue": 820,
      "serviceFee": 0,
      "upsellFee": 0,
      "totalPrice": 820,
      "priceComponents": [
        {
          "name": "ENTRY",
          "amount": 820
        }
      ],
      "minQuantity": 1,
      "maxQuantity": 10
    },
    {
      "ticketType": "Sideline",
      "ticketTypeId": "4",
      "ticketTypeDescription": "Floor-level seating close to every moment of the game\nImmersive basketball and entertainment from court level\nDubai Basketball VIP Lounge access with game-day F&B hospitality",
      "offerType": "Standard",
      "priceLevel": "Sideline 5",
      "priceLevelId": "12",
      "sections": [
        "FLOOR"
      ],
      "faceValue": 720,
      "serviceFee": 0,
      "upsellFee": 0,
      "totalPrice": 720,
      "priceComponents": [
        {
          "name": "ENTRY",
          "amount": 720
        }
      ],
      "minQuantity": 1,
      "maxQuantity": 10
    }
  ],
  "sections": [
    "FLOOR",
    "LOWER TIER",
    "UPPER TIER"
  ],
  "ticketLimit": 10,
  "handlingFee": 0,
  "additionalInfo": null,
  "infoTopics": [
    {
      "title": "Term & Conditions",
      "text": "Any patron, below 16 years of age must be accompanied by an adult/parent aged 18 or over. ..."
    }
  ],
  "accessibility": null,
  "imageUrl": "https://s1.ticketm.net/dam/e/a38/27eaad9c-5b4a-4bba-960e-f80f61aa6a38_EVENT_DETAIL_PAGE_16_9.jpg",
  "images": [
    "https://s1.ticketm.net/dam/e/a38/27eaad9c-5b4a-4bba-960e-f80f61aa6a38_EVENT_DETAIL_PAGE_16_9.jpg",
    "https://s1.ticketm.net/img/tat/dam/a/c01/a44dc9b3-a954-4be3-99a6-de1502134c01_EVENT_DETAIL_PAGE_16_9.jpg"
  ],
  "seatMapUrl": "https://media.ticketmaster.eu/unitedarabemirates/331310ed4d5caf504b1a97fa2bad6580.png"
}
```

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- 🛡️ **Residential proxies required**: Ticketmaster blocks datacenter IP addresses, so the actor uses residential proxies by default. Runs without them return no results.
- 🌍 **Unsupported countries**: the US, Canada, France, Spain, Italy, Singapore, Greece, Israel, and Latin American Ticketmaster sites (such as Peru, Chile, and Brazil) are not supported. Their URLs are skipped with a warning, and the rest of the run continues.
- 🔗 **Unsupported pages**: city pages (such as `/discover/london`), sub-category pages, and keyword landing pages on the UK site (such as `/comedy`) are not supported yet. Use a search URL or a search query instead.
- 🚫 **Skipped events**: only events sold on the Ticketmaster country site itself are collected. Events sold through partner websites, and some special booking pages (such as certain theatre and attraction pages in the UK), are skipped.
- 🔁 **No duplicates**: if the same event appears under several start URLs or queries, it is saved only once and counted for the first one that found it.
- 🗣️ **Local language**: categories, event names, and descriptions are returned as each country site shows them, so a German event has German category names.
- 💲 **Prices**: `prices` lists every ticket type and price level shown on the event page, one row each. `totalPrice` is the face value plus the per-ticket fees; the `handlingFee` is charged once per order. `priceMin` and `priceMax` are a quick summary of paid tickets only, so free tickets such as companion tickets for disabled visitors appear in `prices` but not in the summary.
- 📍 **Region in search URLs**: a region chosen on the website (such as London) puts events from that region first, but does not remove events from other regions, exactly like on the website.
- ❔ **Empty fields**: `limitedAvailability` is only filled for events found through a list or search, not for event URLs added directly, and on the UK, Irish, Australian, New Zealand, and Mexican sites the same applies to `soldOut`. Events that are not on sale yet have an empty `prices` list. Missing values are returned as `null`.

### Why use the Ticketmaster Scraper?

- ✅ **No login needed**: works with public data only, so there is no account to manage.
- 🌍 **18 countries in one actor**: switch country with one setting, or mix URLs from different countries in one run.
- 🎯 **Many ways to start**: search, category, artist, venue, and event pages are all supported.
- 💲 **Full price breakdown**: get every ticket type with its own price, not just a single "from" price.
- 🧹 **Clean data**: prices are real numbers, dates use one standard format, and text is free of HTML.
- 💸 **Pay for what you need**: set a result limit per URL or query and keep every run small and cheap.

### FAQ

#### Which countries are supported?

United Kingdom, Ireland, Germany, Austria, Switzerland, Netherlands, Belgium, Sweden, Denmark, Norway, Finland, Poland, Czech Republic, South Africa, Australia, New Zealand, Mexico, and the United Arab Emirates. See **Notes** for the sites that are not supported.

#### How many results can I scrape?

You can set any number in **Maximum number of results**. The actor keeps going through the pages until it reaches your limit or runs out of events. A very broad search can return thousands of events, so narrow it with keywords or a date range if you only need part of them.

#### Do I need a Ticketmaster account?

No. The actor only collects publicly available data. You do not need to log in or provide any account details.

#### Can I scrape data on a schedule?

Yes. Use Apify Schedules to run the actor every hour, day, or week, and get fresh event and price data automatically.

#### Why are some fields empty?

Some events simply do not show every piece of information. When a field is not available on the website, it is returned as `null`. See **Notes** for the fields that are missing on specific country sites.

#### Can I request a new feature or filter?

Yes. Right now the actor supports start URLs, search queries, country, date range, and sorting. If you need other filters or inputs, such as city pages or more countries, get in touch and they can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

# Actor input Schema

## `startUrls` (type: `array`):

Ticketmaster search, category, artist, venue or event URLs from a supported country site (for example ticketmaster.co.uk, ticketmaster.de or ticketmaster.ae). The country is taken from the URL.

## `searchQueries` (type: `array`):

Keywords to search on Ticketmaster, such as an artist, team, show or venue. Each query is scraped separately on the site of the selected country.

## `country` (type: `string`):

Ticketmaster country site to search. Applies to search queries; start URLs use the country of their own site.

## `startDate` (type: `string`):

Only include events on or after this date. Applies to search queries. Leave empty to start from today.

## `endDate` (type: `string`):

Only include events on or before this date. Applies to search queries. Leave empty to include all upcoming events.

## `sort` (type: `string`):

Order of search query results. Applies to search queries.

## `maxResults` (type: `integer`):

Maximum number of events to scrape per start URL or search query.

## `proxyConfiguration` (type: `object`):

Residential proxies are required: Ticketmaster blocks datacenter IP addresses. Keep the default unless you have your own residential proxies.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.ticketmaster.co.uk/o2-academy-bristol-tickets-bristol/venue/509558"
    }
  ],
  "searchQueries": [
    "comedy"
  ],
  "country": "GB",
  "sort": "relevance",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.ticketmaster.co.uk/o2-academy-bristol-tickets-bristol/venue/509558"
        }
    ],
    "searchQueries": [
        "comedy"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/ticketmaster-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.ticketmaster.co.uk/o2-academy-bristol-tickets-bristol/venue/509558" }],
    "searchQueries": ["comedy"],
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/ticketmaster-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.ticketmaster.co.uk/o2-academy-bristol-tickets-bristol/venue/509558"
    }
  ],
  "searchQueries": [
    "comedy"
  ]
}' |
apify call aboo.script/ticketmaster-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/ticketmaster-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZnF4NAdekOCV4v16d/builds/a2VrqZczXuPouMoQ7/openapi.json
