Weather — entry 023 of 31

RainViewer

Verified Jul 2026

RainViewer aggregates and re-tiles third-party radar imagery from over 1,200 radar stations across 150+ countries, refreshed every 5 minutes, and exposes it as XYZ PNG tile pyramids plus a JSON timeline endpoint listing available past and short-term nowcast frames. Coverage isn't guaranteed to be permanent since individual source radar owners can request their feed be pulled, and the service is explicitly licensed for personal, educational, and small-scale community projects only.

RainViewer's weather-maps endpoint doesn't serve images directly — it returns a timeline of recent (and near-term nowcast) radar frame IDs, which you combine with a host URL and a tile template to build actual XYZ PNG tile URLs for a map.

radarmapsno-keyglobal
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, PNGResponses can be requested as JSON or PNG.

GreatAPIs Score

Score80out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs0/20No docs or spec available
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 80 on greatapis.com
<a href="https://greatapis.com/api/rainviewer/"><img src="https://greatapis.com/badge/rainviewer.svg" alt="Scored 80 on greatapis.com"></a>

Auth quickstart

  1. No API key required — requests are public and keyless.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Current radar frame timeline

GEThttps://api.rainviewer.com/public/weather-maps.json

200 application/json

{
  "version": "2.0",
  "generated": 1785031534,
  "host": "https://tilecache.rainviewer.com",
  "radar": {
    "past": [
      { "time": 1785030000, "path": "/v2/radar/5c94a72502b3" },
      { "time": 1785030600, "path": "/v2/radar/e94fa45b7cd9" },
      { "time": 1785031200, "path": "/v2/radar/580a9aec0213" }
    ],
    "nowcast": []
  },
  "satellite": {
    "infrared": []
  }
}

Developer reference

Base URLhttps://api.rainviewer.com/public

Gotchas & limits

  • The JSON only lists frame metadata, not images — build a tile URL yourself as `host` + frame `path` + `/{size}/{z}/{x}/{y}/{color}/{options}.png`, e.g. `https://tilecache.rainviewer.com/v2/radar/580a9aec0213/256/6/33/22/2/1_1.png`
  • Tiles are served from the `tilecache.rainviewer.com` host in the response's `host` field, not from `api.rainviewer.com` — don't hardcode the API host for tile requests
  • RainViewer documents a 5-minute refresh, but the public `weather-maps.json` timeline exposes `radar.past` frames spaced exactly 10 minutes apart (13 frames covering 2 hours, observed 2026-07-26); older frames age out of the list entirely, so re-fetch the timeline before building tile URLs rather than reusing a `path` you cached earlier
  • `radar.nowcast` (short-term forecast frames) and `satellite.infrared` are frequently empty arrays — check `.length` before assuming a nowcast layer is available