{
  "openapi": "3.0.1",
  "info": {
    "title": "SeatGeek Scraper | Events, Performers, Venues & Listings",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "89qiXtl6cbCobeTb4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~seatgeek-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-seatgeek-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/lentic_clockss~seatgeek-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-seatgeek-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/lentic_clockss~seatgeek-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-seatgeek-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "city",
              "performer",
              "venue",
              "event",
              "category",
              "sports",
              "search",
              "discover"
            ],
            "type": "string",
            "description": "city | performer | venue | event | category | sports | search | discover",
            "default": "city"
          },
          "city": {
            "title": "City slug",
            "type": "string",
            "description": "SeatGeek city slug, e.g. nyc, la, sf, chicago, boston, austin. Canada works too: toronto, montreal, vancouver, calgary, edmonton, ottawa. Used for mode=city.",
            "default": "nyc"
          },
          "cityTab": {
            "title": "City tab filter",
            "enum": [
              "concerts",
              "sports",
              "theater",
              "festivals",
              "comedy",
              "family",
              "nightlife"
            ],
            "type": "string",
            "description": "Filter city events: concerts, sports, theater, festivals, comedy, family, nightlife."
          },
          "performerSlug": {
            "title": "Performer slug",
            "type": "string",
            "description": "Performer/team slug, e.g. new-york-yankees or taylor-swift. For mode=performer."
          },
          "venueSlug": {
            "title": "Venue slug",
            "type": "string",
            "description": "Venue slug, e.g. madison-square-garden. For mode=venue."
          },
          "eventId": {
            "title": "Event ID",
            "type": "string",
            "description": "SeatGeek numeric event id for mode=event."
          },
          "eventUrl": {
            "title": "Event URL",
            "type": "string",
            "description": "Full SeatGeek event URL for mode=event (eventId derived if missing)."
          },
          "categorySlug": {
            "title": "Category slug",
            "type": "string",
            "description": "Category landing, e.g. sports-tickets, concert-tickets, mlb-tickets."
          },
          "maxResults": {
            "title": "Max results per input",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum Dataset rows for each listed start/detail URL or event ID; a scalar city, performer, venue, event, category, sports, search, or discover target counts as one input. Default 70. Larger values are collected in parts of 70. Event and ticket-listing rows count together. The run stops at your maximum total charge. Free Apify plan: 200 rows per run and 10 runs.",
            "default": 70
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum catalog pages to inspect while finding events.",
            "default": 1
          },
          "includeListings": {
            "title": "Include ticket listings",
            "type": "boolean",
            "description": "Return one separately billed Dataset row per ticket listing. Event fields are copied onto every listing row, rowType is listing, and id is the unique listing ID. Ticket-listing rows count toward maxResults for their input.",
            "default": false
          },
          "includeSeatMap": {
            "title": "Include seat map",
            "type": "boolean",
            "description": "Attach venueId/venueConfigId/mapConfigId, all sections, row lines and GeoJSON URLs. Match concrete listing seats to actual mapkey geometry even when the complete GeoJSON is too large to inline. GA and missing seats are never invented.",
            "default": false
          },
          "enrichDetails": {
            "title": "Enrich venue contact (leads)",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "minDealScore": {
            "title": "Minimum deal score",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "For mode=event with includeListings: keep only listings with dealScore >= this value (0-100). The row keeps unfilteredTotal with the true inventory count."
          },
          "listingFilters": {
            "title": "Client-side inventory filters",
            "type": "object",
            "description": "Optional minPrice/maxPrice (including fees), quantity (must be an available split), sections, markets, deliveryMethods, and sort=price|priceDesc|dealScore. The worker fetches the full per-event inventory once, then filters locally; sourceTotal and unfilteredTotal remain visible. Filtered results do not overwrite complete tracking snapshots."
          },
          "eventHints": {
            "title": "Historical event identities",
            "type": "object",
            "description": "Optional object keyed by old event ID, each value containing title, venueId and datetimeUtc. Only after both inventory and event metadata return 404, look for a unique same-venue candidate within one day and title similarity >=0.85. Ambiguous matches are not substituted; candidate provenance is reported."
          },
          "performerId": {
            "title": "Performer ID",
            "type": "string",
            "description": "Required when discoverType=performerSections."
          },
          "includeRaw": {
            "title": "Include original event/entity data",
            "type": "boolean",
            "description": "Preserve full public event/entity fields in raw. Listing rawFields and complete inventory metadata are always retained. Large full-event JSON is delivered losslessly through run key-value-store attachments, with a reference in the Dataset row.",
            "default": false
          },
          "trackChanges": {
            "title": "Track price/inventory changes",
            "type": "boolean",
            "description": "Compare complete unfiltered inventories between explicitly requested runs. Partial, filtered or blocked inventories never replace the baseline. removedListings (legacy alias soldListings) means absent from the snapshot, not a confirmed sale. No background polling is started.",
            "default": false
          },
          "alertWebhookUrl": {
            "title": "Alert webhook URL (optional)",
            "type": "string",
            "description": "With trackChanges: POST a JSON alert to this URL when prices drop or inventory moves (never on the first snapshot)."
          },
          "discoverType": {
            "title": "Discover type",
            "enum": [
              "performers",
              "venues",
              "taxonomies",
              "events",
              "recommendations",
              "performerSections"
            ],
            "type": "string",
            "description": "For mode=discover: what to search via SeatGeek's public API (fast, no browser).",
            "default": "performers"
          },
          "query": {
            "title": "Search / discover query",
            "type": "string",
            "description": "For mode=search (required): keyword search across events, performers and venues via SeatGeek autosuggest. For mode=discover: optional filter text, e.g. 'boston red sox', 'fenway', 'mlb'."
          },
          "startUrls": {
            "title": "Start URLs (override)",
            "type": "array",
            "description": "Explicit SeatGeek URLs; mode is inferred per URL.",
            "items": {
              "type": "string"
            }
          },
          "detailUrls": {
            "title": "Detail URLs",
            "type": "array",
            "description": "Event detail URLs (alias of startUrls for event LDP).",
            "items": {
              "type": "string"
            }
          },
          "listingIds": {
            "title": "Event IDs",
            "type": "array",
            "description": "SeatGeek numeric event ids.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}