ws-dottie
Version:
Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration
1,437 lines • 61.6 kB
JSON
{
"openapi": "3.0.0",
"info": {
"title": "Wsdot Toll Rates API",
"version": "1.0.0",
"description": "Wsdot Toll Rates API - Washington State Department of Transportation APIs"
},
"servers": [
{
"url": "https://www.wsdot.wa.gov/traffic/api/tollrates/tollratesrest.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."
},
"FetchTollTripRatesOutput": {
"type": "object",
"properties": {
"LastUpdated": {
"type": "string",
"description": "UTC datetime when toll trip rates were last updated.",
"format": "date-time"
},
"Trips": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"Message": {
"type": "string",
"nullable": true,
"description": "Toll rate message or display text (e.g., 'FREE', '$4.95'). Empty string when unavailable."
},
"MessageUpdateTime": {
"type": "string",
"description": "UTC datetime when toll rate message was last updated.",
"format": "date-time"
},
"Toll": {
"type": "number",
"description": "Toll amount for trip in dollars."
},
"TripName": {
"type": "string",
"nullable": true,
"description": "Unique identifier for toll trip route (e.g., '405tp02752', '520tp00422', '099tp03060')."
}
},
"required": [
"Message",
"MessageUpdateTime",
"Toll",
"TripName"
],
"description": "Toll rate information for a single trip including toll amount, message, and update timestamp."
},
"description": "Array of trip rate information for all toll trips. Null when trip rates are unavailable."
},
"Version": {
"type": "integer",
"description": "Version number of toll trips data. Increments when trip rates data is updated."
}
},
"required": [
"LastUpdated",
"Trips",
"Version"
],
"description": "Container for toll trip rates including update timestamp, array of trip rates, and version number."
},
"FetchTollTripVersionOutput": {
"type": "object",
"properties": {
"TimeStamp": {
"type": "string",
"description": "UTC datetime when version was created or last updated.",
"format": "date-time"
},
"Version": {
"type": "integer",
"description": "Version number for toll trip rates data. Increments when trip rates data is updated."
}
},
"required": [
"TimeStamp",
"Version"
],
"description": "Version information for toll trip rates data including version number and timestamp."
}
},
"parameters": {}
},
"paths": {
"/getTollRatesAsJson": {
"get": {
"summary": "List current toll rates for all HOV toll lanes statewide.",
"operationId": "fetchTollRates",
"tags": [
"toll-rates"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTollRates } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTollRates({\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": {
"EndLatitude": {
"type": "number",
"description": "Latitude of trip end point in decimal degrees."
},
"EndLocationName": {
"type": "string",
"nullable": true,
"description": "Display name of trip end location (e.g., 'SR 516', 'SR 18')."
},
"EndLongitude": {
"type": "number",
"description": "Longitude of trip end point in decimal degrees."
},
"EndMilepost": {
"type": "number",
"description": "Milepost marker for trip end point."
},
"StartLatitude": {
"type": "number",
"description": "Latitude of trip start point in decimal degrees."
},
"StartLocationName": {
"type": "string",
"nullable": true,
"description": "Display name of trip start location (e.g., 'I-405', 'S 180th St')."
},
"StartLongitude": {
"type": "number",
"description": "Longitude of trip start point in decimal degrees."
},
"StartMilepost": {
"type": "number",
"description": "Milepost marker for trip start point."
},
"TravelDirection": {
"type": "string",
"nullable": true,
"description": "Direction of travel code (e.g., 'S' for southbound, 'N' for northbound)."
},
"TripName": {
"type": "string",
"nullable": true,
"description": "Unique identifier for toll trip route (e.g., 'Tmptp02565', '099tp03268')."
},
"CurrentToll": {
"type": "integer",
"description": "Current toll amount in cents. May be negative when toll is unavailable. May not match sign display due to timing differences."
},
"CurrentMessage": {
"type": "string",
"nullable": true,
"description": "Message displayed on toll sign instead of toll amount. Null when toll amount is displayed, empty string when no message is shown."
},
"StateRoute": {
"type": "string",
"nullable": true,
"description": "State route identifier where toll applies (e.g., '099' for SR-99, '405' for I-405)."
},
"TimeUpdated": {
"type": "string",
"description": "UTC datetime when toll rate was last updated.",
"format": "date-time"
}
},
"required": [
"EndLatitude",
"EndLocationName",
"EndLongitude",
"EndMilepost",
"StartLatitude",
"StartLocationName",
"StartLongitude",
"StartMilepost",
"TravelDirection",
"TripName",
"CurrentToll",
"CurrentMessage",
"StateRoute",
"TimeUpdated"
],
"description": "Current toll rate information for a single HOV toll lane trip, including pricing and location data."
}
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API (showing first item of 84 total)",
"value": [
{
"EndLatitude": 47.587648851,
"EndLocationName": "NB S Portal",
"EndLongitude": -122.338771924,
"EndMilepost": 30,
"StartLatitude": 47.626665944,
"StartLocationName": "SB S Portal",
"StartLongitude": -122.343652437,
"StartMilepost": 33,
"TravelDirection": "S",
"TripName": "099tp03268",
"CurrentToll": 125,
"CurrentMessage": null,
"StateRoute": "099",
"TimeUpdated": "2025-11-15T17:45:16.143Z"
}
]
}
}
}
}
}
}
}
},
"/getTollTripInfoAsJson": {
"get": {
"summary": "List trip information for all toll trips statewide.",
"operationId": "fetchTollTripInfo",
"tags": [
"toll-trip-info"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTollTripInfo } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTollTripInfo({\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": {
"EndLatitude": {
"type": "number",
"description": "Latitude of trip end point in decimal degrees."
},
"EndLocationName": {
"type": "string",
"nullable": true,
"description": "Display name of trip end location (e.g., 'SR 516', 'SR 18')."
},
"EndLongitude": {
"type": "number",
"description": "Longitude of trip end point in decimal degrees."
},
"EndMilepost": {
"type": "number",
"description": "Milepost marker for trip end point."
},
"StartLatitude": {
"type": "number",
"description": "Latitude of trip start point in decimal degrees."
},
"StartLocationName": {
"type": "string",
"nullable": true,
"description": "Display name of trip start location (e.g., 'I-405', 'S 180th St')."
},
"StartLongitude": {
"type": "number",
"description": "Longitude of trip start point in decimal degrees."
},
"StartMilepost": {
"type": "number",
"description": "Milepost marker for trip start point."
},
"TravelDirection": {
"type": "string",
"nullable": true,
"description": "Direction of travel code (e.g., 'S' for southbound, 'N' for northbound)."
},
"TripName": {
"type": "string",
"nullable": true,
"description": "Unique identifier for toll trip route (e.g., 'Tmptp02565', '099tp03268')."
},
"Geometry": {
"type": "string",
"nullable": true,
"description": "Encoded route geometry data for mapping. Empty string or null when geometry is unavailable."
},
"ModifiedDate": {
"type": "string",
"description": "UTC datetime when trip route information was last modified.",
"format": "date-time"
}
},
"required": [
"EndLatitude",
"EndLocationName",
"EndLongitude",
"EndMilepost",
"StartLatitude",
"StartLocationName",
"StartLongitude",
"StartMilepost",
"TravelDirection",
"TripName",
"Geometry",
"ModifiedDate"
],
"description": "Trip route information for a single toll trip, including locations, coordinates, and optional geometry."
}
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API (showing first item of 32 total)",
"value": [
{
"EndLatitude": 47.405611347,
"EndLocationName": "SR 516",
"EndLongitude": -122.220730198,
"EndMilepost": 21.94,
"StartLatitude": 47.458726717,
"StartLocationName": "I-405",
"StartLongitude": -122.217220487,
"StartMilepost": 25.65,
"TravelDirection": "S",
"TripName": "Tmptp02565",
"Geometry": "",
"ModifiedDate": "2025-10-20T22:00:00.000Z"
}
]
}
}
}
}
}
}
}
},
"/getTollTripRatesAsJson": {
"get": {
"summary": "Get current toll rates for all trips.",
"operationId": "fetchTollTripRates",
"tags": [
"toll-trip-rates"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTollTripRates } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTollTripRates({\n fetchMode: 'native',\n validate: true\n});\n\nconsole.log(data);"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FetchTollTripRatesOutput"
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API",
"value": {
"LastUpdated": "2025-11-15T17:36:30.000Z",
"Trips": [
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp02752"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02526"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp02067"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp01880"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp01879"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp01587"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp01586"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp01585"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01371"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01370"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01369"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01353"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01352"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01351"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp01641"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp01926"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:30.000Z",
"Toll": 0,
"TripName": "405tp02066"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02161"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02162"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02250"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02251"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02252"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02612"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02613"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 0,
"TripName": "405tp02614"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02782"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02783"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02784"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02896"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02897"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-15T17:36:31.000Z",
"Toll": 0,
"TripName": "405tp02898"
},
{
"Message": "$4.95",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 4.95,
"TripName": "520tp00422"
},
{
"Message": "$2.95",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 2.95,
"TripName": "520tp00421"
},
{
"Message": "$3.25",
"MessageUpdateTime": "2025-11-15T17:36:28.000Z",
"Toll": 3.25,
"TripName": "099tp03060"
},
{
"Message": "$1.25",
"MessageUpdateTime": "2025-11-15T17:36:28.000Z",
"Toll": 1.25,
"TripName": "099tp03268"
},
{
"Message": "$3.20",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 3.2,
"TripName": "509tp02050"
},
{
"Message": "$1.20",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1.2,
"TripName": "509tp02051"
},
{
"Message": "$3.20",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 3.2,
"TripName": "509tp02093"
},
{
"Message": "$1.20",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1.2,
"TripName": "509tp02092"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:11:26.000Z",
"Toll": 0,
"TripName": "167tp01320"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01559"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01736"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01737"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01886"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01887"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02027"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02028"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02194"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02195"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02196"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02260"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp02174"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01885"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01654"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01653"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01476"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01475"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01284"
},
{
"Message": "$1.00",
"MessageUpdateTime": "2025-11-15T17:36:29.000Z",
"Toll": 1,
"TripName": "167tp01283"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp01102"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp01101"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp01100"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp00793"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp00792"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-15T17:40:45.193Z",
"Toll": 0,
"TripName": "167tp00791"
}
],
"Version": 375654
}
}
}
}
}
}
}
}
},
"/getTripRatesByDateAsJson?FromDate={FromDate}&ToDate={ToDate}": {
"get": {
"summary": "Get historical toll rates for a specified date range.",
"operationId": "fetchTripRatesByDate",
"tags": [
"toll-rates"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTripRatesByDate } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTripRatesByDate({\n params: {\n \"FromDate\": \"2025-11-21\",\n \"ToDate\": \"2025-11-22\"\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": {
"LastUpdated": {
"type": "string",
"description": "UTC datetime when toll trip rates were last updated.",
"format": "date-time"
},
"Trips": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"Message": {
"type": "string",
"nullable": true,
"description": "Toll rate message or display text (e.g., 'FREE', '$4.95'). Empty string when unavailable."
},
"MessageUpdateTime": {
"type": "string",
"description": "UTC datetime when toll rate message was last updated.",
"format": "date-time"
},
"Toll": {
"type": "number",
"description": "Toll amount for trip in dollars."
},
"TripName": {
"type": "string",
"nullable": true,
"description": "Unique identifier for toll trip route (e.g., '405tp02752', '520tp00422', '099tp03060')."
}
},
"required": [
"Message",
"MessageUpdateTime",
"Toll",
"TripName"
],
"description": "Toll rate information for a single trip including toll amount, message, and update timestamp."
},
"description": "Array of trip rate information for all toll trips. Null when trip rates are unavailable."
},
"Version": {
"type": "integer",
"description": "Version number of toll trips data. Increments when trip rates data is updated."
}
},
"required": [
"LastUpdated",
"Trips",
"Version"
],
"description": "Container for toll trip rates including update timestamp, array of trip rates, and version number."
}
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API (showing first item of 14 total)",
"value": [
{
"LastUpdated": "2025-11-14T08:57:07.000Z",
"Trips": [
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02752"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02526"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02067"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp01880"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp01879"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01587"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01586"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01585"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp01371"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp01370"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp01369"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01353"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01352"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01351"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp01641"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp01926"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02066"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02161"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02162"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02250"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02251"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:42.000Z",
"Toll": 0,
"TripName": "405tp02252"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02612"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02613"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02614"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02782"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02783"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "405tp02784"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp02896"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp02897"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:43.000Z",
"Toll": 0,
"TripName": "405tp02898"
},
{
"Message": "$3.35",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 3.35,
"TripName": "520tp00422"
},
{
"Message": "$1.35",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 1.35,
"TripName": "520tp00421"
},
{
"Message": "$3.25",
"MessageUpdateTime": "2025-11-14T08:56:40.000Z",
"Toll": 3.25,
"TripName": "099tp03060"
},
{
"Message": "$1.25",
"MessageUpdateTime": "2025-11-14T08:56:40.000Z",
"Toll": 1.25,
"TripName": "099tp03268"
},
{
"Message": "$3.20",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 3.2,
"TripName": "509tp02050"
},
{
"Message": "$1.20",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 1.2,
"TripName": "509tp02051"
},
{
"Message": "$3.20",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 3.2,
"TripName": "509tp02093"
},
{
"Message": "$1.20",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 1.2,
"TripName": "509tp02092"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01320"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:49.000Z",
"Toll": 0,
"TripName": "167tp01559"
},
{
"Message": "CLOSED",
"MessageUpdateTime": "2025-11-14T08:56:49.000Z",
"Toll": 0,
"TripName": "167tp01736"
},
{
"Message": "CLOSED",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01737"
},
{
"Message": "CLOSED",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01886"
},
{
"Message": "CLOSED",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01887"
},
{
"Message": "HOV ONLY",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02027"
},
{
"Message": "HOV ONLY",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02028"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02194"
},
{
"Message": "HOV ONLY",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02195"
},
{
"Message": "HOV ONLY",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02196"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02260"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp02174"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01885"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01654"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01653"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01476"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01475"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01284"
},
{
"Message": "FREE",
"MessageUpdateTime": "2025-11-14T08:56:41.000Z",
"Toll": 0,
"TripName": "167tp01283"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp01102"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp01101"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp01100"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp00793"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp00792"
},
{
"Message": "",
"MessageUpdateTime": "2025-11-14T09:01:03.460Z",
"Toll": 0,
"TripName": "167tp00791"
}
],
"Version": 375226
}
]
}
}
}
}
}
}
}
},
"/getTripRatesByVersionAsJson?Version={Version}": {
"get": {
"summary": "Get toll rates for a specific version number.",
"operationId": "fetchTripRatesByVersion",
"tags": [
"toll-rates"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTripRatesByVersion } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTripRatesByVersion({\n params: {\n \"Version\": 352417\n },\n fetchMode: 'native',\n validate: true\n});\n\nconsole.log(data);"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FetchTollTripRatesOutput"
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API",
"value": {
"LastUpdated": "0001-01-01T08:00:00.000Z",
"Trips": null,
"Version": 0
}
}
}
}
}
}
}
}
},
"/getTollTripVersionAsJson": {
"get": {
"summary": "Get current version and timestamp for toll trip data.",
"operationId": "fetchTollTripVersion",
"tags": [
"toll-trip-version"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import { fetchTollTripVersion } from 'ws-dottie/wsdot-toll-rates/core';\n\nconst data = await fetchTollTripVersion({\n fetchMode: 'native',\n validate: true\n});\n\nconsole.log(data);"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FetchTollTripVersionOutput"
},
"examples": {
"sampleResponse": {
"summary": "Sample response",
"description": "Example of a successful response from the API",
"value": {
"TimeStamp": "2025-11-15T17:36:30.000Z",
"Version": 375654
}
}
}
}
}
}
}
}
}
},
"tags": [
{
"name": "toll-rates",
"description": "Current toll rates for high occupancy vehicle (HOV) toll lanes statewide.",
"x-description": "Real-time toll pricing data including trip locations, current toll amounts, route associations, and update timestamps for congestion management.",
"x-cacheStrategy": "FREQUENT",
"x-useCases": [
"Calculate travel costs for HOV toll lane usage.",
"Display current toll amounts in navigation apps.",
"Make informed routing decisions based on toll pricing."
],
"x-updateFrequency": "5m"
},
{
"name": "toll-trip-info",
"description": "Trip route information for HOV toll lanes including locations, mileposts, and geometry.",
"x-description": "Reference data for toll trip routes including start and end locations, coordinates, mileposts, travel direction, and optional geometry data for mapping.",
"x-cacheStrategy": "FREQUENT",
"x-useCases": [
"Display toll trip routes on maps.",
"Look up trip information by location or route.",
"Build trip selection interfaces for toll rate queries."
],
"x-updateFrequency": "daily"
},
{
"name": "toll-trip-rates",
"description": "Comprehensive toll rate data for all trips including pricing, messages, and version tracking.",
"x-description": "Container for toll trip rates supporting current data, historical date ranges, and version-specific queries. Includes pricing details, informational messages, and version tracking for transportation planning.",
"x-cacheStrategy": "FREQUENT",
"x-useCases": [
"Retrieve current toll rates for all trips.",
"Analyze historical toll pricing trends.",
"Access version-specific rate data for change tracking."
],
"x-updateFrequency": "5m"
},
{
"name": "toll-trip-version",
"description": "Version and timestamp information for toll trip data.",
"x-description": "Current version number and timestamp for toll trip rates data, enabling cache management and data freshness tracking.",
"x-cacheStrategy": "FREQUENT",
"x-useCases": [
"Check data freshness before fetching toll rates.",
"Determine when to invalidate cached toll rate data.",
"Track version changes for toll trip rates."
],
"x-updateFrequency": "5m"
}
]
}