🌡️ Weather Oracle API

Probabilistic daily maximum temperature forecasts for the 51 cities behind Polymarket weather markets. Multi-model ensemble (ECMWF, GFS, ICON, Météo-France, UKMO) with seasonal per-model bias correction, refreshed hourly.

Payment is the credential: x402 micropayments in USDC on Base. No accounts, no API keys.

Skip the months of data collection. The per-model bias correction behind this API is calibrated on years of paired forecast-vs-observed history, captured at the right lead hour every day — data that cannot be backfilled, only lived. $0.30/day (the all-cities bundle) buys all of it, plus the public track record to verify it.

EndpointPriceReturns
GET /forecast/{station}/point$0.005median max + 80% interval
GET /forecast/{station}/buckets$0.02p per actual market outcome + YES token IDs
GET /forecast/all/buckets$0.30bundle: all 51 cities, one call
GET /forecast/{station}/distribution$0.05full CDF, 0.1°C grid
GET /forecast/{station}/ensemble$0.01raw per-model members + spread
GET /climate/{station}$0.02monthly climatology 2021+, records

Free: /sample (a real, resolved buckets payload — exact format + our p vs what actually happened) · /markets (catalog: stations, units, next update) · /accuracy (verifiable 30-day track record — the exact product sold, scored at morning lead against observed maxima, no leakage) · /openapi.json (machine-readable spec with x402 metadata)

curl https://91-197-235-206.sslip.io/forecast/SBGR/buckets
# → 402 with x402 v2 challenge (USDC on Base); pay with any x402 client

Runnable examples (Python, MIT): github.com/czimbr/weather-oracle-examples — free catalog demo, a ~20-line paid request, and an edge table vs the live Polymarket book.

Optional ?date=YYYY-MM-DD (today through day+3, city-local). Bucket grid: 1°C international / 2°F US cities. Forecast prior only — model consensus, no proprietary execution signals. Listed on x402scan.