Polymarket Weather Markets Dashboard

Live odds, order book, METAR observations & ensemble forecasts for 36+ cities. Pick a city to start trading.

Choose a City

HTTP API

The only public HTTP API is GET /api/weather/snapshots (free, JSON). Other /api/* URLs are for the PolyNimbus web app in the browser only; direct programmatic access to them returns 404.

Public endpoint

GET https://www.polynimbus.club/api/weather/snapshots?city=<city-key>&day=today|tomorrow
GET https://www.polynimbus.club/api/weather/snapshots?city=<city-key>&date=YYYY-MM-DD
GET https://www.polynimbus.club/api/weather/snapshots
  (omit city → all cities; heavier response)

Query params:
  city   optional — e.g. london, nyc, tokyo (see dashboard city keys)
  day    optional — today | tomorrow (local to that city)
  date   optional — YYYY-MM-DD (overrides day when set)

Returns JSON: schemaVersion, generatedAt, locations[] with hourly model
temps, running max, ensemble, METAR, atmospheric fields (cloud, wind,
radiation), diagnostics. See /llms.txt for field details.

Limits

Rate limiting applies only to GET /api/weather/snapshots. Each IP has a rolling maximum number of requests per minute. When exceeded, the server returns 429 Too Many Requests with a JSON body and a Retry-After header (seconds). Successful responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

# Response headers on success (snapshots only)
X-RateLimit-Limit: <max per window>
X-RateLimit-Remaining: <requests left>
X-RateLimit-Reset: <unix seconds>

# 429 body example
{
  "error": "Too many requests",
  "message": "Rate limit exceeded. Try again shortly.",
  "retryAfter": 42
}

Full field reference: /llms.txt

Location tester

Full response from GET /api/weather/snapshots for one city — model hourly temps, running max, ensemble path, METAR, cloud layers & cover, wind, shortwave radiation, and heating-window diagnostics.