Download OpenAPI specification:
Wsf Vessels API - Washington State Department of Transportation APIs
import { fetchCacheFlushDateVessels } from 'ws-dottie/wsf-vessels/core'; const data = await fetchCacheFlushDateVessels({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
"2025-11-14T06:28:07.687Z"import { fetchVesselsVerbose } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselsVerbose({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselID": 1,
- "VesselSubjectID": 1,
- "VesselName": "Cathlamet",
- "VesselAbbrev": "CAT",
- "Class": {
- "ClassID": 10,
- "ClassSubjectID": 310,
- "ClassName": "Issaquah 130",
- "SortSeq": 40,
- "PublicDisplayName": "Issaquah"
}, - "Status": 1,
- "OwnedByWSF": true,
- "CarDeckRestroom": true,
- "CarDeckShelter": false,
- "Elevator": true,
- "ADAAccessible": true,
- "MainCabinGalley": true,
- "MainCabinRestroom": true,
- "PublicWifi": false,
- "ADAInfo": "The M/V Cathlamet has elevator access from the car deck to the passenger deck. The vessel has accessible restrooms located on both the main passenger deck and the car deck. Notify a ticket seller if you are traveling by car and need to park near an elevator or car deck restroom. The main passenger deck also has vending and newspaper machines and a galley. This vessel is equipped with our visual paging system.",
- "AdditionalInfo": " ",
- "VesselNameDesc": "From the Kathlamet tribe, the Chinook word calamet meaning \"stone,\" was given to the tribe because its members lived along a rocky stretch of the Columbia River. A city also bears its name. \r\n\r\n",
- "VesselHistory": " ",
- "Beam": "78' 8\"",
- "CityBuilt": "Seattle",
- "SpeedInKnots": 16,
- "Draft": "16' 7\"",
- "EngineCount": 2,
- "Horsepower": 5100,
- "Length": "328' 2\"",
- "MaxPassengerCount": 1196,
- "PassengerOnly": false,
- "FastFerry": false,
- "PropulsionInfo": "DIESEL",
- "TallDeckClearance": 186,
- "RegDeckSpace": 124,
- "TallDeckSpace": 25,
- "Tonnage": 2477,
- "Displacement": 3310,
- "YearBuilt": 1981,
- "YearRebuilt": 1993,
- "VesselDrawingImg": null,
- "SolasCertified": false,
- "MaxPassengerCountForInternational": null
}
]import { fetchVesselsVerboseByVesselId } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselsVerboseByVesselId({ params: { "VesselID": 68 }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
{- "VesselID": 68,
- "VesselSubjectID": 462,
- "VesselName": "Tokitae",
- "VesselAbbrev": "TOK",
- "Class": {
- "ClassID": 100,
- "ClassSubjectID": 319,
- "ClassName": "Olympic",
- "SortSeq": 35,
- "PublicDisplayName": "Olympic"
}, - "Status": 1,
- "OwnedByWSF": true,
- "CarDeckRestroom": false,
- "CarDeckShelter": true,
- "Elevator": true,
- "ADAAccessible": true,
- "MainCabinGalley": true,
- "MainCabinRestroom": true,
- "PublicWifi": false,
- "ADAInfo": "The M/V Tokitae has two ADA compliant elevators and wide staircases that provide access from both car decks to the passenger and sun decks. There are accessible restrooms on the main passenger deck and the sun deck. Notify ticket seller if you are traveling by car and need to park near an elevator. There are 12 wheelchair spaces available in the main passenger cabin. There is a galley, and vending and newspaper machines on the main passenger deck. This vessel is equipped with our visual paging system.",
- "AdditionalInfo": null,
- "VesselNameDesc": "Tokitae means \"nice day, pretty colors\" in Chinook jargon.",
- "VesselHistory": "Tokitae is the first of the 144-car, Olympic class ferries pressed into service in June of 2014. ",
- "Beam": "83' 6\"",
- "CityBuilt": "Seattle",
- "SpeedInKnots": 17,
- "Draft": "18'",
- "EngineCount": 2,
- "Horsepower": 6000,
- "Length": "362' 5\"",
- "MaxPassengerCount": 1500,
- "PassengerOnly": false,
- "FastFerry": false,
- "PropulsionInfo": "DIESEL",
- "TallDeckClearance": 192,
- "RegDeckSpace": 144,
- "TallDeckSpace": 34,
- "Tonnage": 3525,
- "Displacement": 5171,
- "YearBuilt": 2014,
- "YearRebuilt": null,
- "VesselDrawingImg": null,
- "SolasCertified": false,
- "MaxPassengerCountForInternational": null
}import { fetchVesselAccommodations } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselAccommodations({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselID": 1,
- "VesselSubjectID": 1,
- "VesselName": "Cathlamet",
- "VesselAbbrev": "CAT",
- "Class": {
- "ClassID": 10,
- "ClassSubjectID": 310,
- "ClassName": "Issaquah 130",
- "SortSeq": 40,
- "PublicDisplayName": "Issaquah"
}, - "CarDeckRestroom": true,
- "CarDeckShelter": false,
- "Elevator": true,
- "ADAAccessible": true,
- "MainCabinGalley": true,
- "MainCabinRestroom": true,
- "PublicWifi": false,
- "ADAInfo": "The M/V Cathlamet has elevator access from the car deck to the passenger deck. The vessel has accessible restrooms located on both the main passenger deck and the car deck. Notify a ticket seller if you are traveling by car and need to park near an elevator or car deck restroom. The main passenger deck also has vending and newspaper machines and a galley. This vessel is equipped with our visual paging system.",
- "AdditionalInfo": " "
}
]import { fetchVesselAccommodationsByVesselId } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselAccommodationsByVesselId({ params: { "VesselID": 65 }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
{- "VesselID": 65,
- "VesselSubjectID": 428,
- "VesselName": "Chetzemoka",
- "VesselAbbrev": "CHZ",
- "Class": {
- "ClassID": 162,
- "ClassSubjectID": 427,
- "ClassName": "Kwa-di Tabil",
- "SortSeq": 75,
- "PublicDisplayName": "Kwa-di Tabil"
}, - "CarDeckRestroom": false,
- "CarDeckShelter": false,
- "Elevator": true,
- "ADAAccessible": true,
- "MainCabinGalley": true,
- "MainCabinRestroom": true,
- "PublicWifi": false,
- "ADAInfo": "The M/V Chetzemoka has elevator access from the auto deck to all passenger deck levels. In the event of an elevator closure, a crew member can assist passengers with mobility disabilities to the passenger deck by way of a small freight elevator, though it is not ADA accessible. When you arrive at the terminal, notify the ticket seller if you need to park near the elevator. The main passenger deck has accessible restrooms, vending machines and a galley.\r\n",
- "AdditionalInfo": null
}import { fetchVesselBasics } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselBasics({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselID": 1,
- "VesselSubjectID": 1,
- "VesselName": "Cathlamet",
- "VesselAbbrev": "CAT",
- "Class": {
- "ClassID": 10,
- "ClassSubjectID": 310,
- "ClassName": "Issaquah 130",
- "SortSeq": 40,
- "PublicDisplayName": "Issaquah"
}, - "Status": 1,
- "OwnedByWSF": true
}
]import { fetchVesselBasicsByVesselId } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselBasicsByVesselId({ params: { "VesselID": 74 }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
{- "VesselID": 74,
- "VesselSubjectID": 487,
- "VesselName": "Chimacum",
- "VesselAbbrev": "CHM",
- "Class": {
- "ClassID": 100,
- "ClassSubjectID": 319,
- "ClassName": "Olympic",
- "SortSeq": 35,
- "PublicDisplayName": "Olympic"
}, - "Status": 1,
- "OwnedByWSF": true
}import { fetchVesselHistories } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselHistories({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselId": 21,
- "Vessel": "Spokane",
- "Departing": null,
- "Arriving": null,
- "ScheduledDepart": null,
- "ActualDepart": null,
- "EstArrival": null,
- "Date": null
}
]import { fetchVesselHistoriesByVesselNameAndDateRange } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselHistoriesByVesselNameAndDateRange({ params: { "VesselName": "Tacoma", "DateStart": "2025-09-01", "DateEnd": "2025-10-01" }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 681 total)
[- {
- "VesselId": 1077,
- "Vessel": "Tacoma",
- "Departing": "Bainbridge",
- "Arriving": "Colman",
- "ScheduledDepart": "2025-09-01T07:00:00.000Z",
- "ActualDepart": "2025-09-01T07:24:02.000Z",
- "EstArrival": "2025-09-01T07:56:54.000Z",
- "Date": "2025-09-01T07:00:00.000Z"
}
]import { fetchVesselLocations } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselLocations({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselID": 2,
- "VesselName": "Chelan",
- "Mmsi": 366709770,
- "DepartingTerminalID": 1,
- "DepartingTerminalName": "Anacortes",
- "DepartingTerminalAbbrev": "ANA",
- "ArrivingTerminalID": 10,
- "ArrivingTerminalName": "Friday Harbor",
- "ArrivingTerminalAbbrev": "FRH",
- "Latitude": 48.536383,
- "Longitude": -123.013343,
- "Speed": 0.7,
- "Heading": 211,
- "InService": true,
- "AtDock": false,
- "LeftDock": "2025-11-15T16:40:47.000Z",
- "Eta": "2025-11-15T17:46:00.000Z",
- "EtaBasis": "Vessel Chelan departed Anacortes going to Friday Harbor and using vessel Chelan closest location data from Nov 14 2025 9:45AM",
- "ScheduledDeparture": "2025-11-15T16:40:00.000Z",
- "OpRouteAbbrev": [
- "ana-sj"
], - "VesselPositionNum": 1,
- "SortSeq": 20,
- "ManagedBy": 1,
- "TimeStamp": "2025-11-15T17:44:51.000Z",
- "VesselWatchShutID": 2,
- "VesselWatchShutMsg": "Vessel information unavailable",
- "VesselWatchShutFlag": "0",
- "VesselWatchStatus": "0",
- "VesselWatchMsg": "WSF's VesselWatch page is currently not responding and is out of service. Thank you for your patience while we work to restore this page. "
}
]import { fetchVesselLocationsByVesselId } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselLocationsByVesselId({ params: { "VesselID": 18 }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
{- "VesselID": 18,
- "VesselName": "Kitsap",
- "Mmsi": 366772980,
- "DepartingTerminalID": 138,
- "DepartingTerminalName": "Everett Harbor",
- "DepartingTerminalAbbrev": "EVH",
- "ArrivingTerminalID": null,
- "ArrivingTerminalName": null,
- "ArrivingTerminalAbbrev": null,
- "Latitude": 47.620557,
- "Longitude": -122.432302,
- "Speed": 0,
- "Heading": 348,
- "InService": false,
- "AtDock": false,
- "LeftDock": "2025-11-15T08:57:52.000Z",
- "Eta": null,
- "EtaBasis": "Calculating",
- "ScheduledDeparture": null,
- "OpRouteAbbrev": [ ],
- "VesselPositionNum": null,
- "SortSeq": 9999,
- "ManagedBy": 1,
- "TimeStamp": "2025-11-15T08:57:52.000Z",
- "VesselWatchShutID": 6,
- "VesselWatchShutMsg": "Vessel temporarily out of service",
- "VesselWatchShutFlag": "0",
- "VesselWatchStatus": "0",
- "VesselWatchMsg": "WSF's VesselWatch page is currently not responding and is out of service. Thank you for your patience while we work to restore this page. "
}import { fetchVesselStats } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselStats({ fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API (showing first item of 21 total)
[- {
- "VesselID": 1,
- "VesselSubjectID": 1,
- "VesselName": "Cathlamet",
- "VesselAbbrev": "CAT",
- "Class": {
- "ClassID": 10,
- "ClassSubjectID": 310,
- "ClassName": "Issaquah 130",
- "SortSeq": 40,
- "PublicDisplayName": "Issaquah"
}, - "VesselNameDesc": "From the Kathlamet tribe, the Chinook word calamet meaning \"stone,\" was given to the tribe because its members lived along a rocky stretch of the Columbia River. A city also bears its name. \r\n\r\n",
- "VesselHistory": " ",
- "Beam": "78' 8\"",
- "CityBuilt": "Seattle",
- "SpeedInKnots": 16,
- "Draft": "16' 7\"",
- "EngineCount": 2,
- "Horsepower": 5100,
- "Length": "328' 2\"",
- "MaxPassengerCount": 1196,
- "PassengerOnly": false,
- "FastFerry": false,
- "PropulsionInfo": "DIESEL",
- "TallDeckClearance": 186,
- "RegDeckSpace": 124,
- "TallDeckSpace": 25,
- "Tonnage": 2477,
- "Displacement": 3310,
- "YearBuilt": 1981,
- "YearRebuilt": 1993,
- "VesselDrawingImg": null,
- "SolasCertified": false,
- "MaxPassengerCountForInternational": null
}
]import { fetchVesselStatsByVesselId } from 'ws-dottie/wsf-vessels/core'; const data = await fetchVesselStatsByVesselId({ params: { "VesselID": 32 }, fetchMode: 'native', validate: true }); console.log(data);
Example of a successful response from the API
{- "VesselID": 32,
- "VesselSubjectID": 32,
- "VesselName": "Tacoma",
- "VesselAbbrev": "TAC",
- "Class": {
- "ClassID": 90,
- "ClassSubjectID": 318,
- "ClassName": "Jumbo Mark II",
- "SortSeq": 10,
- "PublicDisplayName": "Jumbo Mark II"
}, - "VesselNameDesc": "From the Lushootseed word Tah-ho-mah (now Mt. Rainier), meaning \"snowy mountain.\" Tacoma was first attributed to the mountain in an 1860s book, \"The Canoe and the Saddle\" by Theodore Winthrop, a popular volume on the early Pacific Northwest. The city picked the name over Commencement City when the railroad made its terminius there in the 1870s. \r\n",
- "VesselHistory": "Todd Shipyard Delivery Date: 15 August 1997\r\nKeel Laid Date: 16 October 1995",
- "Beam": "90'",
- "CityBuilt": "Seattle",
- "SpeedInKnots": 18,
- "Draft": "18' 6\"",
- "EngineCount": 4,
- "Horsepower": 16000,
- "Length": "460' 2\"",
- "MaxPassengerCount": 1791,
- "PassengerOnly": false,
- "FastFerry": false,
- "PropulsionInfo": "DIESEL-ELECTRIC (AC)",
- "TallDeckClearance": 186,
- "RegDeckSpace": 202,
- "TallDeckSpace": 68,
- "Tonnage": 4938,
- "Displacement": 6184,
- "YearBuilt": 1997,
- "YearRebuilt": null,
- "VesselDrawingImg": null,
- "SolasCertified": false,
- "MaxPassengerCountForInternational": null
}