- 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)
WxDial API
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.
- 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
- 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
- Higher limits
- Custom rate
- Invoice billing on request
Getting started
- Create a free account and confirm your email.
- On your account page, choose Create API key. Copy the key; it's shown once.
- Send it with every request in the
X-API-Keyheader (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.
| Request | What it returns |
|---|---|
GET /api/v1/stations?q=text | Stations 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,n | Stations inside a box (large boxes are thinned). |
…&type=Nws,Metar or …&official=true | Add to any station search to keep only some station types, or only government and airport stations. |
GET /api/v1/observations?station=Type|Id | Latest 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/stations | The stations with daily climate records (nearest first with lat=&lon=). |
GET /api/v1/places?q=text | Cities and towns (or lat=&lon=, country=US®ion=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,n | A radar frame as a transparent PNG for a map box, in WxDial's precipitation-type colors. |
GET /api/v1/home | Current 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/groups | The station groups on the WxDial home page with their latest readings. |
GET /api/v1/usage | Your 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.