Chicago weather forecast API: live temperature nowcast and daily high forecast for Chicago
Chicago weather forecast API: live temperature nowcast and daily high forecast for Chicago Midway (KMDW), with calibrated probability the temperature ends above/below any Fahrenheit strike. KMDW is the official settlement station for Kalshi KXHIGHCHI and Polymarket Chicago daily high temperature prediction markets. Built for AI agents trading weather prediction markets or needing real-time weather data. $0.05 with live 3h thermal-memory telemetry (out-of-sample nowcast RMSE 0.94F); $0.01 degraded fallback (RMSE 1.21F). Free catalog: https://runwayoracle.com/catalog.json. Model-conditional estimates; not financial advice.
Provider
runwayoracle.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xCc42Ed39a06b6cF3f484307eF76B88Bf56Fb305f",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"strikeF": 75
},
"type": "http"
},
"output": {
"example": {
"asOf": "2026-07-02T00:00:00.000Z",
"meta": {
"disclaimer": "Model-conditional statistical estimate; not financial advice.",
"mode": "thermal-memory",
"oosNowcastRmseF": 0.94
},
"projection": {
"baselineF": 70.752,
"basisSpreadF": -8.261,
"projectedTmpF": 62.491,
"sigmaF": 1.242
},
"station": "MDW",
"strike": {
"pAbovePct": 1,
"pBelowPct": 100,
"strikeF": 75
}
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"strikeF": {
"description": "Optional strike temperature in degrees F (-80..140); response then includes calibrated P(above)/P(below).",
"type": "number"
}
},
"required": [],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://runwayoracle.com/v1/oracle/v3/mdw-edge" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://runwayoracle.com/v1/oracle/v3/mdw-edge");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://runwayoracle.com/v1/oracle/v3/mdw-edge")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/4819.json, and this resource appears in /discovery/resources and /discovery/search.