PWS Observation

A single weather observation record from a Personal Weather Station in the Weather Underground network.

WeatherPersonal Weather StationsHyperlocalObservationsForecastsHistorical DataREST API

Properties

Name Type Description
stationID string Unique identifier of the PWS station assigned by Weather Underground.
obsTimeUtc string Observation timestamp in UTC (ISO 8601).
obsTimeLocal string Observation timestamp in the station's local time zone.
neighborhood stringnull Neighborhood or location name provided by the station owner.
softwareType stringnull Software or device used to upload observations to the network.
country string ISO 3166-1 alpha-2 country code of the station.
solarRadiation numbernull Solar radiation intensity in watts per square meter (W/m²).
lon number Station longitude in decimal degrees (WGS84).
lat number Station latitude in decimal degrees (WGS84).
uv numbernull UV index value (0–11+ scale).
winddir integernull Wind direction in meteorological degrees (0 = North, 90 = East, 180 = South, 270 = West).
windDirectionCardinal stringnull Wind direction expressed as a compass cardinal or intercardinal point.
humidity integernull Relative humidity percentage.
epoch integer Unix timestamp (seconds since 1970-01-01T00:00:00Z) of the observation.
qcStatus integer Quality control status flag. 1 indicates the observation passed QC checks.
realtimeFrequency integernull Realtime upload frequency in seconds, if the station uploads in realtime mode.
imperial object Measurements in Imperial/US Customary units (°F, mph, inHg, in).
metric object Measurements in metric units (°C, km/h, mbar, mm).
metric_si object Measurements in SI metric units (°C, km/h, hPa, mm).
uk_hybrid object Measurements in UK hybrid units (°C, mph, mbar, mm).
View JSON Schema on GitHub

JSON Schema

observation.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wunderground/main/json-schema/observation.json",
  "title": "PWS Observation",
  "description": "A single weather observation record from a Personal Weather Station in the Weather Underground network.",
  "type": "object",
  "properties": {
    "stationID": {
      "type": "string",
      "description": "Unique identifier of the PWS station assigned by Weather Underground.",
      "examples": ["KCASARAT1", "KGASEATT42"]
    },
    "obsTimeUtc": {
      "type": "string",
      "format": "date-time",
      "description": "Observation timestamp in UTC (ISO 8601).",
      "examples": ["2024-01-15T18:32:00Z"]
    },
    "obsTimeLocal": {
      "type": "string",
      "description": "Observation timestamp in the station's local time zone.",
      "examples": ["2024-01-15 10:32:00"]
    },
    "neighborhood": {
      "type": ["string", "null"],
      "description": "Neighborhood or location name provided by the station owner.",
      "examples": ["Downtown", "Hillside Gardens"]
    },
    "softwareType": {
      "type": ["string", "null"],
      "description": "Software or device used to upload observations to the network.",
      "examples": ["WeatherBridge", "WeeWX", "Ecowitt"]
    },
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code of the station.",
      "examples": ["US", "GB", "DE"]
    },
    "solarRadiation": {
      "type": ["number", "null"],
      "description": "Solar radiation intensity in watts per square meter (W/m²).",
      "minimum": 0,
      "examples": [320.5, 0.0]
    },
    "lon": {
      "type": "number",
      "format": "double",
      "description": "Station longitude in decimal degrees (WGS84).",
      "minimum": -180,
      "maximum": 180,
      "examples": [-122.419]
    },
    "lat": {
      "type": "number",
      "format": "double",
      "description": "Station latitude in decimal degrees (WGS84).",
      "minimum": -90,
      "maximum": 90,
      "examples": [37.774]
    },
    "uv": {
      "type": ["number", "null"],
      "description": "UV index value (0–11+ scale).",
      "minimum": 0,
      "examples": [3.0, 8.5]
    },
    "winddir": {
      "type": ["integer", "null"],
      "description": "Wind direction in meteorological degrees (0 = North, 90 = East, 180 = South, 270 = West).",
      "minimum": 0,
      "maximum": 360,
      "examples": [270, 180, 45]
    },
    "windDirectionCardinal": {
      "type": ["string", "null"],
      "description": "Wind direction expressed as a compass cardinal or intercardinal point.",
      "enum": ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", null],
      "examples": ["W", "NNE"]
    },
    "humidity": {
      "type": ["integer", "null"],
      "description": "Relative humidity percentage.",
      "minimum": 0,
      "maximum": 100,
      "examples": [68, 45, 92]
    },
    "epoch": {
      "type": "integer",
      "description": "Unix timestamp (seconds since 1970-01-01T00:00:00Z) of the observation.",
      "examples": [1705343520]
    },
    "qcStatus": {
      "type": "integer",
      "description": "Quality control status flag. 1 indicates the observation passed QC checks.",
      "enum": [-1, 0, 1],
      "examples": [1]
    },
    "realtimeFrequency": {
      "type": ["integer", "null"],
      "description": "Realtime upload frequency in seconds, if the station uploads in realtime mode.",
      "examples": [2.5, null]
    },
    "imperial": {
      "$ref": "#/$defs/unitMeasurements",
      "description": "Measurements in Imperial/US Customary units (°F, mph, inHg, in)."
    },
    "metric": {
      "$ref": "#/$defs/unitMeasurements",
      "description": "Measurements in metric units (°C, km/h, mbar, mm)."
    },
    "metric_si": {
      "$ref": "#/$defs/unitMeasurements",
      "description": "Measurements in SI metric units (°C, km/h, hPa, mm)."
    },
    "uk_hybrid": {
      "$ref": "#/$defs/unitMeasurements",
      "description": "Measurements in UK hybrid units (°C, mph, mbar, mm)."
    }
  },
  "required": ["stationID", "obsTimeUtc", "epoch"],
  "$defs": {
    "unitMeasurements": {
      "type": "object",
      "description": "Weather measurements in a specific unit system.",
      "properties": {
        "temp": {
          "type": ["number", "null"],
          "description": "Air temperature.",
          "examples": [55.0, 12.8]
        },
        "heatIndex": {
          "type": ["number", "null"],
          "description": "Apparent temperature accounting for humidity (feels-like).",
          "examples": [55.0, 12.8]
        },
        "dewpt": {
          "type": ["number", "null"],
          "description": "Dew point temperature.",
          "examples": [44.0, 6.7]
        },
        "windChill": {
          "type": ["number", "null"],
          "description": "Wind chill temperature (perceived temperature with wind effect).",
          "examples": [51.0, 10.5]
        },
        "windSpeed": {
          "type": ["number", "null"],
          "description": "Average wind speed.",
          "minimum": 0,
          "examples": [8.0, 12.9]
        },
        "windGust": {
          "type": ["number", "null"],
          "description": "Peak wind gust speed.",
          "minimum": 0,
          "examples": [12.0, 19.3]
        },
        "pressure": {
          "type": ["number", "null"],
          "description": "Atmospheric pressure (inHg for imperial, mbar for metric).",
          "minimum": 0,
          "examples": [30.05, 1018.0]
        },
        "precipRate": {
          "type": ["number", "null"],
          "description": "Current precipitation rate per hour.",
          "minimum": 0,
          "examples": [0.0, 0.12]
        },
        "precipTotal": {
          "type": ["number", "null"],
          "description": "Accumulated daily precipitation total.",
          "minimum": 0,
          "examples": [0.12, 3.05]
        },
        "elev": {
          "type": ["number", "null"],
          "description": "Station elevation above sea level.",
          "examples": [52.0, 15.85]
        }
      }
    }
  }
}