# Cheapest Stubhub Scraper (`serp.cheap.ofc/cheapest-stubhub-scraper`) Actor

Scrape StubHub events by keyword, location or performer, plus an event's full live ticket listings and a whole-venue priced seat map. Pay per result — no start fee, no subscription.

- **URL**: https://apify.com/serp.cheap.ofc/cheapest-stubhub-scraper.md
- **Developed by:** [serp.cheap](https://apify.com/serp.cheap.ofc) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.30 / 1,000 discovery events

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Cheapest StubHub Scraper

Scrape **StubHub** — one of the world's biggest secondary ticket marketplaces — at the lowest price
per result on the Apify Store. Find events by keyword or location, list every event for a performer or
team, and pull an event's **full live ticket listings**: real prices, section/row/seat, ticket type,
face value and StubHub's own deal & seat-quality scores.

**Pay per result, no start fee, no subscription.**

> ⚠️ **Residential proxy required for `event` mode (live prices).** Pulling live per-seat prices needs a
> **residential** proxy. The discovery modes (`search` / `explore` / `performer`) run fine on the
> default proxy. See **Proxy** below.

### Why this one

#### How we compare

| Actor | Live per-seat prices | Whole-venue seat map | Price/event | Start fee |
|-------|:---:|:---:|---|---|
| **Cheapest StubHub Scraper (this)** | ✅ | ✅ *(157-section priced map + histogram)* | **$0.085** live · **$0.0013** discovery | **$0** |
| easyapi/stubhub-event-price-scraper | ✅ | ❌ | $0.09 | $0.00005 |
| lulzasaur/stubhub-scraper | partial | ❌ | $0.008 | $0.00005 |
| benthepythondev/stubhub-scraper | ❌ (discovery) | ❌ | $0.003 | $0.00005 |
| shahidirfan/stubhub-event-scraper | ❌ (from-price) | ❌ | $0.00149 | $0.0005 |
| chimerical/stubhub-scraper | partial | ❌ | $0.005 | **$0.05** |

We're the **cheapest that returns real live per-seat prices** (just under easyapi), the **only** one
with a whole-venue priced seat map + histogram, and the **cheapest discovery** on the Store — with a
**$0 start fee** (several rivals charge $0.0005–$0.05 just to launch). The cheaper $0.0015–$0.008
actors are discovery/from-price only: they can't return per-seat prices.

- **Live ticket prices + seat locations.** The `event` mode returns the actual listing grid — every
  ticket on sale with its price, section, row, ticket type and deal score. Most StubHub actors stop at
  event discovery; this one reads the money data.
- **Cheap where it can be.** Discovery (`search` / `explore` / `performer`) runs on the default proxy,
  so those results are priced to be the cheapest on the Store. Live prices are pulled only when you
  actually need them.
- **Graceful on blocks.** The actor retries `event` fetches until one succeeds, and never charges for a
  blocked/empty result.
- **Self-monitored.** Every run reports upstream health, so changes on StubHub's side are caught early.

### Modes

Set `mode` in the input:

#### `search` — events by keyword

`{ "mode": "search", "term": "taylor swift" }`
Returns matching events (id, name, date, venue, location) plus performers/venues that match.

#### `event` — live prices + seats *(headline)*

`{ "mode": "event", "eventUrls": ["https://www.stubhub.com/.../event/160262128/"] }`
Returns event meta (venue, date, true venue-wide min/max/average price, live view count) plus:

- **the listing grid** — each ticket's price, section, row, seat, ticket type, face value, deal score,
  seat-quality score, StubHub quality tags and "view from seat" photo;
- **a whole-venue priced seat map** (`seatMap.sections`) — for every one of the venue's sections: its
  cheapest price, ticket count, deal & seat-quality score and category (cheapest / best-value / etc).
  This covers the *entire* venue in one shot, not just the listings page. Set `includeSeatMapRows` for
  the per-row breakdown;
- **a price-distribution histogram** mapping price bands to sections.

Requires a residential proxy and retries until it succeeds.

#### `explore` — events near a location

`{ "mode": "explore", "latitude": "40.7127753", "longitude": "-74.0059728", "tlcId": 3 }`
Browse upcoming events near a point. Optional `tlcId` (1 Sports · 3 Concerts · 1023 Festivals) and
`catId` filters.

#### `performer` — all events for a performer/team

`{ "mode": "performer", "performerUrls": ["https://www.stubhub.com/bts-tickets/performer/1503185"] }`

#### `selftest` — free health check

Probes each upstream and reports which are healthy. No charge.

### Output

Discovery rows are flat event cards. An `event` row carries the full `listings[]` array. See the
dataset "Overview" view for the key columns, or export everything as JSON/CSV/Excel.

### Proxy

- **Discovery (`search` / `explore` / `performer`)** works on the default Apify proxy — no residential
  needed.
- **`event` mode requires a RESIDENTIAL proxy.** The actor retries until it succeeds and **never charges
  for a blocked result**.
- **Currency follows the proxy country.** StubHub localizes prices to the exit IP's country, so the
  actor pins the proxy to `countryCode` (default **US → USD**). Set `countryCode` to price in another
  market's currency.
- Provide your own `proxyConfiguration` to override the defaults.

### Pricing

Pay-per-event, platform usage absorbed, $0 start fee. See [PRICING.md](./PRICING.md).

| Event | Price | Charges for |
|-------|-------|-------------|
| `discovery-event` | **$0.0013** | one event from `search` / `explore` / `performer` |
| `event-detail` | **$0.085** | one event's full listing grid + whole-venue seat map + histogram |

Blocked / selftest / error rows are **free**.

# Actor input Schema

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

What to scrape. 'search' = events by keyword. 'event' = one event's full live ticket listings (prices + seats). 'explore' = browse events near a location. 'performer' = all events for a performer/team. 'selftest' = free upstream health check.

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

Keyword for 'search' mode (artist, team, event). Also accepted as the single ref for 'event'/'performer' when it's a URL/id.

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

StubHub event page URLs (or bare numeric event ids) to pull live ticket listings for. Used by 'event' mode.

## `performerUrls` (type: `array`):

StubHub performer/team page URLs (or bare numeric performer ids). Used by 'performer' mode.

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

Latitude for 'explore' mode (browse events near a point). E.g. 40.7127753 for New York.

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

Longitude for 'explore' mode. E.g. -74.0059728 for New York.

## `tlcId` (type: `integer`):

Optional explore filter: 1=Sports, 2=... , 3=Concerts, 1023=Festivals.

## `catId` (type: `integer`):

Optional explore filter by a specific category id.

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

Two-letter country for the proxy exit IP — StubHub localizes prices to that country's currency. Default US (→ USD).

## `includeSeatMap` (type: `boolean`):

Include the whole-venue priced seat map (per-section min price, inventory, deal & seat-quality score) in event results. On by default — no extra charge.

## `includeSeatMapRows` (type: `boolean`):

Also include the per-ROW priced breakdown (hundreds of rows). Off by default — verbose.

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

Cap on events (discovery modes) or listings-bearing events (event mode).

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

The default Apify proxy works for discovery (search/explore/performer); the 'event' mode (live prices + seat map) requires a residential proxy.

## `debug` (type: `boolean`):

Verbose per-request logging for troubleshooting.

## Actor input object example

```json
{
  "mode": "search",
  "eventUrls": [
    "https://www.stubhub.com/bts-east-rutherford-tickets-8-1-2026/event/160262128/"
  ],
  "countryCode": "US",
  "includeSeatMap": true,
  "includeSeatMapRows": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debug": false
}
```

# Actor output Schema

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

No description

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

No description

## `seatmap` (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 = {
    "eventUrls": [
        "https://www.stubhub.com/bts-east-rutherford-tickets-8-1-2026/event/160262128/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("serp.cheap.ofc/cheapest-stubhub-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 = { "eventUrls": ["https://www.stubhub.com/bts-east-rutherford-tickets-8-1-2026/event/160262128/"] }

# Run the Actor and wait for it to finish
run = client.actor("serp.cheap.ofc/cheapest-stubhub-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 '{
  "eventUrls": [
    "https://www.stubhub.com/bts-east-rutherford-tickets-8-1-2026/event/160262128/"
  ]
}' |
apify call serp.cheap.ofc/cheapest-stubhub-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=serp.cheap.ofc/cheapest-stubhub-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/jy2RnQLAQ51QfCVqa/builds/yEsosbi1c9O8slbDc/openapi.json
