# Ticketmaster Event Scraper 🎫 (`shahidirfan/ticketmaster-event-scraper`) Actor

Extract live concert, sports & theater event data from Ticketmaster instantly. Scrape event details, pricing, availability & venue info. Perfect for market analysis, price monitoring & event aggregation. Reliable, fast & easy to use.

- **URL**: https://apify.com/shahidirfan/ticketmaster-event-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Ticketmaster Concert Event Scraper

Collect structured Ticketmaster event data from discover and search pages by pasting a Ticketmaster URL. The actor turns category pages, keyword searches, and location-filtered discover URLs into clean event datasets with pagination, venue details, status flags, and artist information. Residential Apify Proxy is the recommended default for reliable hosted runs.

### Features

- **URL-driven input** - Paste a Ticketmaster discover or search URL instead of configuring multiple fields.
- **Category and search coverage** - Works with category URLs, keyword search URLs, country-filtered URLs, and DMA or location-filtered discover URLs.
- **Clean datasets** - Removes null values, empty strings, and empty objects before saving each record.
- **Built-in pagination** - Keeps requesting result pages until it reaches your result cap or page cap.
- **Residential proxy default** - Uses Apify residential proxy settings in the default actor input for more reliable Ticketmaster API access.

### Use Cases

#### Category Monitoring
Track a Ticketmaster category or minor classification over time. This is useful for niche genre pages, local concerts, or curated discover pages.

#### Keyword Research
Search Ticketmaster for artists, tours, venues, or topics by using a search URL. The actor returns matching event cards as structured records ready for analysis.

#### Local Market Coverage
Use a discover URL with a `dma_id` or country filter to monitor event availability for a specific market. This is useful for venue calendars, local dashboards, and regional alerting.

### Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `startUrl` | String | Yes | `https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve` | Ticketmaster discover or search URL to replay through the JSON event feed. |
| `results_wanted` | Integer | No | `20` | Maximum number of events to save. |
| `max_pages` | Integer | No | `5` | Maximum number of API pages to request. |
| `proxyConfiguration` | Object | No | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` | Residential Apify Proxy settings for more stable runs. |

### Output Data

Each dataset item contains clean Ticketmaster event data.

| Field | Type | Description |
|---|---|---|
| `title` | String | Event title shown on Ticketmaster. |
| `id` | String | Ticketmaster event id. |
| `discoveryId` | String | Discovery feed identifier. |
| `url` | String | Ticketmaster event URL. |
| `startDate` | String | Event start date in ISO format when available. |
| `onsaleDate` | String | Ticket on-sale date in ISO format when available. |
| `eventChangeStatus` | String | Ticketmaster event status label. |
| `cancelled` | Boolean | Whether the event is cancelled. |
| `postponed` | Boolean | Whether the event is postponed. |
| `rescheduled` | Boolean | Whether the event is rescheduled. |
| `soldOut` | Boolean | Whether Ticketmaster marks the event as sold out. |
| `venueName` | String | Venue name. |
| `venueCity` | String | Venue city. |
| `venueState` | String | Venue state or province. |
| `venueCountryCode` | String | Venue country code. |
| `artistNames` | Array | Artist names attached to the event. |
| `artists` | Array | Nested artist objects with name, URL, and image URLs when available. |

### Usage Examples

#### Minor Category URL

```json
{
  "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
  "results_wanted": 50,
  "max_pages": 3
}
````

#### Search URL

```json
{
  "startUrl": "https://www.ticketmaster.com/search?q=taylor+swift&classificationId=KnvZfZ7vAeA",
  "results_wanted": 100,
  "max_pages": 5
}
```

#### Location-Filtered Discover URL

```json
{
  "startUrl": "https://www.ticketmaster.com/discover/concerts?dma_id=324&countryCode=US",
  "results_wanted": 100,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

#### Residential Proxy Request

```json
{
  "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
  "results_wanted": 50,
  "max_pages": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Sample Output

```json
{
  "title": "Denim and Diamonds Tour w/ Sir Charles Jones, Jay Morris and Myia B",
  "id": "1B0062B206496DE0",
  "discoveryId": "G5viZblFk3pMO",
  "url": "https://www.ticketmaster.com/...",
  "startDate": "2025-06-30T00:00:00Z",
  "onsaleDate": "2025-05-23T15:00:00Z",
  "venueName": "Minglewood Hall",
  "venueCity": "Memphis",
  "venueState": "TN",
  "venueCountryCode": "US",
  "artistNames": [
    "Sir Charles Jones"
  ],
  "cancelled": true,
  "soldOut": false
}
```

### Tips For Best Results

#### Use Real Ticketmaster Result URLs

Paste a URL you already verified in the browser. The actor supports Ticketmaster discover and search result pages, not arbitrary event-detail pages.

#### Start Small, Then Scale

Use `results_wanted: 20` while testing a new URL, then increase to `50` or `100` after the URL behaves as expected.

#### Use Proxy For Cloud Runs

Residential Apify Proxy improves stability on hosted runs, especially for larger result caps or repeated schedules.

#### Keep Residential Proxy Enabled

The default actor input already uses `RESIDENTIAL`. Keep that setting unless you have another proxy source that is already working for Ticketmaster.

### Frequently Asked Questions

#### What URL types are supported?

Discover URLs, category URLs that carry `classificationId`, Ticketmaster keyword search URLs, and location-filtered discover URLs such as `dma_id` and country-based filters.

#### Does the actor parse HTML?

No. The actor uses Ticketmaster JSON event feeds directly and only maps the URL into the correct API request.

#### How do I send requests through residential proxy?

Pass `proxyConfiguration.useApifyProxy: true` with `apifyProxyGroups: ["RESIDENTIAL"]`. That is the default input shipped with the actor for both local testing and hosted runs.

#### Does pagination respect my input?

Yes. The actor starts from the URL page if one is present, then continues until it reaches `results_wanted`, `max_pages`, or the last available API page.

#### Why are some fields missing in some records?

Ticketmaster does not provide every field for every event. Empty values are removed before saving, so the dataset stays clean.

### Support

Use the Apify Console issue and support channels for run-specific help, scheduling, integrations, and troubleshooting.

### Legal Notice

Use this actor responsibly and make sure your data collection complies with the target site's terms and applicable laws.

# Actor input Schema

## `startUrl` (type: `string`):

Paste a Ticketmaster discover or search URL, such as a category URL, a keyword search URL, or a location-filtered discover URL.

## `results_wanted` (type: `integer`):

Maximum number of Ticketmaster events to save.

## `max_pages` (type: `integer`):

Safety cap for the number of result pages to request.

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

Residential Apify Proxy is enabled by default because Ticketmaster requests are more reliable with residential IPs.

## Actor input object example

```json
{
  "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
  "results_wanted": 20,
  "max_pages": 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 = {
    "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
    "results_wanted": 20,
    "max_pages": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/ticketmaster-event-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 = {
    "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
    "results_wanted": 20,
    "max_pages": 5,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrl": "https://www.ticketmaster.com/discover/concerts?classificationId=KnvZfZ7vAve",
  "results_wanted": 20,
  "max_pages": 5
}' |
apify call shahidirfan/ticketmaster-event-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/ticketmaster-event-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ticketmaster Event Scraper 🎫",
        "description": "Extract live concert, sports & theater event data from Ticketmaster instantly. Scrape event details, pricing, availability & venue info. Perfect for market analysis, price monitoring & event aggregation. Reliable, fast & easy to use.",
        "version": "0.0",
        "x-build-id": "iju1kW0gYNmmCXRBk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~ticketmaster-event-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-ticketmaster-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahidirfan~ticketmaster-event-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-ticketmaster-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahidirfan~ticketmaster-event-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-ticketmaster-event-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrl"
                ],
                "properties": {
                    "startUrl": {
                        "title": "Ticketmaster URL",
                        "type": "string",
                        "description": "Paste a Ticketmaster discover or search URL, such as a category URL, a keyword search URL, or a location-filtered discover URL."
                    },
                    "results_wanted": {
                        "title": "Maximum number of events",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of Ticketmaster events to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum number of pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap for the number of result pages to request.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Residential Apify Proxy is enabled by default because Ticketmaster requests are more reliable with residential IPs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
