openapi: 3.0.0
info:
  title: Wsdot Mountain Pass Conditions API
  version: 1.0.0
  description: Wsdot Mountain Pass Conditions API - Washington State Department of Transportation APIs
servers:
  - url: https://www.wsdot.wa.gov/traffic/api/mountainpassconditions/mountainpassconditionsrest.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.
    FetchMountainPassConditionByIdOutput:
      type: object
      properties:
        MountainPassId:
          type: integer
          description: Numeric ID of the mountain pass.
        MountainPassName:
          type: string
          nullable: true
          description: Display name of the mountain pass.
        Latitude:
          type: number
          description: Latitude of the mountain pass in decimal degrees.
        Longitude:
          type: number
          description: Longitude of the mountain pass in decimal degrees.
        DateUpdated:
          type: string
          description: UTC datetime when the pass condition data was last updated.
          format: date-time
        TemperatureInFahrenheit:
          type: integer
          nullable: true
          description: Current temperature at the mountain pass in degrees Fahrenheit.
        ElevationInFeet:
          type: integer
          nullable: true
          description: Elevation of the mountain pass above sea level in feet.
        WeatherCondition:
          type: string
          nullable: true
          description: Current weather conditions at the mountain pass.
        RoadCondition:
          type: string
          nullable: true
          description: Current roadway surface conditions at the mountain pass.
        TravelAdvisoryActive:
          type: boolean
          description: True if a travel advisory is currently active for the pass; otherwise false.
        RestrictionOne:
          type: object
          nullable: true
          properties:
            RestrictionText:
              type: string
              nullable: true
              description: Text description of travel restrictions for this direction, such as 'No restrictions', 'Closed for the season', or chain requirements.
            TravelDirection:
              type: string
              nullable: true
              description: Direction of travel for which this restriction applies, such as 'Eastbound', 'Westbound', 'Northbound', or 'Southbound'.
          required:
            - RestrictionText
            - TravelDirection
          description: Travel restriction information for the primary direction of the pass.
        RestrictionTwo:
          type: object
          nullable: true
          properties:
            RestrictionText:
              type: string
              nullable: true
              description: Text description of travel restrictions for this direction, such as 'No restrictions', 'Closed for the season', or chain requirements.
            TravelDirection:
              type: string
              nullable: true
              description: Direction of travel for which this restriction applies, such as 'Eastbound', 'Westbound', 'Northbound', or 'Southbound'.
          required:
            - RestrictionText
            - TravelDirection
          description: Travel restriction information for the secondary direction of the pass.
      required:
        - MountainPassId
        - MountainPassName
        - Latitude
        - Longitude
        - DateUpdated
        - TemperatureInFahrenheit
        - ElevationInFeet
        - WeatherCondition
        - RoadCondition
        - TravelAdvisoryActive
        - RestrictionOne
        - RestrictionTwo
      description: Real-time mountain pass condition information including weather, road surface conditions, temperature, elevation, travel restrictions by direction, and advisory status.
  parameters: {}
paths:
  /getMountainPassConditionsAsJson:
    get:
      summary: List current conditions for all monitored mountain passes.
      operationId: fetchMountainPassConditions
      tags:
        - pass-conditions
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchMountainPassConditions } from 'ws-dottie/wsdot-mountain-pass-conditions/core';

            const data = await fetchMountainPassConditions({
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    MountainPassId:
                      type: integer
                      description: Numeric ID of the mountain pass.
                    MountainPassName:
                      type: string
                      nullable: true
                      description: Display name of the mountain pass.
                    Latitude:
                      type: number
                      description: Latitude of the mountain pass in decimal degrees.
                    Longitude:
                      type: number
                      description: Longitude of the mountain pass in decimal degrees.
                    DateUpdated:
                      type: string
                      description: UTC datetime when the pass condition data was last updated.
                      format: date-time
                    TemperatureInFahrenheit:
                      type: integer
                      nullable: true
                      description: Current temperature at the mountain pass in degrees Fahrenheit.
                    ElevationInFeet:
                      type: integer
                      nullable: true
                      description: Elevation of the mountain pass above sea level in feet.
                    WeatherCondition:
                      type: string
                      nullable: true
                      description: Current weather conditions at the mountain pass.
                    RoadCondition:
                      type: string
                      nullable: true
                      description: Current roadway surface conditions at the mountain pass.
                    TravelAdvisoryActive:
                      type: boolean
                      description: True if a travel advisory is currently active for the pass; otherwise false.
                    RestrictionOne:
                      type: object
                      nullable: true
                      properties:
                        RestrictionText:
                          type: string
                          nullable: true
                          description: Text description of travel restrictions for this direction, such as 'No restrictions', 'Closed for the season', or chain requirements.
                        TravelDirection:
                          type: string
                          nullable: true
                          description: Direction of travel for which this restriction applies, such as 'Eastbound', 'Westbound', 'Northbound', or 'Southbound'.
                      required:
                        - RestrictionText
                        - TravelDirection
                      description: Travel restriction information for the primary direction of the pass.
                    RestrictionTwo:
                      type: object
                      nullable: true
                      properties:
                        RestrictionText:
                          type: string
                          nullable: true
                          description: Text description of travel restrictions for this direction, such as 'No restrictions', 'Closed for the season', or chain requirements.
                        TravelDirection:
                          type: string
                          nullable: true
                          description: Direction of travel for which this restriction applies, such as 'Eastbound', 'Westbound', 'Northbound', or 'Southbound'.
                      required:
                        - RestrictionText
                        - TravelDirection
                      description: Travel restriction information for the secondary direction of the pass.
                  required:
                    - MountainPassId
                    - MountainPassName
                    - Latitude
                    - Longitude
                    - DateUpdated
                    - TemperatureInFahrenheit
                    - ElevationInFeet
                    - WeatherCondition
                    - RoadCondition
                    - TravelAdvisoryActive
                    - RestrictionOne
                    - RestrictionTwo
                  description: Real-time mountain pass condition information including weather, road surface conditions, temperature, elevation, travel restrictions by direction, and advisory status.
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API (showing first item of 16 total)
                  value:
                    - MountainPassId: 1
                      MountainPassName: Blewett Pass US 97
                      Latitude: 47.335298205
                      Longitude: -120.581068216
                      DateUpdated: '2025-11-15T14:49:36.827Z'
                      TemperatureInFahrenheit: 43
                      ElevationInFeet: 4102
                      WeatherCondition: Partly cloudy.
                      RoadCondition: Bare and wet.
                      TravelAdvisoryActive: true
                      RestrictionOne:
                        RestrictionText: No restrictions
                        TravelDirection: Northbound
                      RestrictionTwo:
                        RestrictionText: No restrictions
                        TravelDirection: Southbound
  /getMountainPassConditionAsJon?PassConditionID={PassConditionID}:
    get:
      summary: Get current conditions for a specific mountain pass by ID.
      operationId: fetchMountainPassConditionById
      tags:
        - pass-conditions
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { fetchMountainPassConditionById } from 'ws-dottie/wsdot-mountain-pass-conditions/core';

            const data = await fetchMountainPassConditionById({
              params: {
                "PassConditionID": 12
              },
              fetchMode: 'native',
              validate: true
            });

            console.log(data);
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchMountainPassConditionByIdOutput'
              examples:
                sampleResponse:
                  summary: Sample response
                  description: Example of a successful response from the API
                  value:
                    MountainPassId: 12
                    MountainPassName: White Pass  US 12
                    Latitude: 46.638333
                    Longitude: -121.39
                    DateUpdated: '2025-11-15T16:32:50.010Z'
                    TemperatureInFahrenheit: 44
                    ElevationInFeet: 4500
                    WeatherCondition: Raining
                    RoadCondition: Bare and wet
                    TravelAdvisoryActive: true
                    RestrictionOne:
                      RestrictionText: No restrictions
                      TravelDirection: Eastbound
                    RestrictionTwo:
                      RestrictionText: No restrictions
                      TravelDirection: Westbound
tags:
  - name: pass-conditions
    description: Real-time mountain pass conditions including weather, road status, and travel restrictions.
    x-description: Current conditions for 15 monitored mountain passes statewide, including temperature, elevation, weather, road surface conditions, and direction-specific travel restrictions.
    x-cacheStrategy: FREQUENT
    x-useCases:
      - Assess pass conditions for winter travel planning.
      - Monitor weather and road conditions for route decisions.
      - Check travel restrictions and advisories before mountain travel.
    x-updateFrequency: 15m
