# Weather Underground API: Get historical weather

> Gets daily weather and time-ordered airport observations for a past date near a city, airport, or ZIP code. Summary averages use the available observations; missing measurements are null.

Unofficial. Not affiliated with or endorsed by Weather Underground.

- Page: https://fous.com/methods/wunderground.com/get-historical-weather
- Method: `wunderground.com/get_historical_weather`, version 1
- Website: wunderground.com
- Returns: station, page URL, units, daily summary, hourly observations
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `date` | string | yes | `"2024-07-04"` | Past date in YYYY-MM-DD format, for example 2024-07-04. |
| `units` | string | no | `"imperial"` | Measurement system, for example imperial. One of "imperial", "metric". Default "imperial". |
| `location` | string | yes | `"Boston"` | City, airport, or ZIP code, for example Boston or 02108. |

## Output

From a run on Oct 23, 2026, shortened. Its input:

```json
{
  "date": "2024-07-04",
  "units": "imperial",
  "location": "Boston"
}
```

Its output:

```json
{
  "date": "2024-07-04",
  "units": {
    "pressure": "inHg",
    "wind_speed": "mph",
    "temperature": "°F",
    "precipitation": "in"
  },
  "page_url": "https://www.wunderground.com/history/daily/us/ma/boston/KBOS/date/2024-07-04",
  "observations": [
    {
      "pressure": 30.03,
      "dew_point": 53,
      "wind_gust": null,
      "conditions": "Fair",
      "local_time": "2024-07-04T00:54:00-04:00",
      "wind_speed": 12,
      "temperature": 67,
      "precipitation": 0,
      "wind_direction": "SW",
      "humidity_percent": 61
    },
    {
      "pressure": 30.02,
      "dew_point": 54,
      "wind_gust": null,
      "conditions": "Fair",
      "local_time": "2024-07-04T01:54:00-04:00",
      "wind_speed": 8,
      "temperature": 67,
      "precipitation": 0,
      "wind_direction": "SSW",
      "humidity_percent": 63
    },
    {
      "pressure": 30.01,
      "dew_point": 55,
      "wind_gust": null,
      "conditions": "Fair",
      "local_time": "2024-07-04T02:54:00-04:00",
      "wind_speed": 9,
      "temperature": 66,
      "precipitation": 0,
      "wind_direction": "SSW",
      "humidity_percent": 68
    }
  ],
  "station_code": "KBOS",
  "station_name": "Logan Intl Airport",
  "daily_summary": {
    "low_temperature": 65,
    "average_pressure": 29.91,
    "high_temperature": 85,
    "maximum_wind_speed": 16,
    "average_temperature": 74.08,
    "total_precipitation": 0,
    "average_humidity_percent": 71.71
  }
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"wunderground.com/get_historical_weather","input":{"date":"2024-07-04","units":"imperial","location":"Boston"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- What was the weather like in Chicago on 2023-12-25? I need the daily highs, lows, and hourly readings.
- Pull historical observations for Denver International Airport on 2024-02-14 in metric units.
- Can you get the past daily weather summary and hourly temperature and wind for ZIP code 94103 on 2022-08-09?
- On wunderground, show me the hourly conditions at Miami on 2021-11-03 with imperial units.
- I need a record of what the weather was near Seattle-Tacoma airport on 2025-01-18, including precipitation and humidity by hour.

## Input schema

```json
{
  "type": "object",
  "required": [
    "location",
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "Past date in YYYY-MM-DD format, for example 2024-07-04."
    },
    "units": {
      "enum": [
        "imperial",
        "metric"
      ],
      "type": "string",
      "default": "imperial",
      "description": "Measurement system, for example imperial."
    },
    "location": {
      "type": "string",
      "minLength": 1,
      "description": "City, airport, or ZIP code, for example Boston or 02108."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "station_name",
    "station_code",
    "date",
    "page_url",
    "units",
    "daily_summary",
    "observations"
  ],
  "properties": {
    "date": {
      "type": "string"
    },
    "units": {
      "type": "object",
      "properties": {
        "pressure": {
          "type": "string"
        },
        "wind_speed": {
          "type": "string"
        },
        "temperature": {
          "type": "string"
        },
        "precipitation": {
          "type": "string"
        }
      }
    },
    "page_url": {
      "type": "string"
    },
    "observations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "pressure": {
            "type": [
              "number",
              "null"
            ]
          },
          "dew_point": {
            "type": [
              "number",
              "null"
            ]
          },
          "wind_gust": {
            "type": [
              "number",
              "null"
            ]
          },
          "conditions": {
            "type": [
              "string",
              "null"
            ]
          },
          "local_time": {
            "type": "string"
          },
          "wind_speed": {
            "type": [
              "number",
              "null"
            ]
          },
          "temperature": {
            "type": [
              "number",
              "null"
            ]
          },
          "precipitation": {
            "type": [
              "number",
              "null"
            ]
          },
          "wind_direction": {
            "type": [
              "string",
              "null"
            ]
          },
          "humidity_percent": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      }
    },
    "station_code": {
      "type": "string"
    },
    "station_name": {
      "type": "string"
    },
    "daily_summary": {
      "type": "object",
      "properties": {
        "low_temperature": {
          "type": [
            "number",
            "null"
          ]
        },
        "average_pressure": {
          "type": [
            "number",
            "null"
          ]
        },
        "high_temperature": {
          "type": [
            "number",
            "null"
          ]
        },
        "maximum_wind_speed": {
          "type": [
            "number",
            "null"
          ]
        },
        "average_temperature": {
          "type": [
            "number",
            "null"
          ]
        },
        "total_precipitation": {
          "type": [
            "number",
            "null"
          ]
        },
        "average_humidity_percent": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    }
  }
}
```

## See more

- [NWS API: Get current conditions](https://fous.com/methods/weather.gov/get-current-conditions.md): Gets the latest observed weather from a nearby National Weather Service station for a US city, address, or ZIP code. Measurements the station does not report are null.
- [AccuWeather API: Get current weather](https://fous.com/methods/accuweather.com/get-current-weather.md): Gets current conditions and RealFeel for a city or postal code on AccuWeather. The UV level follows standard UV-index ranges. Air quality is null unless it is shown with the current conditions.
- [The Weather Channel API: Get current weather](https://fous.com/methods/weather.com/get-current-weather.md): Gets current conditions and today's high and low from The Weather Channel for a city, postcode, ZIP code or street address worldwide. Street addresses are geocoded exactly first; some observations omit gusts or other measurements.
- [NWS API: Get hourly forecast](https://fous.com/methods/weather.gov/get-hourly-forecast.md): Looks up a US city, street address or ZIP code and returns up to 156 hourly National Weather Service forecasts for it.
- [The Weather Channel API: Get daily forecast](https://fous.com/methods/weather.com/get-daily-forecast.md): Gets The Weather Channel's daily forecast for a city, address, ZIP code or postcode: up to 15 upcoming days with highs, lows, conditions, rain chance, wind, humidity, UV and sun times.
- [MSN API: Get forecast](https://fous.com/methods/msn.com/get-forecast.md): Gets up to 10 days of MSN Weather forecasts for a city, address, or ZIP code, with optional hourly forecasts for the next 24 hours.
- [The Weather Channel API: Get hourly forecast](https://fous.com/methods/weather.com/get-hourly-forecast.md): Gets the next 1 to 48 hourly forecasts for a city, address, ZIP code or postcode from The Weather Channel, with times local to the matched place.
- [NWS API: Get National Weather Service forecast](https://fous.com/methods/weather.gov/get-forecast.md): Looks up the National Weather Service seven-day day and night forecast for a U.S. city, address, or ZIP code. Forecast availability depends on NWS land-grid coverage.
