# Ticketmaster Events Scraper (`automation-lab/ticketmaster-events-scraper`) Actor

Search Ticketmaster events and export IDs, schedules, venues, availability signals, and displayed face-value price ranges.

- **URL**: https://apify.com/automation-lab/ticketmaster-events-scraper.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 item extracteds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 Events Scraper

Search **Ticketmaster events** and export clean event, venue, schedule, availability, and displayed ticket-price records.

Use a keyword, a public event URL, a Ticketmaster category ID, or a Ticketmaster venue ID. Optional date and US coordinate filters make the output useful for recurring event discovery and market monitoring.

No Ticketmaster API key or login is required.

### What does Ticketmaster Events Scraper do?

The Actor turns public Ticketmaster event data into one flat dataset row per event.

It can:

- search by artist, team, production, or event keyword;
- fetch a known public Ticketmaster event URL;
- browse one Ticketmaster venue or category;
- filter search discovery by date range;
- center keyword searches on US coordinates and a radius;
- paginate through public search results;
- capture stable event and Discovery IDs;
- export venue names, addresses, coordinates, and URLs;
- preserve schedule and on-sale timestamps;
- expose sold-out, limited, cancelled, postponed, and rescheduled flags;
- inspect currently displayed ticket types and face-value price ranges;
- stop at an exact maximum number of unique events.

### Who is this Ticketmaster event data for?

#### Event discovery teams

Build regional calendars and refresh upcoming event feeds without copying listings manually.

#### Venue and promoter analysts

Track the public schedule for one venue and compare additions or status changes between scheduled runs.

#### Travel and local-content publishers

Collect dated entertainment options around a destination for guides, newsletters, and recommendation pipelines.

#### Ticket-market researchers

Compare displayed face-value ranges and availability signals across events or time.

#### Data and automation teams

Send normalized rows to a spreadsheet, database, webhook, warehouse, or BI tool.

### Why use this Actor?

- **No buyer-supplied API key:** the Actor reads public Ticketmaster marketplace surfaces.
- **Multiple discovery routes:** keyword, event URL, category, and venue workflows use one output contract.
- **Price context:** ticket-selection data is inspected when Ticketmaster displays it.
- **Monitoring-ready IDs:** stable event IDs make change comparison straightforward.
- **Typed output:** dates, numbers, booleans, arrays, and URLs remain machine friendly.
- **Bounded recovery:** transient source blocks use a small fresh-session retry policy rather than an unbounded loop.
- **Efficient runtime:** the production route uses HTTP JSON requests, not a browser.

### What data can I extract?

| Group | Fields |
| --- | --- |
| Identity | `eventId`, `discoveryId`, `name`, `url` (public event link) |
| Schedule | `startDate`, `onsaleDate`, `dateDisplay`, `timeZone` |
| Venue | `venueName`, `venueUrl`, `venueAddress`, `city`, `state`, `postalCode`, `countryCode`, `latitude`, `longitude` |
| Classification | `artistNames`, `categoryId` |
| Event status | `cancelled`, `postponed`, `rescheduled`, `dateTba`, `eventChangeStatus` |
| Availability | `soldOut`, `limitedAvailability`, `ticketingStatus`, `hasEnabledTicketTypes`, `ticketLimit` |
| Displayed prices | `minDisplayedPrice`, `maxDisplayedPrice`, `currency`, `priceDisplayType` |
| Provenance | `sourceQuery`, `sourcePage`, `scrapedAt` |

The `url` value is the canonical public event link returned by Ticketmaster. Most links use `ticketmaster.com`, but Ticketmaster may direct partner inventory to `ticketweb.com`; the Actor preserves that destination instead of inventing a Ticketmaster URL.

A nullable price means Ticketmaster did not expose a selectable face-value price for that event at extraction time. It does not mean the event is free.

### How to scrape Ticketmaster events

1. Open the Actor input page.
2. Enter one or more search queries, or clear them and provide an event URL, category ID, or venue ID.
3. Add date or US coordinate filters when needed.
4. Set `maxItems` to the number of unique event records you need.
5. Click **Start**.
6. Open the **Dataset** tab.
7. Export the rows as JSON, CSV, Excel, XML, or RSS.

The default input searches for `Taylor Swift` and returns up to 20 current public matches.

### Input parameters

| Input | Type | Default | Purpose |
| --- | --- | --- | --- |
| `searchQueries` | string array | `['Taylor Swift']` | Artist, team, event, or production keywords. |
| `startUrls` | URL array | empty | Public `ticketmaster.com/.../event/{id}` URLs. |
| `categoryId` | string | empty | Browse one category when queries are empty. |
| `venueId` | string | empty | Browse one numeric venue when queries are empty. |
| `fromDate` | `YYYY-MM-DD` | empty | Earliest accepted event date. |
| `toDate` | `YYYY-MM-DD` | empty | Latest accepted event date. |
| `latitude` | number | empty | US search center latitude. |
| `longitude` | number | empty | US search center longitude. |
| `distance` | integer | `25` | Radius in miles around coordinates. |
| `sort` | enum | `date` | `date` or `relevance`. |
| `maxItems` | integer | `20` | Stop after 1–1,000 unique rows. |
| `maxPages` | integer | `10` | Check at most 1–50 pages per discovery route. |
| `proxyConfiguration` | object | Residential US | Source connection settings. |

Provide latitude and longitude together. Coordinate discovery currently targets the US Ticketmaster market.

`categoryId`, `venueId`, and coordinate filters cannot be combined with direct event URLs. Date filters apply consistently to direct URLs and discovery rows.

### Output example

```json
{
  "eventId": "150064E8B4F37118",
  "discoveryId": "17A8v0G6CxVHM7b",
  "name": "The Taylor Party: Taylor Swift Night",
  "url": "https://www.ticketmaster.com/the-taylor-party-taylor-swift-night-washington-district-of-columbia-01-09-2027/event/150064E8B4F37118",
  "startDate": "2027-01-10T01:00:00Z",
  "onsaleDate": "2026-07-17T14:00:00Z",
  "timeZone": "America/New_York",
  "venueName": "9:30 CLUB",
  "city": "Washington",
  "state": "DC",
  "countryCode": "US",
  "artistNames": ["The Taylor Party: Taylor Night"],
  "soldOut": false,
  "limitedAvailability": false,
  "hasEnabledTicketTypes": true,
  "ticketLimit": 6,
  "minDisplayedPrice": 32.5,
  "maxDisplayedPrice": 32.5,
  "currency": "USD",
  "sourceQuery": "Taylor Swift",
  "sourcePage": 0,
  "scrapedAt": "2026-09-15T07:00:00.000Z"
}
```

Source values change. Treat this as a field-shape example, not a guarantee that the example event remains available.

### How much does it cost to scrape Ticketmaster events?

Pay-per-event pricing has two charge events:

- `start`: **$0.025** once per run;
- `item`: one charge for each unique event row saved.

Current item tiers are:

| Plan | Price per event |
| --- | ---: |
| Free | $0.0045908 |
| Bronze | $0.0039920 |
| Silver | $0.0031138 |
| Gold | $0.0023952 |
| Platinum | $0.0023952 |
| Diamond | $0.0023952 |

At Bronze rates, 10 events cost about **$0.06492**, 100 cost about **$0.42420**, and 1,000 cost about **$4.01700**, including one start. Apify may also apply account-specific platform rules shown before a run.

Rows filtered out, duplicates, and unavailable price enrichments do not create item charges.

### Recurring event monitoring workflow

1. Create a Task using a stable query, category, venue, or coordinate input.
2. Schedule it daily or weekly in Apify Console.
3. Keep `eventId` as the comparison key.
4. Compare `startDate`, venue fields, status flags, and displayed price fields with the previous dataset.
5. Send additions and changes to a webhook, database, Slack workflow, or reporting system.

The Actor reports snapshots. It does not keep historical state or send alerts by itself.

### Export Ticketmaster events to a spreadsheet

After a run:

1. Open the default dataset.
2. Choose CSV or Excel.
3. Select the `overview` view for core fields, or export all fields.
4. Use `eventId` to remove duplicates across runs.
5. Preserve `scrapedAt` so changes can be ordered.

For automated sheets, use an Apify integration or request the dataset API URL after every Task run.

### Use with the Apify API

Replace `YOUR_TOKEN` with an Apify API token.

#### cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~ticketmaster-events-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["Taylor Swift"],"sort":"relevance","maxItems":20}'
```

#### JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ticketmaster-events-scraper').call({
  searchQueries: ['Taylor Swift'],
  maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token="YOUR_TOKEN")
run = client.actor("automation-lab/ticketmaster-events-scraper").call(run_input={
    "searchQueries": ["Taylor Swift"],
    "maxItems": 20,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

### Use Ticketmaster Events Scraper with MCP

Add the Actor to Claude Code:

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/ticketmaster-events-scraper"
```

#### Claude Desktop

Add this server entry to your Claude Desktop MCP configuration:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/ticketmaster-events-scraper"
    }
  }
}
```

#### Cursor

Add the same `apify` server URL in **Cursor Settings → MCP** and enable it for the workspace.

#### VS Code

Add the same HTTP server URL to your VS Code MCP server configuration, then start the `apify` server from the MCP panel.

Example prompts:

- “Search Ticketmaster for Taylor Swift and return the next 20 events with venues and displayed price ranges.”
- “List upcoming events at Ticketmaster venue 172098 and highlight limited availability.”
- “Fetch this Ticketmaster event URL and summarize its schedule, venue, and selectable ticket price range.”

### Integrations

Useful destinations include:

- Google Sheets for editorial calendars;
- Airtable for event operations;
- webhooks for change-processing services;
- Zapier and Make for no-code automation;
- cloud storage for longitudinal snapshots;
- PostgreSQL, BigQuery, or Snowflake for analysis;
- Slack or email systems for alerts created by your own comparison step.

### Reliability, retries, and limits

Ticketmaster can block datacenter requests. The default uses a US residential proxy.

Transient network, 403, 408, 429, and server errors are retried with a fresh bounded identity. Each request has at most three total attempts.

Search and price data are separate public source surfaces. If an event is discoverable but no ticket types are displayed, the Actor saves the event with nullable price fields and preserves list-level status flags. Event links are source-returned destinations and can point to Ticketweb for Ticketmaster partner inventory.

Ticketmaster returns up to 20 search rows per page. The Actor deduplicates rows by event ID and stops when `maxItems` is reached.

### Troubleshooting

#### Why are price fields null?

Ticketmaster may not expose selectable face-value tickets before on-sale, after sellout, for partner events, or for some inventory types. Null does not mean zero.

#### Why did a search return fewer rows than expected?

Date, venue, category, and coordinate filters can narrow results. Increase `maxPages`, broaden filters, or try a more specific event keyword.

#### Why was an input rejected?

The Actor fails closed for malformed dates, partial coordinates, unsupported URLs, invalid limits, and incompatible direct-URL filters. Correct the validation message and rerun.

#### Does it include resale seat listings?

No. It exports event-level public data and displayed selectable face-value price ranges when exposed. It does not promise seat-by-seat resale inventory.

### Responsible use and legality

This Actor extracts public event information. You are responsible for complying with applicable laws, Ticketmaster terms, database rights, privacy rules, and your intended use.

Do not use the Actor to bypass access controls, purchase tickets automatically, impersonate users, overload the source, or collect personal data. Keep schedules and limits proportionate to a legitimate business need.

### Related Actors

- [StubHub Events Discovery Scraper](https://apify.com/automation-lab/stubhub-events-discovery-scraper) for another public event marketplace.
- [TickPick Events & Tickets Scraper](https://apify.com/automation-lab/tickpick-events-tickets-scraper) for aggregate ticket-market event and price monitoring.

Use source-specific IDs independently; do not assume events from different marketplaces share the same identifier.

### FAQ

#### Do I need a Ticketmaster developer key?

No. The Actor uses public marketplace data and requires only normal Apify execution access.

#### Can I search several artists in one run?

Yes. Add several strings to `searchQueries`. Results are deduplicated by Ticketmaster event ID.

#### Can I monitor one venue?

Yes. Clear `searchQueries`, enter its numeric `venueId`, and schedule the resulting Task.

#### Which geographic market is supported?

The current locale and proxy route target the United States. Coordinate inputs use miles.

#### Are displayed prices final checkout totals?

No. The Actor reports displayed face values from public ticket selection when available. Fees, taxes, dynamic changes, resale listings, and checkout totals may differ.

#### Does the Actor publish or modify Ticketmaster data?

No. It reads public event surfaces and writes normalized rows only to your Apify dataset.

# Changelog

This Actor's version history is a separate document: https://apify.com/automation-lab/ticketmaster-events-scraper/changelog.md

# Actor input Schema

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

Keywords, artist names, teams, or event names to search on Ticketmaster.

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

Optional public ticketmaster.com event URLs to fetch directly.

## `categoryId` (type: `string`):

Discover one Ticketmaster category when search queries are empty, for example KZFzniwnSyZfZ7v7nJ for concerts.

## `venueId` (type: `string`):

Discover events at one numeric Ticketmaster venue when search queries are empty.

## `fromDate` (type: `string`):

Return events on or after this date (YYYY-MM-DD).

## `toDate` (type: `string`):

Return events on or before this date (YYYY-MM-DD).

## `latitude` (type: `number`):

Optional center latitude for a US market search. Set longitude too.

## `longitude` (type: `number`):

Optional center longitude for a US market search. Set latitude too.

## `distance` (type: `integer`):

Search radius around the supplied coordinates.

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

Sort search results by event date or Ticketmaster relevance.

## `maxItems` (type: `integer`):

Stop after saving this many unique event records.

## `maxPages` (type: `integer`):

Safety limit for each query; Ticketmaster returns up to 20 events per page.

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

Residential US proxy is used by default because Ticketmaster blocks datacenter traffic.

## Actor input object example

```json
{
  "searchQueries": [
    "Taylor Swift"
  ],
  "startUrls": [],
  "distance": 25,
  "sort": "date",
  "maxItems": 10,
  "maxPages": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open all normalized event records in the default dataset.

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

Open the main event fields in a table view.

# 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 = {
    "searchQueries": [
        "Taylor Swift"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/ticketmaster-events-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 = {
    "searchQueries": ["Taylor Swift"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/ticketmaster-events-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 '{
  "searchQueries": [
    "Taylor Swift"
  ],
  "maxItems": 10
}' |
apify call automation-lab/ticketmaster-events-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/ticketmaster-events-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/o0wrD7NRa6LT5MVCy/builds/sAyDUhLMayCCQzKgu/openapi.json
