{
  "openapi": "3.0.1",
  "info": {
    "title": "Polymarket Weather Markets Scraper - Daily High/Low Temp Odds",
    "description": "For weather traders and forecasters: every Polymarket daily high/low temperature bracket with Yes price, live bid/ask, volume, city, date, station and result. 3,124 brackets in 51 cities on 2026-09-21. Compare the odds with Kalshi or your forecast in one table.",
    "version": "0.1",
    "x-build-id": "dM3wmEak7AvA2FnsM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~polymarket-weather-markets/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-polymarket-weather-markets",
        "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~polymarket-weather-markets/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-polymarket-weather-markets",
        "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~polymarket-weather-markets/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-polymarket-weather-markets",
        "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": "Cities to read, one per line, as Polymarket names them, for example NYC, London, Chicago, Tokyo or Seoul. Case, accents and the part in brackets do not matter (Seoul and Incheon both match 'Seoul (Incheon)'; New York matches NYC). Leave the list empty to read every city (51 cities on 2026-09-21). A city with no daily temperature market comes back as a free 'unknown-city' row that lists the cities Polymarket has right now. A repeated city is read and charged once.",
            "items": {
              "type": "string"
            }
          },
          "temperatureTypes": {
            "title": "Highest and/or lowest temperature",
            "type": "array",
            "description": "high = 'Highest temperature in <city> on <date>' markets, low = 'Lowest temperature in <city> on <date>' markets. Empty = both.",
            "items": {
              "type": "string",
              "enum": [
                "high",
                "low"
              ],
              "enumTitles": [
                "Daily highest temperature",
                "Daily lowest temperature"
              ]
            }
          },
          "marketStatus": {
            "title": "Market status",
            "enum": [
              "open",
              "closed"
            ],
            "type": "string",
            "description": "open = markets Polymarket lists as open (usually today, tomorrow and the day after; events whose end date is more than 3 days past are left out, because Polymarket leaves some old ones marked open without prices). closed = finished markets with the result (the bracket that resolved Yes), newest first, limited by closedWithinDays.",
            "default": "open"
          },
          "closedWithinDays": {
            "title": "Closed: ended within the last N days",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Used with marketStatus closed: only events whose end date is within the last N days. Empty = 7. At most 7 in monitoring mode. Ignored for open."
          },
          "liveOrderBook": {
            "title": "Read yes bid and ask from the live order book",
            "type": "boolean",
            "description": "On = yesBid and yesAsk of open markets come from Polymarket's order book (clob.polymarket.com), read in batches of 200 markets at the time of the run (pricesFrom = clob-order-book). Off, or if the order book cannot be read, they come from Polymarket's market data (pricesFrom = gamma-market-data), which can lag the order book: on 2026-09-21, 4 of 22 NYC brackets differed, one by 9 cents. No extra charge.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum market rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "With monitoring off, the run stops once this many market rows (one row per temperature bracket) have been returned, and a free row says what was not returned. Free rows do not count. In monitoring mode it does not limit the changed markets returned.",
            "default": 1000
          },
          "monitoringMode": {
            "title": "Monitoring mode: return only markets that changed since the last run",
            "type": "boolean",
            "description": "Off = every bracket comes back, charged per row. On = the Actor remembers, per event (one city, one date, highest or lowest), each bracket's displayed Yes price, last trade price, volume, status and result, and later runs return only brackets where one of these changed, plus newly listed brackets. The first run returns every bracket once as a baseline. In monitoring mode every event read costs $0.30 per 1,000 checks, changes or not (events skipped as stale and failed requests are free), plus the row price for the brackets returned. A city usually has 2 or 3 dates open at once, so 2 cities with high and low are about 12 events per run. Example: 12 events every 10 minutes = 51,840 checks a month = $15.55, plus the brackets that changed. The Actor reads only as many events as the run's maximum total charge can pay for with a check and one row each. Do not put the same city in two schedules that can run at the same time.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Forget what was remembered and start over",
            "type": "boolean",
            "description": "Clears every remembered market for this Actor, so the next monitoring run returns every bracket again as a first check. This affects all your monitoring runs, because markets are remembered per event rather than per list. Turn it off again after one run: left on in a schedule, every run returns every bracket again and charges for it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}