{
  "openapi": "3.0.1",
  "info": {
    "title": "Kalshi Trades Scraper & Monitor - Large Trades, Order Book",
    "description": "Kalshi Trades as rows: time, market, Yes and No price, contracts, USD amount and taker side. Filter by market, event, series, trade size or time. Optional order book row per market. Monitoring mode returns only trades made since the last run, such as 1,000+ contract trades.",
    "version": "0.1",
    "x-build-id": "za1hPeWAbB72Stsne"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~kalshi-trades-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-kalshi-trades-monitor",
        "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/neverempty~kalshi-trades-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-kalshi-trades-monitor",
        "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/neverempty~kalshi-trades-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-kalshi-trades-monitor",
        "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": {
          "tickers": {
            "title": "Market tickers",
            "type": "array",
            "description": "Kalshi market tickers, one per line (for example KXFEDDECISION-26OCT-H0). Each market is checked first; a ticker Kalshi does not know comes back as a free row that says so. Leave all three ticker fields empty to read the trades of every market.",
            "items": {
              "type": "string"
            }
          },
          "eventTickers": {
            "title": "Event tickers",
            "type": "array",
            "description": "Kalshi event tickers, one per line (for example KXFEDDECISION-26OCT). Trades of every market of the event are returned.",
            "items": {
              "type": "string"
            }
          },
          "seriesTickers": {
            "title": "Series tickers",
            "type": "array",
            "description": "Kalshi series tickers, one per line (for example KXFEDDECISION or KXBTCD). Trades of every market of the series are returned. A series with more than 100 markets needs a time filter (Last hours or Since) or monitoring mode.",
            "items": {
              "type": "string"
            }
          },
          "minContracts": {
            "title": "Minimum contracts per trade",
            "minimum": 0,
            "type": "integer",
            "description": "Only trades of at least this many contracts. Leave empty for no minimum. Contracts of combination (parlay) markets often cost under one cent, so for large trades by money use the dollar minimum below."
          },
          "minAmountUsd": {
            "title": "Minimum amount per trade (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only trades where the taker paid at least this many dollars (contracts x the price of the taker's side), for example 1000 for large trades only. Leave empty for no minimum."
          },
          "takerSide": {
            "title": "Taker side",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Only trades where the taker took this side.",
            "default": "any"
          },
          "lastHours": {
            "title": "Last hours",
            "type": "string",
            "description": "Only trades made in the last this many hours (for example 1, 24 or 0.5). Use this or Since, not both. Not used in monitoring mode."
          },
          "since": {
            "title": "Since",
            "type": "string",
            "description": "Only trades made at or after this time, for example 2026-10-05 or 2026-10-05T14:00:00Z (UTC). Not used in monitoring mode."
          },
          "until": {
            "title": "Until",
            "type": "string",
            "description": "Only trades made before this time (UTC). Not used in monitoring mode."
          },
          "maxResults": {
            "title": "Maximum trade rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many trade rows. Without monitoring the newest trades come first; in monitoring mode the oldest new trades come first and the rest come at the next run.",
            "default": 1000
          },
          "includeOrderbook": {
            "title": "Add order book rows",
            "type": "boolean",
            "description": "Also return one row per market with the current order book: best Yes and No bid, the implied asks, the spread, the top price levels and their size. Covers the markets you named and the markets of the returned trades (in monitoring mode only the markets of the returned trades).",
            "default": false
          },
          "orderbookDepth": {
            "title": "Order book levels",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many price levels per side to return in an order book row.",
            "default": 10
          },
          "maxOrderbookMarkets": {
            "title": "Maximum order book rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Read the order book of at most this many markets in one run.",
            "default": 50
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new trades)",
            "type": "boolean",
            "description": "Run the same input on a schedule: the first run only remembers the starting point (no rows, no charge); every later run returns only trades made since the previous run that match the filters. Combine with a minimum amount or minimum contracts to follow large trades.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Reset monitoring memory",
            "type": "boolean",
            "description": "Forget the remembered starting point for these filters and start again from now.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}