WxDial API

Full API reference

Read-only JSON for live observations from more than 90,000 official and private weather stations, plus our solar-corrected Venice Beach station. Free for personal use.

Personal Use
Free
  • 30 requests per minute
  • 300 per day
  • 3,000 per month
  • Stops at the limits; personal, non-commercial use
  • Show "Weather data: WxDial" with a link where you display it (details)
Create a free account
Developers
$49.95/month
  • 60 requests per minute
  • 10,000 per day
  • 100,000 per month
  • Over the daily or monthly allowance: keeps working, $9 per 1,000 extra requests
  • No WxDial credit needed
Businesses
$299.95/month
  • 120 requests per minute
  • 100,000 per day
  • 1,000,000 per month
  • Over the daily or monthly allowance: keeps working, $9 per 1,000 extra requests
  • No WxDial credit needed
Custom
Let's talk
  • Higher limits
  • Custom rate
  • Invoice billing on request
Contact us

Getting started

  1. Create a free account and confirm your email.
  2. On your account page, choose Create API key. Copy the key; it's shown once.
  3. Send it with every request in the X-API-Key header (or as ?key=, which is less safe because URLs get logged).
curl -H "X-API-Key: wxd_your_key" "https://www.wxdial.com/api/v1/stations?lat=33.99&lon=-118.47&limit=5"

Every parameter, field, station type and error is described in the full API reference.

Endpoints

All responses are JSON. Times are ISO 8601 with offsets.

Units

Add units=imperial (°F, mph, inHg, inches, miles) or units=metric (°C, km/h, hPa, millimetres, kilometres) to any request. Without it, you get your account's default units (set on your account page), which is imperial unless you change it. Every weather response includes a units object naming the units used, and field names don't change between the two (temperature, dewPoint, wind, windGust, pressure, rainToday, …).

curl -H "X-API-Key: wxd_your_key" "https://www.wxdial.com/api/v1/home?units=metric"

Time zones

Add tz= with an IANA time zone name (America/New_York, Europe/London, …) or UTC to any request: every time in the response is written in that zone, and in /observations it also sets which day "today" means. Without it, your account's default time zone is used (UTC unless you change it on your account page). Details.

RequestWhat it returns
GET /api/v1/stations?q=textStations whose name or id matches (e.g. q=KLAX, q=santa monica).
GET /api/v1/stations?lat=&lon=The nearest stations, with distance (miles, or km with units=metric). limit up to 50.
GET /api/v1/stations?bbox=w,s,e,nStations inside a box (large boxes are thinned).
…&type=Nws,Metar or …&official=trueAdd to any station search to keep only some station types, or only government and airport stations.
GET /api/v1/observations?station=Type|IdLatest observation for up to 10 stations (repeat station=). Use the station value from /stations. tz= (e.g. America/Los_Angeles) sets the time zone, including which day "today" means.
GET /api/v1/forecast?place=slug (or station=, lat=&lon=)7-day and hourly forecast, active alerts (US), sunrise and sunset, today's normal and record low and high, and the last 24 hours of temperatures.
GET /api/v1/climate?station=KELM (or place=, lat=&lon=)Normal low and high (1991–2020) and record low and high with years, for every day of the year and each month. month= and day= narrow it down.
GET /api/v1/climate/stationsThe stations with daily climate records (nearest first with lat=&lon=).
GET /api/v1/places?q=textCities and towns (or lat=&lon=, country=US&region=NY), with the place value for /forecast and /climate.
GET /api/v1/regional?station=KMDT (or place=, lat=&lon=)The closest official stations that are reporting now, up to 20, with their latest readings (the live page's "Official regional weather" table).
GET /api/v1/radar?place=slug (or station=, lat=&lon=)What's falling there now in the lower 48: rain, snow, ice/mix (estimated) or hail, and how heavy, plus the last two hours' radar frames.
GET /api/v1/radar/image?bbox=w,s,e,nA radar frame as a transparent PNG for a map box, in WxDial's precipitation-type colors.
GET /api/v1/homeCurrent conditions at WxDial's Venice Beach station, including the solar-corrected temperature, rain and storm totals.
GET /api/v1/home/history?from=&to=Daily lows, highs and rain at Venice Beach (dates as yyyy-MM-dd).
GET /api/v1/groupsThe station groups on the WxDial home page with their latest readings.
GET /api/v1/usageYour plan, limits and usage so far. Free: doesn't count toward your limits.

Attribution

On the free Personal plan, show "Weather data: WxDial" near the data, linked to https://www.wxdial.com (or the place's WxDial page, the page value in some responses). Paid plans don't need to credit WxDial. Free-plan responses carry the wording in an X-Attribution header. See the API Terms.

<a href="https://www.wxdial.com">Weather data: WxDial</a>

Limits and errors

Days and months are counted in UTC. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining (this minute), X-Usage-Day and X-Usage-Month. Going over the per-minute rate returns 429 with Retry-After on every plan. On the free Personal plan, the daily and monthly limits also return 429. On paid plans, requests over the daily or monthly allowance keep working, carry X-Usage-Overage: true, and are billed at $9 per 1,000 on your next invoice.

401: missing or revoked key. 400: a bad parameter (the error field says which). 503: no data yet. Each station's data comes from its public source and is refreshed every one to ten minutes depending on the source; please don't poll faster than that.

Station data comes from the National Weather Service, Aviation Weather Center, Environment and Climate Change Canada, the Met Office, Deutscher Wetterdienst, the Japan Meteorological Agency, WeatherLink, Ambient Weather and CWOP. If you republish it, credit those sources as their terms require. See the API Terms.

Share X Facebook Email