# Ticketmaster Events Scraper — Concerts, Sports & Theater (`jungle_synthesizer/ticketmaster-scraper`) Actor

Ticketmaster events scraper. Search by keyword, category or date range and get concerts, sports, theater and family events with start date and time zone, venue name, address and coordinates, performers, on-sale date, presales, sold-out, cancelled and postponed status, seat map and event URL.

- **URL**: https://apify.com/jungle_synthesizer/ticketmaster-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Travel, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 20.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 record scrapeds

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 Events Scraper — Concerts, Sports & Theater

Ticketmaster events scraper for [ticketmaster.com](https://www.ticketmaster.com). Search by keyword, category or date and get concerts, sports, theater and family events with start date and time zone, venue name, address and coordinates, performers, on-sale date, presales, sold-out, cancelled and postponed status, seat map and event URL.

No Ticketmaster API key or account is needed.

Ticket prices and seat inventory are **not** included. This actor returns the event catalog and its status, not what a ticket costs.

### What you get

Each event includes:

- **Event** — event ID, title, event page URL, category (`concerts`, `sports`, `arts-theater` or `family`)
- **Dates** — start in UTC, start in the venue's local time, the venue time zone, general on-sale date, and a flag for dates still to be announced
- **Status** — `on_sale`, `sold_out`, `limited_availability`, `cancelled`, `postponed` or `rescheduled`, plus an online-event flag
- **Venue** — name, street address, city, state or region, postal code, country code, latitude and longitude, venue page URL
- **Performers** — artist, team or act names and a lead image
- **Presales** — each presale window with its start time
- **Seat map** — seat map image URL

Postponed events often have no date; their start fields are `null` and `status` says why.

### Input

| Field        | Type    | Description |
|--------------|---------|-----------------------------------------------------------------------------------------------------------------------------------|
| `query`      | string  | Artist, team, show, venue or city, for example `Metallica`, `Lakers` or `Chicago`. Leave blank to browse by category and date. |
| `categories` | array   | Any of `concerts`, `sports`, `arts-theater`, `family`. Empty means every category. With a keyword, only events in the selected categories are kept. |
| `startDate`  | string  | Earliest event date, `YYYY-MM-DD`. Blank means no lower bound. |
| `endDate`    | string  | Latest event date, `YYYY-MM-DD`. Blank means no upper bound. |
| `maxItems`   | integer | Maximum number of events to return. |

#### Examples

- Everything on sale for one day: leave `query` and `categories` blank, set `startDate` and `endDate` the same day.
- One artist: `query` `Metallica`.
- Upcoming sports: `categories` `sports`, blank `query`. A category browse without dates covers the next 90 days.
- Concerts in a city next month: `query` `Chicago`, `categories` `concerts`, with a date range.

#### Large runs

Ticketmaster returns at most about 1,000 events for any one search and date range. When `maxItems` is above 800 the run is split into one date window per day, starting at `startDate` (today if blank) and running to `endDate` (30 days later if blank), up to 366 days, so a long range is covered completely instead of stopping at the first 1,000 events.

#### Resuming a large crawl

Every run stores a `resumeCursor` in its output. Paste it into the `resumeCursor` input of a new run to continue where the previous run stopped, without returning or paying for events already delivered.

### Example output

```json
{
  "event_id": "17006455FF52D575",
  "title": "Metallica: Life Burns Faster",
  "url": "https://www.ticketmaster.com/metallica-life-burns-faster-las-vegas-nevada-10-24-2026/event/17006455FF52D575",
  "category": "concerts",
  "start_date_utc": "2026-10-25T03:30:00Z",
  "start_date_local": "2026-10-24T20:30",
  "time_zone": "America/Los_Angeles",
  "status": "on_sale",
  "venue_name": "Sphere",
  "venue_city": "Las Vegas",
  "venue_state": "NV",
  "performers": ["Metallica"]
}
```

### Notes

- The category filter combined with a keyword is applied to the results of that keyword, so a narrow keyword plus a narrow category can return fewer events than `maxItems`.
- Events listed by Ticketmaster partners keep the partner's event URL.
- Data reflects what Ticketmaster shows at the time of the run; rescheduled and cancelled events are returned with their status rather than dropped.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Artist, team, show, venue or city to search for, for example Metallica, Lakers or Chicago. Leave blank to browse by category and date instead.

## `categories` (type: `array`):

Restrict results to these Ticketmaster categories. Leave empty for every category.

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

Earliest event date to include, YYYY-MM-DD. Leave blank for no lower bound (a category browse without dates starts today).

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

Latest event date to include, YYYY-MM-DD. Leave blank for no upper bound. Ticketmaster returns at most about 1,000 events per search window, so large runs are split into one window per day (up to 366 days from the start date).

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

Maximum number of events to return

## Actor input object example

```json
{
  "sp_contact": "Share your email here...",
  "query": "concert",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (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 = {
    "sp_contact": "Share your email here...",
    "query": "concert",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/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 = {
    "sp_contact": "Share your email here...",
    "query": "concert",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/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 '{
  "sp_contact": "Share your email here...",
  "query": "concert",
  "maxItems": 10
}' |
apify call jungle_synthesizer/ticketmaster-scraper --silent --output-dataset

```

## MCP server setup

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