{
  "openapi": "3.0.0",
  "info": {
    "title": "Wsdot Weather Information API",
    "version": "1.0.0",
    "description": "Wsdot Weather Information API - Washington State Department of Transportation APIs"
  },
  "servers": [
    {
      "url": "https://wsdot.wa.gov/traffic/api/WeatherInformation/WeatherInformationREST.svc",
      "description": "Production server"
    }
  ],
  "components": {
    "schemas": {
      "RoadwayLocation": {
        "type": "object",
        "properties": {
          "Description": {
            "type": "string",
            "nullable": true,
            "description": "Human-readable description of the roadway location, such as interchange names or cross streets."
          },
          "Direction": {
            "type": "string",
            "nullable": true,
            "description": "Traffic direction designation: N, S, B, NB, or SB, indicating which side of the highway is affected."
          },
          "Latitude": {
            "type": "number",
            "description": "Latitude of the roadway location in decimal degrees."
          },
          "Longitude": {
            "type": "number",
            "description": "Longitude of the roadway location in decimal degrees."
          },
          "MilePost": {
            "type": "number",
            "description": "Milepost marker along the highway corridor, with 0 indicating route terminus."
          },
          "RoadName": {
            "type": "string",
            "nullable": true,
            "description": "Highway or route designation code, such as '005' for I-5 or '090' for I-90."
          }
        },
        "required": [
          "Description",
          "Direction",
          "Latitude",
          "Longitude",
          "MilePost",
          "RoadName"
        ],
        "description": "Roadway location information including route, milepost, coordinates, and direction."
      },
      "FetchWeatherInformationByStationIdOutput": {
        "type": "object",
        "properties": {
          "BarometricPressure": {
            "type": "number",
            "nullable": true,
            "description": "Atmospheric pressure in millibars (not adjusted for elevation)."
          },
          "Latitude": {
            "type": "number",
            "description": "Latitude of the weather station in decimal degrees."
          },
          "Longitude": {
            "type": "number",
            "description": "Longitude of the weather station in decimal degrees."
          },
          "PrecipitationInInches": {
            "type": "number",
            "nullable": true,
            "description": "Precipitation amount in inches."
          },
          "ReadingTime": {
            "type": "string",
            "description": "UTC datetime when the weather reading was taken.",
            "format": "date-time"
          },
          "RelativeHumidity": {
            "type": "number",
            "nullable": true,
            "description": "Relative humidity as a percentage (0-100)."
          },
          "SkyCoverage": {
            "type": "string",
            "nullable": true,
            "description": "Sky coverage condition code."
          },
          "StationID": {
            "type": "integer",
            "description": "Numeric ID of the weather station."
          },
          "StationName": {
            "type": "string",
            "nullable": true,
            "description": "Display name of the weather station."
          },
          "TemperatureInFahrenheit": {
            "type": "number",
            "nullable": true,
            "description": "Current air temperature in degrees Fahrenheit."
          },
          "Visibility": {
            "type": "integer",
            "nullable": true,
            "description": "Average visibility distance in meters (computed every 3 minutes)."
          },
          "WindDirection": {
            "type": "number",
            "nullable": true,
            "description": "Wind direction in degrees clockwise from north (0-359)."
          },
          "WindDirectionCardinal": {
            "type": "string",
            "nullable": true,
            "description": "Wind direction in cardinal format (e.g., 'N', 'S', 'WSW')."
          },
          "WindGustSpeedInMPH": {
            "type": "number",
            "nullable": true,
            "description": "Maximum wind gust speed in miles per hour."
          },
          "WindSpeedInMPH": {
            "type": "number",
            "nullable": true,
            "description": "Average wind speed in miles per hour."
          }
        },
        "required": [
          "BarometricPressure",
          "Latitude",
          "Longitude",
          "PrecipitationInInches",
          "ReadingTime",
          "RelativeHumidity",
          "SkyCoverage",
          "StationID",
          "StationName",
          "TemperatureInFahrenheit",
          "Visibility",
          "WindDirection",
          "WindDirectionCardinal",
          "WindGustSpeedInMPH",
          "WindSpeedInMPH"
        ],
        "description": "Current atmospheric conditions from a WSDOT Road Weather Information System station, including temperature, humidity, wind, visibility, barometric pressure, and precipitation."
      }
    },
    "parameters": {}
  },
  "paths": {
    "/GetCurrentWeatherInformationAsJson": {
      "get": {
        "summary": "List current weather information for all stations.",
        "operationId": "fetchWeatherInformation",
        "tags": [
          "weather-info"
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import { fetchWeatherInformation } from 'ws-dottie/wsdot-weather-information/core';\n\nconst data = await fetchWeatherInformation({\n  fetchMode: 'native',\n  validate: true\n});\n\nconsole.log(data);"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "BarometricPressure": {
                        "type": "number",
                        "nullable": true,
                        "description": "Atmospheric pressure in millibars (not adjusted for elevation)."
                      },
                      "Latitude": {
                        "type": "number",
                        "description": "Latitude of the weather station in decimal degrees."
                      },
                      "Longitude": {
                        "type": "number",
                        "description": "Longitude of the weather station in decimal degrees."
                      },
                      "PrecipitationInInches": {
                        "type": "number",
                        "nullable": true,
                        "description": "Precipitation amount in inches."
                      },
                      "ReadingTime": {
                        "type": "string",
                        "description": "UTC datetime when the weather reading was taken.",
                        "format": "date-time"
                      },
                      "RelativeHumidity": {
                        "type": "number",
                        "nullable": true,
                        "description": "Relative humidity as a percentage (0-100)."
                      },
                      "SkyCoverage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Sky coverage condition code."
                      },
                      "StationID": {
                        "type": "integer",
                        "description": "Numeric ID of the weather station."
                      },
                      "StationName": {
                        "type": "string",
                        "nullable": true,
                        "description": "Display name of the weather station."
                      },
                      "TemperatureInFahrenheit": {
                        "type": "number",
                        "nullable": true,
                        "description": "Current air temperature in degrees Fahrenheit."
                      },
                      "Visibility": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Average visibility distance in meters (computed every 3 minutes)."
                      },
                      "WindDirection": {
                        "type": "number",
                        "nullable": true,
                        "description": "Wind direction in degrees clockwise from north (0-359)."
                      },
                      "WindDirectionCardinal": {
                        "type": "string",
                        "nullable": true,
                        "description": "Wind direction in cardinal format (e.g., 'N', 'S', 'WSW')."
                      },
                      "WindGustSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Maximum wind gust speed in miles per hour."
                      },
                      "WindSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Average wind speed in miles per hour."
                      }
                    },
                    "required": [
                      "BarometricPressure",
                      "Latitude",
                      "Longitude",
                      "PrecipitationInInches",
                      "ReadingTime",
                      "RelativeHumidity",
                      "SkyCoverage",
                      "StationID",
                      "StationName",
                      "TemperatureInFahrenheit",
                      "Visibility",
                      "WindDirection",
                      "WindDirectionCardinal",
                      "WindGustSpeedInMPH",
                      "WindSpeedInMPH"
                    ],
                    "description": "Current atmospheric conditions from a WSDOT Road Weather Information System station, including temperature, humidity, wind, visibility, barometric pressure, and precipitation."
                  }
                },
                "examples": {
                  "sampleResponse": {
                    "summary": "Sample response",
                    "description": "Example of a successful response from the API (showing first item of 101 total)",
                    "value": [
                      {
                        "BarometricPressure": 957.5,
                        "Latitude": 47.4748,
                        "Longitude": -122.2704,
                        "PrecipitationInInches": null,
                        "ReadingTime": "2025-11-15T17:30:00.000Z",
                        "RelativeHumidity": 99,
                        "SkyCoverage": "N/A",
                        "StationID": 1909,
                        "StationName": "S 144th St on SB I-5 at mp 155.32",
                        "TemperatureInFahrenheit": 56.84,
                        "Visibility": 1,
                        "WindDirection": 200,
                        "WindDirectionCardinal": "SSW",
                        "WindGustSpeedInMPH": 0,
                        "WindSpeedInMPH": 0
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/GetCurrentWeatherInformationByStationIDAsJson?StationID={StationID}": {
      "get": {
        "summary": "Get current weather information for a specific station by ID.",
        "operationId": "fetchWeatherInformationByStationId",
        "tags": [
          "weather-info"
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import { fetchWeatherInformationByStationId } from 'ws-dottie/wsdot-weather-information/core';\n\nconst data = await fetchWeatherInformationByStationId({\n  params: {\n    \"StationID\": 1909\n  },\n  fetchMode: 'native',\n  validate: true\n});\n\nconsole.log(data);"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchWeatherInformationByStationIdOutput"
                },
                "examples": {
                  "sampleResponse": {
                    "summary": "Sample response",
                    "description": "Example of a successful response from the API",
                    "value": {
                      "BarometricPressure": 957.5,
                      "Latitude": 47.4748,
                      "Longitude": -122.2704,
                      "PrecipitationInInches": null,
                      "ReadingTime": "2025-11-15T17:30:00.000Z",
                      "RelativeHumidity": 99,
                      "SkyCoverage": "N/A",
                      "StationID": 1909,
                      "StationName": "S 144th St on SB I-5 at mp 155.32",
                      "TemperatureInFahrenheit": 56.84,
                      "Visibility": 1,
                      "WindDirection": 200,
                      "WindDirectionCardinal": "SSW",
                      "WindGustSpeedInMPH": 0,
                      "WindSpeedInMPH": 0
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/GetCurrentWeatherForStationsAsJson?StationList={StationList}": {
      "get": {
        "summary": "Get current weather information for multiple specified stations.",
        "operationId": "fetchCurrentWeatherForStations",
        "tags": [
          "weather-info"
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import { fetchCurrentWeatherForStations } from 'ws-dottie/wsdot-weather-information/core';\n\nconst data = await fetchCurrentWeatherForStations({\n  params: {\n    \"StationList\": \"1909,1966,1970\"\n  },\n  fetchMode: 'native',\n  validate: true\n});\n\nconsole.log(data);"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "BarometricPressure": {
                        "type": "number",
                        "nullable": true,
                        "description": "Atmospheric pressure in millibars (not adjusted for elevation)."
                      },
                      "Latitude": {
                        "type": "number",
                        "description": "Latitude of the weather station in decimal degrees."
                      },
                      "Longitude": {
                        "type": "number",
                        "description": "Longitude of the weather station in decimal degrees."
                      },
                      "PrecipitationInInches": {
                        "type": "number",
                        "nullable": true,
                        "description": "Precipitation amount in inches."
                      },
                      "ReadingTime": {
                        "type": "string",
                        "description": "UTC datetime when the weather reading was taken.",
                        "format": "date-time"
                      },
                      "RelativeHumidity": {
                        "type": "number",
                        "nullable": true,
                        "description": "Relative humidity as a percentage (0-100)."
                      },
                      "SkyCoverage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Sky coverage condition code."
                      },
                      "StationID": {
                        "type": "integer",
                        "description": "Numeric ID of the weather station."
                      },
                      "StationName": {
                        "type": "string",
                        "nullable": true,
                        "description": "Display name of the weather station."
                      },
                      "TemperatureInFahrenheit": {
                        "type": "number",
                        "nullable": true,
                        "description": "Current air temperature in degrees Fahrenheit."
                      },
                      "Visibility": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Average visibility distance in meters (computed every 3 minutes)."
                      },
                      "WindDirection": {
                        "type": "number",
                        "nullable": true,
                        "description": "Wind direction in degrees clockwise from north (0-359)."
                      },
                      "WindDirectionCardinal": {
                        "type": "string",
                        "nullable": true,
                        "description": "Wind direction in cardinal format (e.g., 'N', 'S', 'WSW')."
                      },
                      "WindGustSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Maximum wind gust speed in miles per hour."
                      },
                      "WindSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Average wind speed in miles per hour."
                      }
                    },
                    "required": [
                      "BarometricPressure",
                      "Latitude",
                      "Longitude",
                      "PrecipitationInInches",
                      "ReadingTime",
                      "RelativeHumidity",
                      "SkyCoverage",
                      "StationID",
                      "StationName",
                      "TemperatureInFahrenheit",
                      "Visibility",
                      "WindDirection",
                      "WindDirectionCardinal",
                      "WindGustSpeedInMPH",
                      "WindSpeedInMPH"
                    ],
                    "description": "Current atmospheric conditions from a WSDOT Road Weather Information System station, including temperature, humidity, wind, visibility, barometric pressure, and precipitation."
                  }
                },
                "examples": {
                  "sampleResponse": {
                    "summary": "Sample response",
                    "description": "Example of a successful response from the API (showing first item of 3 total)",
                    "value": [
                      {
                        "BarometricPressure": 957.5,
                        "Latitude": 47.4748,
                        "Longitude": -122.2704,
                        "PrecipitationInInches": null,
                        "ReadingTime": "2025-11-15T17:30:00.000Z",
                        "RelativeHumidity": 99,
                        "SkyCoverage": "N/A",
                        "StationID": 1909,
                        "StationName": "S 144th St on SB I-5 at mp 155.32",
                        "TemperatureInFahrenheit": 56.84,
                        "Visibility": 1,
                        "WindDirection": 200,
                        "WindDirectionCardinal": "SSW",
                        "WindGustSpeedInMPH": 0,
                        "WindSpeedInMPH": 0
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/SearchWeatherInformationAsJson?StationID={StationID}&SearchStartTime={SearchStartTime}&SearchEndTime={SearchEndTime}": {
      "get": {
        "summary": "Search historical weather information for a station within a time range.",
        "operationId": "searchWeatherInformation",
        "tags": [
          "weather-info"
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import { searchWeatherInformation } from 'ws-dottie/wsdot-weather-information/core';\n\nconst data = await searchWeatherInformation({\n  params: {\n    \"StationID\": 1980,\n    \"SearchStartTime\": \"2025-11-21T00:00:00.000Z\",\n    \"SearchEndTime\": \"2025-11-22T23:59:59.000Z\"\n  },\n  fetchMode: 'native',\n  validate: true\n});\n\nconsole.log(data);"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "BarometricPressure": {
                        "type": "number",
                        "nullable": true,
                        "description": "Atmospheric pressure in millibars (not adjusted for elevation)."
                      },
                      "Latitude": {
                        "type": "number",
                        "description": "Latitude of the weather station in decimal degrees."
                      },
                      "Longitude": {
                        "type": "number",
                        "description": "Longitude of the weather station in decimal degrees."
                      },
                      "PrecipitationInInches": {
                        "type": "number",
                        "nullable": true,
                        "description": "Precipitation amount in inches."
                      },
                      "ReadingTime": {
                        "type": "string",
                        "description": "UTC datetime when the weather reading was taken.",
                        "format": "date-time"
                      },
                      "RelativeHumidity": {
                        "type": "number",
                        "nullable": true,
                        "description": "Relative humidity as a percentage (0-100)."
                      },
                      "SkyCoverage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Sky coverage condition code."
                      },
                      "StationID": {
                        "type": "integer",
                        "description": "Numeric ID of the weather station."
                      },
                      "StationName": {
                        "type": "string",
                        "nullable": true,
                        "description": "Display name of the weather station."
                      },
                      "TemperatureInFahrenheit": {
                        "type": "number",
                        "nullable": true,
                        "description": "Current air temperature in degrees Fahrenheit."
                      },
                      "Visibility": {
                        "type": "integer",
                        "nullable": true,
                        "description": "Average visibility distance in meters (computed every 3 minutes)."
                      },
                      "WindDirection": {
                        "type": "number",
                        "nullable": true,
                        "description": "Wind direction in degrees clockwise from north (0-359)."
                      },
                      "WindDirectionCardinal": {
                        "type": "string",
                        "nullable": true,
                        "description": "Wind direction in cardinal format (e.g., 'N', 'S', 'WSW')."
                      },
                      "WindGustSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Maximum wind gust speed in miles per hour."
                      },
                      "WindSpeedInMPH": {
                        "type": "number",
                        "nullable": true,
                        "description": "Average wind speed in miles per hour."
                      }
                    },
                    "required": [
                      "BarometricPressure",
                      "Latitude",
                      "Longitude",
                      "PrecipitationInInches",
                      "ReadingTime",
                      "RelativeHumidity",
                      "SkyCoverage",
                      "StationID",
                      "StationName",
                      "TemperatureInFahrenheit",
                      "Visibility",
                      "WindDirection",
                      "WindDirectionCardinal",
                      "WindGustSpeedInMPH",
                      "WindSpeedInMPH"
                    ],
                    "description": "Current atmospheric conditions from a WSDOT Road Weather Information System station, including temperature, humidity, wind, visibility, barometric pressure, and precipitation."
                  }
                },
                "examples": {
                  "sampleResponse": {
                    "summary": "Sample response",
                    "description": "Example of a successful response from the API (showing first item of 47 total)",
                    "value": [
                      {
                        "BarometricPressure": null,
                        "Latitude": 47.078,
                        "Longitude": -120.724,
                        "PrecipitationInInches": null,
                        "ReadingTime": "2025-11-14T18:30:00.000Z",
                        "RelativeHumidity": 66,
                        "SkyCoverage": "N/A",
                        "StationID": 1980,
                        "StationName": "Rocky Canyon on I-90 at mp 95.74",
                        "TemperatureInFahrenheit": 54.14,
                        "Visibility": 1,
                        "WindDirection": 310,
                        "WindDirectionCardinal": "NW",
                        "WindGustSpeedInMPH": 9,
                        "WindSpeedInMPH": 4
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "weather-info",
      "description": "Current atmospheric conditions from WSDOT Road Weather Information System stations.",
      "x-description": "Real-time temperature, humidity, wind conditions, visibility, barometric pressure, and precipitation data for transportation operations.",
      "x-cacheStrategy": "FREQUENT",
      "x-useCases": [
        "Assess road weather conditions for transportation management.",
        "Monitor atmospheric data for traveler safety decisions.",
        "Display current weather conditions at specific stations.",
        "Query historical weather data by station and time range."
      ],
      "x-updateFrequency": "5m"
    }
  ]
}