# SeatGeek Scraper | Events, Performers, Venues & Listings (`lentic_clockss/seatgeek-scraper`) Actor

Scrape SeatGeek events, performers, venues and full ticket listings with prices, deal scores, sections and rows. Track price drops with webhook alerts. US & Canada, no API key needed.

- **URL**: https://apify.com/lentic\_clockss/seatgeek-scraper.md
- **Developed by:** [kane liu](https://apify.com/lentic_clockss) (community)
- **Categories:** Developer tools, Automation, E-commerce
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.20 / 1,000 result written to datasets

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

## SeatGeek Scraper | Events, Performers, Venues & Listings

Scrape **SeatGeek events, performers, venues, and full ticket listings** — prices with and without fees, deal scores, sections and rows — without an API key, proxies, or your own browser stack.

Paste a city, performer, venue, category, or event URL → get clean structured rows in the dataset. Enable **price tracking** to diff ticket inventory between runs and get **price-drop alerts** on your webhook. Covers **US & Canada**. A practical **SeatGeek API alternative** for ticket price monitoring, deal hunting, market research, and event aggregation.

**No SeatGeek API key needed.** Anti-bot (DataDome), residential egress, and browser sessions are handled by the managed scrape worker — you just run the Actor.

Free Apify-plan users (developer policy): **10 runs** / **200 results** per run.

***

### Features

| Capability | What it means for you |
| --- | --- |
| Full ticket-listing inventory | Every listing for an event: section, row, quantity, price, price with fees, deal score/grade, ticket format — typically hundreds of listings per event, sorted cheapest first |
| Real SeatGeek deal scores | `dealScore` (0–100) and `dealGrade` come from SeatGeek's own data, not a derived estimate |
| Price & inventory tracking | `trackChanges` snapshots listings per run and diffs by listing ID: new listings, sold listings, price drops/increases with old vs new price |
| Price-drop webhook alerts | `alertWebhookUrl` gets a JSON POST only when something moves — plug into Slack, Discord, Make, or n8n |
| Section summary | `sectionSummary[]` aggregates per-section min/avg/max price and best deal score |
| Deal-score filter | `minDealScore` keeps only listings above your threshold while preserving the true inventory count |
| Discovery mode | Search performers, venues, taxonomies, and events via SeatGeek's public API — fast (~1s), no browser |
| US & Canada | Verified in Toronto, Montreal, Vancouver + all major US metros; prices in local currency (USD/CAD) |
| No API key, no proxies | Credentials, residential egress, and DataDome handling are built in |
| Venue street / leads | Every row includes `phones`, `emails`, `address` (street = 门牌), `org`. SeatGeek publishes the street on list cards; **no venue phone/email**. `hi@seatgeek.com` is SeatGeek, not stamped on event rows. |
| Engine ladder | Bright Data Scraping Browser → stealth browser → unlocker → public API fallback, chosen automatically per target |

***

### What you can do with it

#### 1. Track ticket prices and get drop alerts

**In plain English:** pick an event → the Actor snapshots its ticket listings every run → when prices drop or seats sell, you get a webhook alert.

**You give:**

| Field | What to enter |
| --- | --- |
| Mode | `event` |
| Event URL | The SeatGeek event page URL |
| Track changes | `true` |
| Alert webhook URL | Your endpoint (optional) |

**You get back (per run):**

| What | Example |
| --- | --- |
| New listings | 11 appeared since last run |
| Sold listings | 15 gone (sales-velocity signal) |
| Price drops | 15 listings cheaper, biggest −34% ($296.90 → $195.89) |
| Price changes | Top 50 moves with old/new price and % change |

Schedule it (e.g. every 15 minutes) to build price history over time. Verified live: a 4-minute gap between runs surfaced 11 new / 15 sold listings and a −34% drop.

#### 2. Find underpriced tickets with deal scores

**In plain English:** pull an event's full listing inventory → filter to listings with `dealScore ≥ 80` → see only the seats SeatGeek itself flags as great deals, with section, row, and all-in price.

**You give:** mode `event`, an event URL, `minDealScore: 80`.

**You get back:** the filtered listings (e.g. 26 of 258), `sectionSummary` per section, and `unfilteredTotal` so you always know the true inventory size.

#### 3. Monitor a whole city or team

**In plain English:** scrape upcoming events for a city, performer, venue, or category → get dates, venues, price ranges, and ticket counts for your market research or aggregation pipeline.

**You give:** mode `city` + `chicago` (or `performer` + `new-york-yankees`, `venue` + `fenway-park`, `category` + `mlb-tickets`).

**You get back (one row per event):**

| Title | Date | Venue | Lowest price | Listings |
| --- | --- | --- | --- | --- |
| Yankees vs. Red Sox | 2026-08-10 19:05 | Yankee Stadium | $45 | 342 |
| ... | ... | ... | ... | ... |

#### 4. Discover performers, venues, and event IDs

**In plain English:** find slugs and IDs for your scraping targets — search "boston red sox" → get the performer slug, popularity, and upcoming event count in about a second.

**You give:** mode `discover`, `discoverType: performers|venues|taxonomies|events`, a query.

**You get back:** matching performers/venues/taxonomies/events with IDs, slugs, and metadata — ready to feed into the other modes.

***

### More Actors like this

Need data from other sites? Use a **specialized Actor** when one exists — structured fields, better coverage, lower cost.

#### General tools

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper) — Cloudflare-protected pages, any URL list
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

#### Dedicated site scrapers by category

**Jobs & Freelance**

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)

**E-commerce**

- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)

**Real Estate**

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)

**Travel & Stays**

- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

**Social, Ads & Maps**

- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

→ See the full catalog in [Related Actors](#related-actors) below, or browse [apify.com/lentic\_clockss](https://apify.com/lentic_clockss).

***

### How to use (no code required)

1. Click **"Try for Free"** at the top of this page
2. Pick a **mode**: `city`, `performer`, `venue`, `category`, `sports`, `event`, or `discover`
3. Enter the slug or URL (e.g. city `nyc`, performer `taylor-swift`, or a full event URL)
4. *(Optional)* For an event, keep **Include ticket listings** on to get the full inventory with deal scores
5. *(Optional)* Turn on **Track changes** + add a webhook URL for price-drop alerts
6. Click **Start** — results appear in the Dataset tab

**Download your results as CSV, Excel, or JSON.** That's it.

Not sure which slug to use? Run `discover` mode first — it finds performer/venue slugs and event IDs in about a second.

***

### What you get back

Every event row includes:

- **Event ID, title, type** — e.g. `18239007`, `Yankees vs. Red Sox`, `mlb`
- **Date/time** — local and UTC
- **Venue** — name, city, state/country
- **Price stats** — lowest / highest / median price, listing count
- **URL** — direct SeatGeek event page
- **Venue contact / leads** — `phones`, `emails`, `address` (street = venue 门牌/line), `geo`, `person`, `org`, `web`, `leadSource`, `leadReveal`, `leadAbsences` (see below)

With **Include ticket listings** (event mode), each row also carries:

- **`listings[]`** — every ticket listing: section, row, quantity, `price`, `priceWithFees`, `dealScore`, `dealGrade`, `ticketFormat`, `listingId` — sorted by all-in price, cheapest first
- **`sectionSummary[]`** — per-section listing count, min/avg/max price, best deal score
- **`venueConfig`** — seat-map configuration when the event page render succeeds

With **Track changes**, each row gains a **`changes`** object:

| Field | Meaning |
| --- | --- |
| `newListings` / `addedListingIds` | New supply since the previous run |
| `soldListings` / `soldListingIds` | Listings gone — a sales-velocity proxy |
| `priceDrops` / `priceIncreases` | Count of per-listing price moves |
| `priceChanges` | Top 50 moves with `oldPrice`, `newPrice`, `changePct` (drops first) |
| `firstSnapshot` | `true` on the first sighting of an event (baseline, no diff) |

***

### Lead / contact fields

Every dataset row includes these keys (empty arrays/objects plus `leadAbsences` when the site has no value). Samples below are live public values from 2026-08-19 recon — not redacted.

| Field | Type | What it means on SeatGeek |
| --- | --- | --- |
| `phones` | `[{value, type, e164?}]` | **本站无.** Venue/event JSON has no `phone`/`telephone`. Madison Square Garden venue HTML + `cmsContent` scanned: no box-office number, no `tel:`, no show-phone control. Always `[]` with `leadAbsences.phones=本站无`. |
| `emails` | `[{value, type}]` | **本站无** on venue/event rows. Sitewide JSON-LD `Organization.email` is `hi@seatgeek.com` (SeatGeek). That address is **not** copied onto event rows. |
| `address` | `{street, unit, locality, region, postalCode, country, full}` | Venue street. **`unit` = 门牌** in the lead schema; SeatGeek stores the building/street in `street` (`venue.address`), so `unit` is null. US sample: `4 Pennsylvania Plaza`, New York, NY `10001`. Also `226 West 46th Street` (Richard Rodgers Theatre). Canada: `888 Yonge Street`, Toronto, ON `M4W 2J2`. |
| `geo` | `{lat, lng}` | Venue coordinates (supplement to street). MSG `40.7509, -73.9943`. |
| `person` | `{name, role}` | No named box-office agent (`本站无`). Performer is an org, not a person. |
| `org` | `{name, id?}` | Venue name + numeric id (Madison Square Garden / `93`), or the performer name on discover-performer rows. |
| `web` | `{website, socials[]}` | Venue/performer SeatGeek URL. `socials` stays empty: `venue.links=[]`; footer Facebook/Twitter/Instagram is SeatGeek's. |
| `leadSource` | enum | `search` (city/category/performer lists), `entity` (venue / discover-venues), `detail` (event). |
| `leadReveal` | enum | Street is **already visible** in `__NEXT_DATA__`. No click-to-reveal XHR. |
| `leadAbsences` | object | Per-subfield reason: `本站无` / `闸门锁` / `未验证`. |

#### Reveal cost

- **No click-to-reveal XHR** for phones or emails. List cards already include the street.
- `enrichDetails` (default **true**) attaches the lead keys from the venue object already in the page JSON. Fetching `/venues/{slug}/tickets` again does **not** add a phone (verified on Madison Square Garden).
- Help/About have no Call-us control. `/contact` redirects to `/help`.
- Turning `enrichDetails` off still leaves the worker attaching the same keys (the street is not behind a second fetch). Phones remain `[]` with `leadAbsences`.

#### Honest limitations

| Lead | Status | Why |
| --- | --- | --- |
| Venue street + geo | Available | `venue.address` on city/category/venue/performer/event JSON |
| Venue phone | 本站无 | No key, no tel:, no reveal button on venue HTML |
| Venue email | 本站无 | No mailbox; do not stamp `hi@seatgeek.com` |
| Named box-office person | 本站无 | No agent field |
| Performer phone / email / own social | 本站无 | `performer.links=[]`; footer social is SeatGeek |
| Help public phone | 本站无 | Help Center has articles, no tel |
| UK / other TLDs | 未验证 | `seatgeek.co.uk` not opened this session |
| Listings body schema | 部分 | `/api/event_listings_v2` path seen; body not stored |

***

### Pricing

**Pay per run + pay per result.** No subscription; Apify platform usage is covered by the developer — you only pay the event charges below. Pricing effective from **August 22, 2026**.

| What triggers a charge | Price |
| --- | --- |
| Actor start | $0.005 per run |
| Result written to dataset | from $0.003 per row (see plan tiers) |

Per-result price by Apify plan:

| Plan | Per 1,000 results |
| --- | --- |
| Free / Bronze | $3.00 |
| Silver | $2.60 |
| Gold | $2.20 |
| Platinum | $2.00 |
| Diamond | $1.60 |

| Volume (Free/Bronze) | Estimated cost |
| --- | --- |
| 100 results | ~$0.305 |
| 1,000 results | ~$3.005 |
| 10,000 results | ~$30.005 |

**How this compares:** other SeatGeek Actors charge $10 per 1,000 events without row-level listings; building your own DataDome-proof pipeline means weeks of browser/proxy work. This Actor is pay-as-you-go with the full ticket inventory included.

**Example:** tracking one event every 15 minutes costs $0.005 per run (start) plus $0.003 for the event row — about **$0.80/day** for 96 snapshots with full inventory diffs.

> Failed or blocked pages are not written to the dataset, so you never pay for empty results.

***

### Connect to your tools

Use this Actor from your existing stack — no coding needed:

| Platform | How to connect |
| --- | --- |
| **Make.com** | Search "Apify" → "Run Actor" → Actor ID: `lentic_clockss/seatgeek-scraper` |
| **n8n** | Add Apify node → "Run Actor" action → same Actor ID |
| **Zapier** | Apify integration → "Run Actor" trigger |
| **LangChain** | `ApifyActorsTool("lentic_clockss/seatgeek-scraper")` |
| **Python / Node.js** | Apify SDK or direct HTTPS call |

#### API call example

```
curl "https://api.apify.com/v2/acts/lentic_clockss~seatgeek-scraper/runs" \
  -X POST \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "event", "eventUrl": "https://seatgeek.com/new-york-yankees-tickets/mlb/2026-08-10-7-05-pm/18239007", "trackChanges": true}'
```

Results come back in JSON via the Apify Dataset API:

```
GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
```

***

### FAQ

**Q: Do I need a SeatGeek API key?**
A: No. Unlike Actors built on the official SeatGeek API (which requires registering for a client ID — and which has no ticket listings), this Actor is batteries-included: credentials, egress, and anti-bot handling are built in.

**Q: What is the deal score?**
A: `dealScore` (0–100) and `dealGrade` are SeatGeek's own value ratings for each listing — higher means a better price for that seat relative to the market. Use `minDealScore` to keep only strong deals.

**Q: How is this different from the SeatGeek API?**
A: The official API returns event metadata but **no ticket listings**. This Actor gives you the full resale inventory per event (section, row, all-in prices, deal scores), per-listing price tracking, and discovery search — none of which the API offers.

**Q: Does it work for Canada?**
A: Yes. Verified in Toronto, Montreal, and Vancouver; other Canadian city slugs (calgary, edmonton, ottawa, winnipeg) work the same way. Prices come in local currency (`currency.code` = USD or CAD).

**Q: How do I track ticket prices over time?**
A: Enable `trackChanges`, add an `alertWebhookUrl`, and put the Actor on an [Apify Schedule](https://docs.apify.com/platform/schedules). Each run diffs the event's listings against the previous snapshot and posts an alert when prices drop or inventory moves.

**Q: Why does an event run take 60–90 seconds with listings?**
A: SeatGeek protects listing data with DataDome. The Actor loads the event page in a real browser session (Bright Data Scraping Browser) and captures the listings feed in-page. Discovery mode and metadata-only runs are much faster.

**Q: What happens when a page is blocked?**
A: The Actor fails over through an engine ladder (Scraping Browser → stealth browser → unlocker → public API). If listings can't be fetched, the event row is still returned with full metadata — you never get a silent empty result.

**Q: Can I get events for a whole city or team?**
A: Yes — use `city`, `performer`, `venue`, `category`, or `sports` mode with `maxResults` up to 500 and `maxPages` for pagination.

**Q: What happens if a performer or search has no upcoming events?**
A: The run succeeds with zero dataset rows — a valid empty answer, not a failure. You are only charged the $0.005 start; with no rows written, no per-result charges apply. Genuine errors (blocked pages, bad input) still fail the run with an `ERROR_SUMMARY`.

**Q: Where do venue addresses and phone numbers come from?**
A: List cards already include the street (`venue.address`, e.g. `4 Pennsylvania Plaza`). SeatGeek does not publish a venue box-office phone or email on city, venue, or event pages. Rows still include `phones`/`emails` keys as empty arrays plus `leadAbsences`. Platform email `hi@seatgeek.com` is SeatGeek's, not the venue's.

***

### Input reference

For developers who want full control:

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `mode` | string | `city` | `city`, `performer`, `venue`, `event`, `category`, `sports`, or `discover` |
| `city` | string | `nyc` | City slug for `mode=city` — US (`nyc`, `la`, `chicago`, …) and Canada (`toronto`, `montreal`, `vancouver`, …) |
| `cityTab` | string | — | City filter: `concerts`, `sports`, `theater`, `festivals`, `comedy`, `family`, `nightlife` |
| `performerSlug` | string | — | Performer/team slug for `mode=performer`, e.g. `new-york-yankees` |
| `venueSlug` | string | — | Venue slug for `mode=venue`, e.g. `madison-square-garden` |
| `eventId` | string | — | Numeric event ID for `mode=event` |
| `eventUrl` | string | — | Full event URL for `mode=event` (ID derived if missing) |
| `categorySlug` | string | — | Category for `mode=category`/`sports`, e.g. `sports-tickets`, `mlb-tickets` |
| `maxResults` | integer | `20` | Max events to emit (1–500; free tier capped at 200) |
| `maxPages` | integer | `1` | Max listing pages to fetch (1–50) |
| `includeListings` | boolean | `true` | `mode=event`: fetch full ticket-listing inventory (~60–90s per event) |
| `enrichDetails` | boolean | `true` | Attach lead keys (street/org). SeatGeek has no venue phone; does not invent numbers |
| `minDealScore` | number | — | Keep only listings with `dealScore` ≥ threshold (0–100); `unfilteredTotal` preserves the true count |
| `trackChanges` | boolean | `false` | `mode=event`: snapshot listings and diff against the previous run |
| `alertWebhookUrl` | string | — | With `trackChanges`: POST a JSON alert when prices drop or inventory moves |
| `discoverType` | string | `performers` | `mode=discover`: `performers`, `venues`, `taxonomies`, or `events` |
| `query` | string | — | `mode=discover`: search text (optional for `taxonomies`) |
| `startUrls` | array | — | Explicit SeatGeek URLs; mode inferred per URL |
| `detailUrls` | array | — | Event detail URLs (alias of `startUrls`) |
| `listingIds` | array | — | Numeric event IDs |
| `workerBaseUrl` | string | — | Override worker origin (advanced) |

Full output schema is available in the Dataset tab.

***

### Related Actors

All **77** public Actors from [lentic\_clockss](https://apify.com/lentic_clockss). Click a name to open the Store detail page.

#### Jobs & Freelance

- [LinkedIn Jobs Scraper](https://apify.com/lentic_clockss/linkedin-jobs-scraper)
- [Bayt Jobs Scraper](https://apify.com/lentic_clockss/bayt-scraper)
- [Fiverr Gigs Scraper](https://apify.com/lentic_clockss/fiverr-programming-tech-gigs-scraper)
- [Freelancer.com Scraper](https://apify.com/lentic_clockss/freelancer-scraper)
- [Glassdoor Scraper](https://apify.com/lentic_clockss/glassdoor-scraper)
- [Himalayas Jobs Scraper](https://apify.com/lentic_clockss/himalayas-jobs-scraper)
- [Indeed Jobs Scraper](https://apify.com/lentic_clockss/indeed-jobs-scraper)
- [Jobicy Remote Jobs Scraper](https://apify.com/lentic_clockss/jobicy-remote-jobs-scraper)
- [RemoteOK Jobs Scraper](https://apify.com/lentic_clockss/remoteok-all-jobs-scraper)
- [SEEK Jobs Scraper](https://apify.com/lentic_clockss/seek-scraper)
- [Upwork Jobs Scraper](https://apify.com/lentic_clockss/upwork-jobs-scraper)

#### Real Estate

- [Zillow & Zumper Scraper](https://apify.com/lentic_clockss/us-real-estate-scraper)
- [Realtor.com Scraper](https://apify.com/lentic_clockss/realtor-com-scraper)
- [99.co Scraper](https://apify.com/lentic_clockss/ninetynine-co-sg-scraper)
- [Realtor.com Agents Scraper](https://apify.com/lentic_clockss/realtor-com-agents-scraper)
- [Apartments.com Rental Scraper](https://apify.com/lentic_clockss/apartments-com-rental-scraper)
- [Bayut Scraper](https://apify.com/lentic_clockss/bayut-uae-scraper)
- [Craigslist Housing Scraper](https://apify.com/lentic_clockss/craigslist-housing-scraper)
- [Daft.ie Scraper](https://apify.com/lentic_clockss/daft-property-scraper)
- [Dot Property Scraper](https://apify.com/lentic_clockss/dot-property-th-scraper)
- [FINN.no Scraper](https://apify.com/lentic_clockss/finn-scraper)
- [Funda Scraper](https://apify.com/lentic_clockss/funda-scraper)
- [Hepsiemlak Scraper](https://apify.com/lentic_clockss/hepsiemlak-scraper)
- [Idealista Scraper](https://apify.com/lentic_clockss/idealista-scraper)
- [Immobiliare.it Scraper](https://apify.com/lentic_clockss/immobiliare-property-scraper)
- [ImmoScout24 Scraper](https://apify.com/lentic_clockss/immobilienscout24-scraper)
- [Naver Land Scraper](https://apify.com/lentic_clockss/naver-land-scraper)
- [OpenSooq Scraper](https://apify.com/lentic_clockss/opensooq-real-estate-scraper)
- [Otodom Scraper](https://apify.com/lentic_clockss/otodom-scraper)
- [Property Finder Scraper](https://apify.com/lentic_clockss/property-finder-uae-scraper)
- [PropertyGuru Scraper](https://apify.com/lentic_clockss/propertyguru-sg-scraper)
- [realestate.com.au Scraper](https://apify.com/lentic_clockss/realestate-com-au-scraper)
- [Realtor.ca Scraper](https://apify.com/lentic_clockss/realtor-ca-scraper)
- [Rightmove Scraper](https://apify.com/lentic_clockss/rightmove-property-scraper)
- [SeLoger Scraper](https://apify.com/lentic_clockss/seloger-property-scraper)
- [SUUMO Scraper](https://apify.com/lentic_clockss/suumo-property-scraper)
- [Zillow Group Scraper](https://apify.com/lentic_clockss/zillow-group-scraper)

#### E-commerce

- [Shopee Search Scraper](https://apify.com/lentic_clockss/shopee-search-scraper)
- [E-commerce Scraper](https://apify.com/lentic_clockss/ecommerce-scraper)
- [1688 Global Product Search Scraper](https://apify.com/lentic_clockss/1688-global-scraper)
- [Allegro Scraper](https://apify.com/lentic_clockss/allegro-scraper)
- [Amazon Search Scraper](https://apify.com/lentic_clockss/amazon-search-results-collector)
- [ASOS Product Scraper](https://apify.com/lentic_clockss/asos-scraper)
- [Cdiscount Product Scraper](https://apify.com/lentic_clockss/cdiscount-scraper)
- [Costco Product Scraper](https://apify.com/lentic_clockss/costco-scraper)
- [Coupang Product Scraper](https://apify.com/lentic_clockss/coupang-scraper)
- [Etsy Scraper](https://apify.com/lentic_clockss/etsy-scraper)
- [Lazada Scraper](https://apify.com/lentic_clockss/lazada-ph-search-results-collector)
- [MercadoLibre Scraper](https://apify.com/lentic_clockss/mercadolibre-scraper)
- [Mercari Japan Scraper](https://apify.com/lentic_clockss/mercari-scraper)
- [Rakuten Japan Scraper](https://apify.com/lentic_clockss/rakuten-scraper)
- [SHEIN Product Scraper](https://apify.com/lentic_clockss/shein-scraper)
- [Target Product Scraper](https://apify.com/lentic_clockss/target-scraper)
- [Temu Product Scraper](https://apify.com/lentic_clockss/temu-scraper)
- [Walmart Product Scraper](https://apify.com/lentic_clockss/walmart-scraper)

#### Travel & Stays

- [Booking.com & Airbnb Scraper](https://apify.com/lentic_clockss/booking-airbnb-scraper)
- [Agoda Scraper](https://apify.com/lentic_clockss/agoda-scraper)
- [Airbnb Listings Scraper](https://apify.com/lentic_clockss/airbnb-listings-scraper)
- [Booking.com Hotels Scraper](https://apify.com/lentic_clockss/booking-hotels-scraper)
- [Despegar Scraper](https://apify.com/lentic_clockss/despegar-scraper)
- [Expedia Scraper](https://apify.com/lentic_clockss/expedia-scraper)
- [Traveloka Scraper](https://apify.com/lentic_clockss/traveloka-scraper)
- [Travelstart Flights Scraper](https://apify.com/lentic_clockss/travelstart-scraper)
- [Trip.com Scraper](https://apify.com/lentic_clockss/trip-com-scraper)
- [TripAdvisor Scraper](https://apify.com/lentic_clockss/tripadvisor-scraper)

#### Social & Content

- [TikTok Scraper](https://apify.com/lentic_clockss/tiktok-scraper)
- [Reddit Scraper](https://apify.com/lentic_clockss/reddit-scraper)
- [YouTube Shorts Scraper](https://apify.com/lentic_clockss/youtube-shorts-scraper)
- [YouTube Research Scraper](https://apify.com/lentic_clockss/youtube-research-scraper)
- [Hacker News Scraper](https://apify.com/lentic_clockss/hacker-news-scraper)

#### Ads Intelligence

- [Facebook Ad Library Scraper](https://apify.com/lentic_clockss/facebook-ad-library-scraper)
- [Google Ads Transparency VN](https://apify.com/lentic_clockss/google-ads-transparency-center-vn)
- [TikTok Ads Scraper](https://apify.com/lentic_clockss/tiktok-ads-top-ads-actor)

#### Local & Maps

- [Google Maps Scraper](https://apify.com/lentic_clockss/google-maps-scraper)

#### General Tools

- [Stealth Web Scraper](https://apify.com/lentic_clockss/stealth-web-scraper)
- [Email Risk Validator](https://apify.com/lentic_clockss/email-risk-validator)
- [Phone Number Intelligence](https://apify.com/lentic_clockss/phone-number-intelligence)

→ Browse the full profile: [apify.com/lentic\_clockss](https://apify.com/lentic_clockss)

# Actor input Schema

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

city | performer | venue | event | category | sports | discover

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

SeatGeek city slug, e.g. nyc, la, sf, chicago, boston, austin. Canada works too: toronto, montreal, vancouver, calgary, edmonton, ottawa. Used for mode=city.

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

Filter city events: concerts, sports, theater, festivals, comedy, family, nightlife.

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

Performer/team slug, e.g. new-york-yankees or taylor-swift. For mode=performer.

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

Venue slug, e.g. madison-square-garden. For mode=venue.

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

SeatGeek numeric event id for mode=event.

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

Full SeatGeek event URL for mode=event (eventId derived if missing).

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

Category landing, e.g. sports-tickets, concert-tickets, mlb-tickets.

## `maxResults` (type: `integer`):

Maximum events to emit (1-500). Free-tier capped at 200.

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

Maximum listing pages to fetch.

## `includeListings` (type: `boolean`):

For mode=event: fetch the full ticket-listing inventory (section, row, quantity, prices with/without fees, deal score/grade, ticket format) via a Bright Data Scraping Browser session (~60-90s per event). If the session fails, event metadata is still returned without listings.

## `enrichDetails` (type: `boolean`):

Attach lead keys (phones, emails, address, person, org). SeatGeek list/venue JSON already includes street address; venue pages have no public phone/email (本站无). Default on. Does not invent numbers or copy SeatGeek's hi@seatgeek.com onto event rows.

## `minDealScore` (type: `number`):

For mode=event with includeListings: keep only listings with dealScore >= this value (0-100). The row keeps unfilteredTotal with the true inventory count.

## `trackChanges` (type: `boolean`):

For mode=event with includeListings: snapshot listings to a persistent store and diff against the previous run — adds a changes object (newListings, soldListings, priceDrops, priceChanges). Schedule the Actor to build price history over time.

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

With trackChanges: POST a JSON alert to this URL when prices drop or inventory moves (never on the first snapshot).

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

For mode=discover: what to search via SeatGeek's public API (fast, no browser).

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

For mode=discover: search text, e.g. 'boston red sox', 'fenway', 'mlb'. Optional for taxonomies (returns the full tree).

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

Explicit SeatGeek URLs; mode is inferred per URL.

## `detailUrls` (type: `array`):

Event detail URLs (alias of startUrls for event LDP).

## `listingIds` (type: `array`):

SeatGeek numeric event ids.

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

Override Cloud Run worker origin (allowlisted HTTPS). Default from Actor env.

## Actor input object example

```json
{
  "mode": "city",
  "city": "nyc",
  "cityTab": "concerts",
  "performerSlug": "new-york-yankees",
  "venueSlug": "madison-square-garden",
  "categorySlug": "sports-tickets",
  "maxResults": 20,
  "maxPages": 1,
  "includeListings": true,
  "enrichDetails": true,
  "trackChanges": false,
  "discoverType": "performers",
  "query": "boston red sox"
}
```

# Actor output Schema

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

One row per event (search modes) or per discovered performer/venue/category (discover mode), with ticket price stats and, in event mode, the full ticket listings inventory.

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

JSON summary of the run: mode, counts, warnings and worker diagnostics.

# 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("lentic_clockss/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("lentic_clockss/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 lentic_clockss/seatgeek-scraper --silent --output-dataset

```

## MCP server setup

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