# Ticketmaster Scraper (`mrdoe/ticketmaster-scraper`) Actor

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

## Pricing

from $1.50 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

Search Ticketmaster for concerts, sports, theater and family events, then pull full event details — venue, date, coordinates, performers, category and ticket URL — in one normalized, ready-to-use schema.

### What it does

This Actor has two modes:

- **Search** — give it a keyword (artist, team, show, or a general term like "concerts") and it returns every matching upcoming event: name, date, venue with address and coordinates, ticket URL, and status (on sale / cancelled / postponed).
- **Get event details** — give it one or more event page URLs (your own, or copied straight from this Actor's own search results) and it returns the full record for each: description, cover image, performers/lineup, category, and best-effort ticket pricing when the event page publishes one.

Supports the US, UK, Australian and Canadian Ticketmaster sites.

### Why use it

- Build or feed a local/regional events calendar or aggregator
- Track when specific artists, teams or shows go on sale, and where
- Monitor event and venue data across multiple cities or countries in one run
- Get venue coordinates for mapping, distance-based filtering, or venue intelligence

### What makes this different

- **Two clean operations** instead of one do-everything crawl — search cheaply at scale, then only fetch full details for the events you actually care about.
- **Normalized schema** across every event type (concerts, sports, theater, family) and every supported country site, with consistent field names and units.
- **Venue intelligence built in** — name, full address, and latitude/longitude on every event, not just a text address.
- Honest output: fields Ticketmaster itself doesn't publish for a given event come back as `null`, never guessed.

### Data table

| Field | Search | Event details |
| --- | --- | --- |
| `eventId`, `name`, `url`, `startDate`, `eventStatus` | ✅ | ✅ |
| `venueName`, `venueCity`, `venueLatitude`, `venueLongitude` | ✅ | ✅ |
| `description`, `image`, `performers`, `category` | — | ✅ |
| `priceMin` / `priceMax` (best-effort) | — | ✅ |

### How to use

1. [Sign up](https://apify.com/sign-up) for a free Apify account.
2. Open this Actor and click **Try for free** (or **Start**).
3. Choose an **Operation**:
   - **Search events** — enter a **Search keyword** (e.g. `"Taylor Swift"`, `"Lakers"`, `"Hamilton"`, or `"concerts in Chicago"`) and pick the **Ticketmaster site** to search.
   - **Get event details** — paste one or more **Event URLs**.
4. Leave **Proxy configuration** on (required for reliable results).
5. Click **Start** and export results as JSON, CSV, Excel, or via the API.

### Input

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `operation` | string | Yes | `search` | `"search"` or `"productDetails"`. |
| `domain` | string | No | `ticketmaster.com` | Which country's Ticketmaster site to use: `ticketmaster.com`, `ticketmaster.co.uk`, `ticketmaster.com.au`, or `ticketmaster.ca`. |
| `query` | string | No | `"concerts"` | Search keyword (used when `operation` is `"search"`). |
| `queries` | array | No | `[]` | Multiple search keywords in one run; overrides `query` when set. |
| `eventUrls` | array | No | — | Ticketmaster event page URLs (used when `operation` is `"productDetails"`). |
| `maxItems` | integer | No | `20` | Maximum events returned per search keyword. `0` = unlimited. Not applied to `"productDetails"` — every URL you provide is always fetched. |
| `proxyConfiguration` | object | Yes | Residential | Apify Proxy is required; Residential is used by default for reliable results. |

### Output

Each dataset item is one event. A `_operation` field marks which mode produced it (`"search"` rows have a smaller field set than `"productDetails"` rows — see the [Data table](#data-table)).

#### Example item (`productDetails`)

```json
{
    "_operation": "productDetails",
    "status": "ok",
    "eventId": "1D00643DB15A498C",
    "name": "Staind: Break The Cycle 25th Anniversary Tour",
    "description": "Staind: Break The Cycle 25th Anniversary Tour | Mon • Sep 14, 2026 • 6:00 PM | Northwell at Jones Beach Theater, Wantagh, NY",
    "url": "https://www.ticketmaster.com/staind-break-the-cycle-25th-anniversary-wantagh-new-york-09-14-2026/event/1D00643DB15A498C",
    "image": "https://s1.ticketm.net/dam/a/ee8/4b2c8989-f966-4978-93e1-c974f679aee8_EVENT_DETAIL_PAGE_16_9.jpg",
    "startDate": "2026-09-14T18:00",
    "endDate": "2026-09-14",
    "eventStatus": "scheduled",
    "cancelled": false,
    "soldOut": null,
    "category": "Rock",
    "venueName": "Northwell at Jones Beach Theater",
    "venueAddress": "895 Bay Parkway",
    "venueCity": "Wantagh",
    "venueRegion": "NY",
    "venuePostalCode": "11793",
    "venueCountry": "US",
    "venueLatitude": 40.6014755,
    "venueLongitude": -73.5023618,
    "venueUrl": "https://www.ticketmaster.com/northwell-at-jones-beach-theater-tickets-wantagh/venue/237654",
    "performers": [
        { "name": "Staind", "url": "https://www.ticketmaster.com/staind-tickets/artist/717721" },
        { "name": "Seether", "url": "https://www.ticketmaster.com/seether-tickets/artist/828577" }
    ],
    "priceMin": null,
    "priceMax": null,
    "currency": "USD",
    "scrapedAt": "2026-09-14T16:16:51.000Z"
}
```

### Usage examples

**Find upcoming events for an artist:**

```json
{ "operation": "search", "query": "Taylor Swift", "maxItems": 50 }
```

**Search a specific country site:**

```json
{ "operation": "search", "domain": "ticketmaster.co.uk", "query": "Coldplay" }
```

**Get full details for events found by a previous search run:**

```json
{
    "operation": "productDetails",
    "eventUrls": [
        { "url": "https://www.ticketmaster.com/danzig-new-orleans-louisiana-09-14-2026/event/1B0064D1A7869C3F" }
    ]
}
```

### Known Limitations

- Ticket pricing (`priceMin`/`priceMax`) is best-effort: Ticketmaster only publishes it in structured form for some events, so it's frequently `null` even when tickets are on sale. Use the `url` to check current pricing directly when it matters.
- `soldOut` and `timezone` are populated on search results but currently `null` on `productDetails` rows — the event page itself doesn't publish them the same way the search feed does.
- Very high-demand on-sale events can carry extra queueing/waiting-room protections that may occasionally slow down or block a detail-page fetch; the Actor retries automatically.
- Results reflect Ticketmaster's own listings only — resale/secondary-market listings on other platforms are out of scope.

### FAQ

**Is this legal?** This Actor only collects publicly available event and venue listing data from Ticketmaster's own pages. It is not affiliated with or endorsed by Ticketmaster. You are responsible for complying with Ticketmaster's Terms of Service and applicable data-protection law for your use case.

**Which countries are supported?** The US, UK, Australian and Canadian Ticketmaster sites, selectable via the `domain` input.

**Can I search and get full details in one run?** Run `search` first to discover events cheaply, then feed the `url` values you want into a `productDetails` run — this keeps costs down since you only pay for full detail on events you actually need.

**Why is pricing sometimes missing?** Ticketmaster doesn't publish a simple price range on every event page — for many events it only appears once you start selecting seats. This Actor never fabricates a price; it returns what the event page itself publishes.

Found a bug or have a feature request? Use the Issues tab on this Actor's Apify Store page.

### Legal

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Ticketmaster. It collects only publicly available data. Use of the output is your responsibility, including compliance with Ticketmaster's Terms of Service and any applicable laws.

# Actor input Schema

## `operation` (type: `string`):

"search" finds events matching a keyword (artist, team, show, or venue). "productDetails" fetches full details for specific event URLs.

## `domain` (type: `string`):

Which country's Ticketmaster site to use.

## `query` (type: `string`):

Artist, team, show, venue, or general term to search for (used when operation is "search"). Example: "Taylor Swift", "Lakers", "Hamilton", "concerts in Chicago".

## `queries` (type: `array`):

Optional list of search keywords to run in the same operation. Overrides "Search keyword" when provided.

## `eventUrls` (type: `array`):

Ticketmaster event page URLs to fetch full details for (used when operation is "productDetails"). Copy these from the Ticketmaster site or from this Actor's own search results.

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

Maximum number of events to return per search keyword. Set to 0 for unlimited. Not applied to "Get event details" - every requested URL is always fetched.

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

Proxy settings for the run. Ticketmaster's event detail pages run bot-detection that a Residential proxy clears far more reliably than datacenter IPs, so Residential is used by default.

## Actor input object example

```json
{
  "operation": "search",
  "domain": "ticketmaster.com",
  "query": "concerts",
  "queries": [],
  "eventUrls": [
    {
      "url": "https://www.ticketmaster.com/staind-break-the-cycle-25th-anniversary-wantagh-new-york-09-14-2026/event/1D00643DB15A498C"
    }
  ],
  "maxItems": 20,
  "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 = {
    "operation": "search",
    "domain": "ticketmaster.com",
    "query": "concerts",
    "eventUrls": [
        {
            "url": "https://www.ticketmaster.com/staind-break-the-cycle-25th-anniversary-wantagh-new-york-09-14-2026/event/1D00643DB15A498C"
        }
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/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 = {
    "operation": "search",
    "domain": "ticketmaster.com",
    "query": "concerts",
    "eventUrls": [{ "url": "https://www.ticketmaster.com/staind-break-the-cycle-25th-anniversary-wantagh-new-york-09-14-2026/event/1D00643DB15A498C" }],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/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 '{
  "operation": "search",
  "domain": "ticketmaster.com",
  "query": "concerts",
  "eventUrls": [
    {
      "url": "https://www.ticketmaster.com/staind-break-the-cycle-25th-anniversary-wantagh-new-york-09-14-2026/event/1D00643DB15A498C"
    }
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call mrdoe/ticketmaster-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrdoe/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/c86QJkiIr38m8mDXg/builds/toXSf254h96jbOyIV/openapi.json
