wunderground.com APIwunderground.com ↗
Access real-time PWS conditions, 7-day forecasts, and historical airport observations from Weather Underground via 6 structured JSON endpoints.
curl -X GET 'https://api.parse.bot/scraper/4645f09c-8fa2-4177-b560-e0c577209ea0/get_current_weather?station_id=KCASANFR5' \ -H 'X-API-Key: $PARSE_API_KEY'
Extract current weather conditions including temperature, humidity, wind speed/direction, solar radiation, and pressure for a specified PWS station. Returns the most recent observation.
| Param | Type | Description |
|---|---|---|
| units | string | Unit system: 'm' for metric, 'e' for english/imperial. |
| station_idrequired | string | PWS Station ID (e.g. KCASANFR5). |
{
"type": "object",
"fields": {
"uv": "number or null, UV index",
"lat": "number, station latitude",
"lon": "number, station longitude",
"temp": "number, temperature in selected units",
"time": "string, local observation time",
"humidity": "integer, relative humidity percentage",
"pressure": "number, barometric pressure",
"wind_dir": "string, cardinal wind direction (e.g. NW, SSE)",
"station_id": "string, the PWS station identifier",
"wind_speed": "number, wind speed in selected units",
"precip_rate": "number, precipitation rate",
"precip_total": "number, total precipitation",
"solar_radiation": "number or null, solar radiation in W/m²"
},
"sample": {
"data": {
"uv": 1.3,
"lat": 51.514,
"lon": 0.037,
"temp": 15,
"time": "2026-05-15 14:00:00",
"humidity": 49,
"pressure": 1006.77,
"wind_dir": "NW",
"station_id": "ILONDO288",
"wind_speed": 3,
"precip_rate": 0,
"precip_total": 0,
"solar_radiation": 250
},
"status": "success"
}
}About the wunderground.com API
The Weather Underground API exposes 6 endpoints covering real-time Personal Weather Station (PWS) observations, coordinate-based forecasts, and hourly historical records from airport stations worldwide. The get_current_weather endpoint returns live temperature, humidity, wind speed, UV index, and barometric pressure for any PWS station ID. The get_forecast endpoint delivers 7-day daily and 2-day hourly forecasts keyed by latitude and longitude, while separate endpoints cover deep historical and monthly airport data.
Current Conditions and PWS Data
get_current_weather accepts a station_id (e.g. KCASANFR5) and an optional units parameter ('m' for metric, 'e' for imperial). The response includes temp, humidity, pressure, wind_speed, wind_dir (cardinal, e.g. NW, SSE), uv, and the station's lat/lon coordinates. get_pws_hourly_history extends this to a rolling 7-day window, returning arrays of hourly observations with fields like solarRadiationHigh, humidityAvg, and a metric sub-object containing tempHigh and related aggregates.
Forecasts
get_forecast takes lat and lon and returns two objects: daily with up to 7 days of temperatureMax, temperatureMin, dayOfWeek, narrative text, and detailed daypart breakdowns; and hourly with 2 days of per-hour temperature, precipChance, windSpeed, and wxPhraseLong descriptions. Unit system is controlled via the same units parameter.
Historical Airport Observations
get_historical_airport accepts an airport ICAO code (station_id, e.g. KJFK), a start_date and end_date in YYYYMMDD format, and an optional country_code. It returns a metadata block (language, location ID, units, status code) alongside an observations array of hourly records with temperature, pressure, humidity, wind speed and direction, and weather phrases. get_monthly_observations is a convenience wrapper that accepts year and month integers and retrieves the full calendar month in one call, returning the same response shape.
Location Search
search accepts a plain-text query (city name, airport name, or keyword) and returns a location object with parallel arrays: address, city, country, countryCode, latitude, longitude, icaoCode, pwsId, and placeId. These identifiers can be passed directly into the forecast, historical, or current-conditions endpoints, making search the natural starting point for building location-aware workflows.
- Display live hyperlocal temperature and wind data from a nearby PWS station on a dashboard or mobile app.
- Power a 7-day forecast widget using temperatureMax, temperatureMin, and narrative fields from get_forecast.
- Analyze historical hourly airport observations for climate research or insurance underwriting.
- Build a monthly weather summary report for any airport station using get_monthly_observations.
- Correlate solarRadiationHigh from PWS hourly history with energy production data for solar monitoring.
- Resolve city or airport names to ICAO codes and coordinates via the search endpoint before querying forecasts.
- Track precipitation probability trends over a 2-day hourly window for logistics or event planning.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Weather Underground have an official developer API?+
What does get_historical_airport return, and how far back does it go?+
observations array of hourly records per day in the requested date range, each with temperature, pressure, humidity, wind speed and direction, and a weather phrase string. The metadata block confirms the units and location ID. Coverage depth depends on the airport station's archive; very old dates for less-common ICAO stations may return sparse or empty observations arrays.Does the get_forecast endpoint return minute-by-minute or sub-hourly data?+
hourly object in get_forecast covers a 2-day window at hourly resolution. Sub-hourly (minute-level) precipitation or wind data is not part of the current response. You can fork this API on Parse and revise it to add a sub-hourly or nowcast endpoint if that resolution is required.Can I retrieve historical data for a PWS station beyond the 7-day window?+
Are there any quirks when using the search endpoint to find PWS station IDs?+
search response returns pwsId as one of several parallel arrays in the location object. Not every result will have a populated pwsId — airport-centric results typically carry an icaoCode instead. Check both fields and use the appropriate ID for the target endpoint: pwsId for get_current_weather and get_pws_hourly_history, icaoCode for the historical airport endpoints.