{
  "openapi": "3.0.1",
  "info": {
    "title": "Ticketmaster Scraper - Events, Artists & Venues",
    "description": "Discover and scrape Ticketmaster events across the US, UK, Australia and Canada. Search by keyword, artist or venue, filter by city and date, or paste URLs directly. Includes incremental monitoring and resume support for ongoing event tracking.",
    "version": "0.1",
    "x-build-id": "oreP2Jgr24QwxubfJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~ticketmaster-event-discovery/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-ticketmaster-event-discovery",
        "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/abotapi~ticketmaster-event-discovery/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-ticketmaster-event-discovery",
        "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/abotapi~ticketmaster-event-discovery/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-ticketmaster-event-discovery",
        "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": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Search looks up events by keyword on one market. URL mode reads the Ticketmaster pages you paste.",
            "default": "search"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Search mode: a keyword, for example an artist, team, venue or city name.",
            "default": "concerts"
          },
          "market": {
            "title": "Market",
            "enum": [
              "us",
              "uk",
              "au",
              "ca",
              "ae",
              "at",
              "ch",
              "cz",
              "de",
              "dk",
              "fi",
              "it",
              "mx",
              "nz",
              "se",
              "za"
            ],
            "type": "string",
            "description": "Search mode: which Ticketmaster market to read. Each market has its own site and listings.",
            "default": "us"
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Search mode: result order. Relevance is the site default, date orders by start date."
          },
          "city": {
            "title": "City filter",
            "type": "string",
            "description": "Narrow rows to a venue city, state or country substring, for example Chicago or TX. Applied after the fetch."
          },
          "dateFrom": {
            "title": "Start date from",
            "type": "string",
            "description": "Keep events starting on or after this date (YYYY-MM-DD). Applied after the fetch."
          },
          "dateTo": {
            "title": "Start date to",
            "type": "string",
            "description": "Keep events starting on or before this date (YYYY-MM-DD). Applied after the fetch."
          },
          "startDate": {
            "title": "Start date from (alias)",
            "type": "string",
            "description": "Alias of dateFrom (YYYY-MM-DD); dateFrom wins when both are set."
          },
          "endDate": {
            "title": "Start date to (alias)",
            "type": "string",
            "description": "Alias of dateTo (YYYY-MM-DD); dateTo wins when both are set."
          },
          "urls": {
            "title": "Ticketmaster links",
            "type": "array",
            "description": "URL mode: one or more Ticketmaster search, venue or artist links. Event detail links cannot be read by automated clients and are skipped with a warning.",
            "default": [
              "https://www.ticketmaster.com/search?q=concerts",
              "https://www.ticketmaster.com/search?q=concerts&page=2",
              "https://www.ticketmaster.com/search?q=concerts&sort=date",
              "https://www.ticketmaster.com/hertz-arena-tickets-estero/venue/107143",
              "https://www.ticketmaster.com/barry-manilow-tickets/artist/735585",
              "https://www.ticketmaster.co.uk/search?q=coldplay",
              "https://www.ticketmaster.com.au/search?q=concerts",
              "https://www.ticketmaster.ca/search?q=hockey"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum event records returned. The only default cap: 0 means no limit.",
            "default": 20
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listing pages read per scope. 0 means no page cap set by you; the actor still stops at its built-in hard limit of 1000 pages per scope, or earlier at the natural end of the listing.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential connections are required for reliable reads (datacenter exits are refused at random). Free Apify plans do not include residential proxies; the run then continues on a backup connection. Bring your own proxy URLs if you prefer.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "resumeFromRunId": {
            "title": "Resume from run",
            "type": "string",
            "description": "Continue an interrupted crawl: record ids from this run or dataset id are skipped. See Incremental mode below."
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Track this search across runs: only new or changed events are returned, with changeType stamps. An event is UPDATED when any field of its record changes (title, dates, venue, artists, presale windows, status flags such as sold out, cancelled or postponed, image links), except fields you list under Ignore fields; the raw upstream object is never compared. Ticket prices are not part of the record. Cannot be combined with Resume from run when a baseline exists.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Custom baseline name for Incremental mode. Leave empty to derive one from the mode, market, query, filters and links; in search mode the pre-filled link list is ignored, and the ignore list and change scope are never part of it."
          },
          "emitUnchanged": {
            "title": "Emit unchanged",
            "type": "boolean",
            "description": "Incremental mode: also return unchanged events, with changeType UNCHANGED. Returned rows are billed as usual.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired",
            "type": "boolean",
            "description": "Incremental mode: also return events that vanished since the last run, with changeType EXPIRED. Only a complete scan can expire events: runs that were resumed, hit Max items or Max pages, or started from a link past the first page never do. A vanished listing may be a delisting or just a listing change. Returned rows are billed as usual.",
            "default": false
          },
          "changeScope": {
            "title": "What counts as a change (incremental mode only)",
            "enum": [
              "all",
              "priceAndStock"
            ],
            "type": "string",
            "description": "All fields (default): any change to the event record returns an UPDATED row. Availability only: only on-sale date, sold out, limited availability, ticketing status, cancelled, postponed, rescheduled and presale window changes return an UPDATED row; changes to title, venue, artists or images never do. Ticket prices are not part of the record.",
            "default": "all"
          },
          "compactUpdates": {
            "title": "Compact update rows (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. When on, UPDATED and EXPIRED rows are short: record id, event id, url, title, start date and current availability flags, plus priceChanges and variantChanges showing the old and new value of each moved availability field and presale window. NEW rows always carry the complete record.",
            "default": false
          },
          "expireAfterMissedScans": {
            "title": "Expire after N missed full scans (incremental mode only)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Only used with Emit expired. An event is marked EXPIRED only after it has been missing from this many complete scans in a row (default 1). A returning event resets the count. A vanished listing may be a delisting or a listing change; the status flags report sold out or cancelled events.",
            "default": 1
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Optional. Field names to exclude from UPDATED change detection, for example venueImageUrl or seatmapImageUrl if an image link keeps rotating. Use a dotted name such as presales.endDateTime to ignore a key inside every presale or artist element while the rest of the element is still compared. Ignored fields stay in the output. Changing this list does not mark saved events as updated.",
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output.",
            "items": {
              "type": "string"
            }
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which event pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}