{
  "openapi": "3.0.1",
  "info": {
    "title": "Kalshi Weather Index – Minute Temperature Data for 10 Cities",
    "description": "Kalshi's official minute-by-minute city temperature index, the series that settles its hourly and daily temperature markets. One row per minute per city, with status and station count. Public API, no login. Pay per 1,000 points delivered.",
    "version": "0.1",
    "x-build-id": "hwtYTc3IsynraR05C"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gratified_ashram~kalshi-weather-index/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gratified_ashram-kalshi-weather-index",
        "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/gratified_ashram~kalshi-weather-index/runs": {
      "post": {
        "operationId": "runs-sync-gratified_ashram-kalshi-weather-index",
        "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/gratified_ashram~kalshi-weather-index/run-sync": {
      "post": {
        "operationId": "run-sync-gratified_ashram-kalshi-weather-index",
        "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": {
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Kalshi index city IDs. Leave empty for all ten.",
            "items": {
              "type": "string",
              "enum": [
                "miami",
                "dfw",
                "houston",
                "phl-delaware-valley",
                "puget-sound",
                "sf-bay",
                "greater-boston",
                "southeast-michigan",
                "kansas-city",
                "minneapolis-st-paul"
              ],
              "enumTitles": [
                "Miami",
                "Dallas–Fort Worth",
                "Houston",
                "Philadelphia / Delaware Valley",
                "Seattle / Puget Sound",
                "San Francisco Bay",
                "Greater Boston",
                "Detroit / Southeast Michigan",
                "Kansas City",
                "Minneapolis–St. Paul"
              ]
            }
          },
          "lastHours": {
            "title": "Trailing window (hours)",
            "minimum": 1,
            "maximum": 168,
            "type": "integer",
            "description": "How many hours back from now to pull, per city. 1–168. Ignored when from/to are set. 60 points per hour per city.",
            "default": 24
          },
          "from": {
            "title": "From (ISO time or unix ms)",
            "type": "string",
            "description": "Optional window start, e.g. 2026-09-01T00:00:00Z. Use with To."
          },
          "to": {
            "title": "To (ISO time or unix ms)",
            "type": "string",
            "description": "Optional window end. Defaults to now."
          },
          "detailed": {
            "title": "Per-station readings",
            "type": "boolean",
            "description": "Attach every member station's reading and quality-control disposition to each point (Kalshi's detailed=true). Larger rows, same price.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum points",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Cost cap per run. 1,000 points = one city for about 17 hours.",
            "default": 20000
          },
          "archiveDatasetName": {
            "title": "Archive dataset name",
            "type": "string",
            "description": "Also append points to a named dataset in your account (e.g. kalshi-weather-index). Schedule hourly and you keep a history Kalshi only serves as a window."
          },
          "compact": {
            "title": "Compact rows (one per city per hour)",
            "type": "boolean",
            "description": "Group the minutes of each hour into one row per city with a minutes array plus min/max. 60× fewer dataset rows, same data, same price (per index point). Good for archiving.",
            "default": false
          },
          "archiveOnly": {
            "title": "Archive only",
            "type": "boolean",
            "description": "With an archive dataset set: write only to the archive, not to this run's dataset. Halves storage writes on scheduled runs.",
            "default": false
          },
          "alignToHour": {
            "title": "Align window to full hours",
            "type": "boolean",
            "description": "End the window at the last completed hour instead of now. With lastHours 1 on a schedule at minute 10, each run covers exactly the previous hour.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}