{
  "openapi": "3.0.1",
  "info": {
    "title": "Kalshi Prediction Markets Scraper",
    "description": "Kalshi Prediction Markets Scraper SD - Kalshi Prediction Markets Scraper is a market data tool that extracts Kalshi event contracts by keyword, category, series, event, ticker or weather city: yes/no bid and ask, implied probability, volume, open interest, rules, order book and trades.",
    "version": "1.0",
    "x-build-id": "3OC910okceQIDmCfT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neuro-scraper~kalshi-prediction-markets-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neuro-scraper-kalshi-prediction-markets-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/neuro-scraper~kalshi-prediction-markets-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neuro-scraper-kalshi-prediction-markets-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/neuro-scraper~kalshi-prediction-markets-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neuro-scraper-kalshi-prediction-markets-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Kalshi's own site search, one keyword per line, e.g. bitcoin, fed rate, super bowl. Every event the search lists is read with all its markets.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Kalshi categories, read from Kalshi's own category list on every run: Politics, Elections, Economics, Financials, Crypto, Climate and Weather, Sports, Entertainment, Companies, Science and Technology, Health, World, Commodities, Mentions ... Events come in Kalshi's volume order (most traded first).",
            "items": {
              "type": "string"
            }
          },
          "seriesTickers": {
            "title": "Series tickers",
            "type": "array",
            "description": "Kalshi series tickers, e.g. KXHIGHNY (NYC daily high temperature), KXBTCD (Bitcoin daily price), KXFED. Every event of the series in the chosen status is read with the platform's cursor.",
            "items": {
              "type": "string"
            }
          },
          "eventTickers": {
            "title": "Event tickers",
            "type": "array",
            "description": "Exact events, e.g. KXHIGHNY-26OCT09 or KXNEWPOPE-70.",
            "items": {
              "type": "string"
            }
          },
          "marketTickers": {
            "title": "Market tickers (watchlist)",
            "type": "array",
            "description": "Exact markets, e.g. KXHIGHNY-26OCT09-B73.5.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Kalshi URLs",
            "type": "array",
            "description": "Kalshi market pages: https://kalshi.com/markets/kxhighny (a series) or https://kalshi.com/markets/kxhighny/highest-temperature-in-nyc/kxhighny-26oct09 (one event).",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Weather cities",
            "type": "array",
            "description": "US cities for Kalshi's weather markets, e.g. NYC, Chicago, Miami, Austin, Denver, Los Angeles, Philadelphia, Houston. The weather series that name the city are read from Kalshi's series list on every run.",
            "items": {
              "type": "string"
            }
          },
          "metrics": {
            "title": "Weather metrics (with Weather cities)",
            "type": "array",
            "description": "Which weather series to read for each city: daily high temperature, daily low temperature, rain, snow.",
            "items": {
              "type": "string",
              "enum": [
                "high",
                "low",
                "rain",
                "snow"
              ],
              "enumTitles": [
                "Daily high temperature",
                "Daily low temperature",
                "Rain",
                "Snow"
              ]
            },
            "default": [
              "high",
              "low"
            ]
          },
          "mode": {
            "title": "Output shape",
            "enum": [
              "markets",
              "events"
            ],
            "type": "string",
            "description": "markets = one row per market (bracket); events = one row per event with every market nested, the favourite, overround and fair (overround-free) probabilities.",
            "default": "markets"
          },
          "status": {
            "title": "Market status",
            "enum": [
              "open",
              "unopened",
              "closed",
              "settled",
              "any"
            ],
            "type": "string",
            "description": "open = trading now; unopened = listed, not trading yet; closed = trading ended, result not final; settled = final result; any = every status. Settled history works best with a series, city, event or ticker.",
            "default": "open"
          },
          "dateFrom": {
            "title": "Market date from",
            "type": "string",
            "description": "YYYY-MM-DD. Only events dated on or after this day (the date in the event ticker, e.g. KXHIGHNY-26OCT07 = 2026-10-07; otherwise the close date)."
          },
          "dateTo": {
            "title": "Market date to",
            "type": "string",
            "description": "YYYY-MM-DD. Only events dated on or before this day."
          },
          "lookbackDays": {
            "title": "Lookback days (closed / settled)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only markets that closed in the last N days (Kalshi's min_close_ts filter). 0 = no limit.",
            "default": 0
          },
          "closesWithinHours": {
            "title": "Closes within (hours)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Only markets that close within N hours from now (Kalshi's max_close_ts filter). 0 = no limit.",
            "default": 0
          },
          "minVolume": {
            "title": "Min volume (contracts)",
            "minimum": 0,
            "type": "integer",
            "description": "Only markets with at least this lifetime volume (filtered after reading).",
            "default": 0
          },
          "minVolume24h": {
            "title": "Min 24h volume",
            "minimum": 0,
            "type": "integer",
            "description": "Only markets with at least this 24-hour volume (filtered after reading).",
            "default": 0
          },
          "minOpenInterest": {
            "title": "Min open interest",
            "minimum": 0,
            "type": "integer",
            "description": "Only markets with at least this open interest (filtered after reading).",
            "default": 0
          },
          "minYesPrice": {
            "title": "Min implied probability (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only markets whose implied probability (yes mid price, else last price) is at least this percent, e.g. 10.",
            "default": 0
          },
          "maxYesPrice": {
            "title": "Max implied probability (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only markets whose implied probability is at most this percent, e.g. 90.",
            "default": 100
          },
          "minLiquidity": {
            "title": "Min order-book liquidity (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only markets with at least this many dollars resting in the order book levels read (price x size, both sides). Reads the order book of every market.",
            "default": 0
          },
          "onlyPriced": {
            "title": "Only markets with prices",
            "type": "boolean",
            "description": "Skip markets that have never traded and have no yes bid.",
            "default": false
          },
          "requireLiveQuote": {
            "title": "Require a live two-sided quote",
            "type": "boolean",
            "description": "Keep only markets with both a yes bid and a yes ask right now.",
            "default": false
          },
          "includeOrderbook": {
            "title": "Include order book",
            "type": "boolean",
            "description": "Adds the order book (yes and no bids: price + size) and its dollar liquidity per market. One extra request per market (markets shape).",
            "default": false
          },
          "orderbookDepth": {
            "title": "Order book depth",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Price levels per side.",
            "default": 10
          },
          "includeTrades": {
            "title": "Include recent trades",
            "type": "boolean",
            "description": "Adds the market's most recent trades (time, contracts, yes / no price, taker side), newest first, following Kalshi's trade cursor. Markets shape.",
            "default": false
          },
          "tradesPerMarket": {
            "title": "Trades per market",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Most trades added per market with 'Include recent trades'.",
            "default": 20
          },
          "includeRules": {
            "title": "Include full settlement rules",
            "type": "boolean",
            "description": "Adds the secondary rules text and the early-close condition (the primary rule is always in 'rules').",
            "default": false
          },
          "allMarkets": {
            "title": "All markets (no keyword needed)",
            "type": "boolean",
            "description": "With no keyword, category, series, event, ticker or city: read Kalshi's full event list in the chosen status (use the date, close-time and volume filters to narrow it).",
            "default": false
          },
          "includeCombos": {
            "title": "Include combo (multi-leg) markets",
            "type": "boolean",
            "description": "With 'All markets': Kalshi's raw market list is mostly multi-leg sports combos (100 of the first 100 open markets, measured); they are skipped unless this is on.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Most rows in the dataset (markets, or events in the events shape); each row is one result. Lists follow Kalshi's cursor until this number or the end.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Kalshi's public API answered without a proxy in our tests; residential proxy (US) is the default.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}