# SeatGeek Scraper (`hoholabs/seatgeek-scraper`) Actor

Fetch events, performers, venues, and genres from the SeatGeek public API. Requires a free SeatGeek client ID.

- **URL**: https://apify.com/hoholabs/seatgeek-scraper.md
- **Developed by:** [Hoho](https://apify.com/hoholabs) (community)
- **Categories:** Other
- **Stats:** 16 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## SeatGeek Scraper

Search events, performers, venues, and genres from the SeatGeek public API. A free client ID is required.

Fetches data from the [SeatGeek API](https://seatgeek.com/account/develop): event listings, performer profiles, venue details, and genre taxonomy.

### Why this scraper?

- **Free client ID** — register at seatgeek.com/account/develop instantly
- **Nine query modes** — browse/search events, performer and venue lookups, geo-search, and more
- **Great pricing data** — lowest price, average price, and listing count per event
- **Geo-search** — find events near a lat/lon with a configurable radius

### Setup

1. Register at [seatgeek.com/account/develop](https://seatgeek.com/account/develop) for a free client ID
2. Paste your client ID into the `clientId` input field (or set the `SEATGEEK_CLIENT_ID` environment variable)

### What you can fetch

- **Browse events** — full event feed with geo, date, type, and sort filters
- **Search events** — keyword search across event names
- **Events by performer** — all upcoming shows for a specific performer
- **Events by venue** — all upcoming shows at a specific venue
- **Single performer** — detail record by ID
- **Performer directory** — search performers with optional genre filter
- **Single venue** — detail record by ID
- **Venue directory** — search venues by city/state/country
- **Genres** — full genre taxonomy

### Usage

#### Browse events near a location

```json
{ "queryType": "browse", "lat": 40.7128, "lon": -74.0060, "range": "10mi" }
```

#### Search for events by keyword

```json
{ "queryType": "search", "q": "Radiohead", "dateFrom": "2026-04-01", "dateTo": "2026-12-31" }
```

#### Get all upcoming shows for a performer

```json
{ "queryType": "performer-events", "performerId": "26468" }
```

#### Get all events at a venue

```json
{ "queryType": "venue-events", "venueId": "2101" }
```

#### Search performers by genre

```json
{ "queryType": "performers", "genre": "rock" }
```

#### Get the full genre list

```json
{ "queryType": "genres" }
```

### Input fields

| Field | Type | Description |
|---|---|---|
| `clientId` | string | SeatGeek client ID (or set `SEATGEEK_CLIENT_ID` env var) |
| `queryType` | select | See query types above (default: `browse`) |
| `q` | string | Search query for events, performers, or venues |
| `performerId` | string | SeatGeek performer ID. Required for `performer-events` or `performer` |
| `venueId` | string | SeatGeek venue ID. Required for `venue-events` or `venue` |
| `lat` | number | Latitude for geo-search |
| `lon` | number | Longitude for geo-search |
| `range` | string | Geo search radius (e.g. `10mi`, `25km`) |
| `dateFrom` | string | Start of date range in `YYYY-MM-DD` format |
| `dateTo` | string | End of date range in `YYYY-MM-DD` format |
| `city` | string | Filter venues by city |
| `state` | string | Filter venues by state abbreviation (e.g. `NY`) |
| `country` | string | Filter venues by country code (e.g. `US`) |
| `genre` | string | Filter performers by genre slug |
| `type` | string | Filter events by type (e.g. `concert`, `sports`) |
| `sort` | string | Sort order (e.g. `score.desc`, `datetime_utc.asc`) |
| `perPage` | integer | Results per page (default 10) |
| `page` | integer | Page number, 1-based (default 1) |

### Output

Each run pushes one item per event, performer, or venue to the dataset.

| Field | Description |
|---|---|
| `id` | SeatGeek ID |
| `title` | Event, performer, or venue name |
| `datetime_local` | Event local datetime (ISO 8601) |
| `datetime_utc` | Event UTC datetime (ISO 8601) |
| `venue` | Venue object (name, city, state, country, lat, lon) |
| `performers` | Array of performers on the bill |
| `stats` | Ticket stats (lowest\_price, average\_price, listing\_count) — **SeatGeek's public API no longer populates this** (upstream returns an empty object as of July 2026); passed through as-is but will be absent |
| `url` | SeatGeek page URL |
| `queryType` | Query type that produced this item |

### Use cases

- **Concert discovery** — browse and search a large cross-platform event catalog
- **Price comparison** — combine with Vivid Seats and Ticketmaster for cross-platform price data
- **Geo-targeted feeds** — find events within a radius of any location
- **Performer tracking** — monitor tour dates for specific artists
- **Genre browsing** — filter performers and events by music genre

***

This scraper is not affiliated with SeatGeek. Please use responsibly and in accordance with SeatGeek's terms of service.

# Actor input Schema

## `queryType` (type: `string`):

What to fetch: browse events, search events by keyword, events by performer, events by venue, single performer detail, performer directory, single venue detail, venue directory, genre list.

## `q` (type: `string`):

Text to search for events or filter performers/venues by name.

## `dateFrom` (type: `string`):

Start of date range in YYYY-MM-DD format.

## `dateTo` (type: `string`):

End of date range in YYYY-MM-DD format.

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

Filter events by type (e.g. concert, sports, theater).

## `lat` (type: `number`):

Latitude for geo-search (pair with lon and range).

## `lon` (type: `number`):

Longitude for geo-search (pair with lat and range).

## `range` (type: `string`):

Search radius for geo queries (e.g. 10mi, 25km).

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

Sort results (e.g. score.desc, datetime\_utc.asc).

## `perPage` (type: `integer`):

Number of results per page (default 10).

## `page` (type: `integer`):

Page number for pagination (1-based).

## `performerId` (type: `string`):

SeatGeek performer ID (numeric). Required for queryType=performer or performer-events.

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

SeatGeek venue ID (numeric). Required for queryType=venue or venue-events.

## `genre` (type: `string`):

Filter performers by genre slug (use queryType=genres to list options).

## `city` (type: `string`):

Filter venues by city name.

## `state` (type: `string`):

Filter venues by US state abbreviation (e.g. NY, CA).

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

Filter venues by country code (e.g. US, GB).

## `apiKey` (type: `string`):

Optional. Leave blank to use the shared key (subject to a shared limit). To avoid limits, provide your own free client\_id from seatgeek.com/account/develop — your runs will then use your own quota.

## Actor input object example

```json
{
  "queryType": "browse",
  "perPage": 10,
  "page": 1
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("hoholabs/seatgeek-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("hoholabs/seatgeek-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 '{}' |
apify call hoholabs/seatgeek-scraper --silent --output-dataset

```

## MCP server setup

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