ws-dottie
Version:
Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration
2,617 lines • 111 kB
YAML
openapi: 3.0.0
info:
title: Wsf Vessels API
version: 1.0.0
description: Wsf Vessels API - Washington State Department of Transportation APIs
servers:
- url: https://www.wsdot.wa.gov/ferries/api/vessels/rest
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.
FetchCacheFlushDateVesselsOutput:
type: string
description: UTC datetime when static endpoint data was last updated, or undefined if no update has occurred.
format: date-time
FetchVesselAccommodationsByVesselIdOutput:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
CarDeckRestroom:
type: boolean
description: True if ADA-accessible restroom is available on car deck; otherwise false.
CarDeckShelter:
type: boolean
description: True if ADA-accessible shelter is available on car deck; otherwise false.
Elevator:
type: boolean
description: True if elevator is available for passenger deck access; otherwise false.
ADAAccessible:
type: boolean
description: True if vessel meets ADA accessibility standards; otherwise false.
MainCabinGalley:
type: boolean
description: True if food service galley is available in main passenger cabin; otherwise false.
MainCabinRestroom:
type: boolean
description: True if restroom is available in main passenger cabin; otherwise false.
PublicWifi:
type: boolean
description: True if public WiFi is available on vessel; otherwise false.
ADAInfo:
type: string
nullable: true
description: Detailed ADA accessibility information for passengers with disabilities.
AdditionalInfo:
type: string
nullable: true
description: Additional accommodation notes not covered by standard boolean flags.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- CarDeckRestroom
- CarDeckShelter
- Elevator
- ADAAccessible
- MainCabinGalley
- MainCabinRestroom
- PublicWifi
- ADAInfo
- AdditionalInfo
description: Vessel accommodation information including amenities, accessibility features, and passenger facilities.
FetchVesselBasicsByVesselIdOutput:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
Status:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
- type: number
enum:
- 3
- nullable: true
description: 'Code indicating operational status: 1 = In Service, 2 = Maintenance, 3 = Out of Service.'
OwnedByWSF:
type: boolean
description: True if vessel is owned by WSF; otherwise false.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- Status
- OwnedByWSF
description: Basic vessel information including identification, operational status, and ownership.
FetchVesselLocationsByVesselIdOutput:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
Mmsi:
type: integer
nullable: true
description: Maritime Mobile Service Identity number for AIS tracking.
DepartingTerminalID:
type: integer
description: Numeric ID of the departing terminal.
DepartingTerminalName:
type: string
nullable: true
description: Display name of the departing terminal.
format: date-time
DepartingTerminalAbbrev:
type: string
nullable: true
description: Abbreviation code of the departing terminal.
format: date-time
ArrivingTerminalID:
type: integer
nullable: true
description: Numeric ID of the arriving terminal.
ArrivingTerminalName:
type: string
nullable: true
description: Display name of the arriving terminal.
ArrivingTerminalAbbrev:
type: string
nullable: true
description: Abbreviation code of the arriving terminal.
Latitude:
type: number
description: Vessel GPS latitude coordinate in decimal degrees.
Longitude:
type: number
description: Vessel GPS longitude coordinate in decimal degrees.
Speed:
type: number
description: Vessel speed over ground in knots.
Heading:
type: number
description: Vessel heading direction in degrees clockwise from north (0-359).
InService:
type: boolean
description: True if vessel is available for passenger operations; otherwise false.
AtDock:
type: boolean
description: True if vessel is currently docked at terminal; otherwise false.
LeftDock:
type: string
nullable: true
description: UTC datetime when vessel last departed from dock.
format: date-time
Eta:
type: string
nullable: true
description: UTC datetime of estimated arrival at destination terminal.
format: date-time
EtaBasis:
type: string
nullable: true
description: Description of ETA calculation method.
ScheduledDeparture:
type: string
nullable: true
description: UTC datetime of scheduled departure from origin terminal.
format: date-time
OpRouteAbbrev:
type: array
nullable: true
items:
type: string
description: Array of abbreviated route names currently serviced by vessel.
VesselPositionNum:
type: integer
nullable: true
description: Vessel position number for route scheduling.
SortSeq:
type: integer
description: Display sort order; lower values appear first in lists.
ManagedBy:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
description: 'Code indicating management owner: 1 = WSF, 2 = KCM.'
TimeStamp:
type: string
description: UTC datetime when vessel location data was last updated.
format: date-time
VesselWatchShutID:
type: integer
description: Numeric ID indicating VesselWatch shutdown status condition.
VesselWatchShutMsg:
type: string
nullable: true
description: User-facing message for VesselWatch shutdown status.
VesselWatchShutFlag:
type: string
nullable: true
description: Code indicating whether VesselWatch shutdown conditions are active.
VesselWatchStatus:
type: string
nullable: true
description: Code indicating current operational state of VesselWatch tracking system.
VesselWatchMsg:
type: string
nullable: true
description: User-facing message about VesselWatch system status.
required:
- VesselID
- VesselName
- Mmsi
- DepartingTerminalID
- DepartingTerminalName
- DepartingTerminalAbbrev
- ArrivingTerminalID
- ArrivingTerminalName
- ArrivingTerminalAbbrev
- Latitude
- Longitude
- Speed
- Heading
- InService
- AtDock
- LeftDock
- Eta
- EtaBasis
- ScheduledDeparture
- OpRouteAbbrev
- VesselPositionNum
- SortSeq
- ManagedBy
- TimeStamp
- VesselWatchShutID
- VesselWatchShutMsg
- VesselWatchShutFlag
- VesselWatchStatus
- VesselWatchMsg
description: Real-time vessel location data including GPS coordinates, terminal assignments, speed, heading, and ETA information.
FetchVesselStatsByVesselIdOutput:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
VesselNameDesc:
type: string
description: Cultural and historical context for vessel name origin.
VesselHistory:
type: string
nullable: true
description: Operational history and milestones for the vessel.
Beam:
type: string
description: Vessel beam width in feet and inches.
CityBuilt:
type: string
description: City where vessel was constructed.
SpeedInKnots:
type: integer
nullable: true
description: Maximum operational speed in knots.
Draft:
type: string
description: Vessel draft depth in feet and inches.
EngineCount:
type: integer
nullable: true
description: Total number of propulsion engines aboard vessel.
Horsepower:
type: integer
nullable: true
description: Total engine horsepower output.
Length:
type: string
description: Vessel overall length in feet and inches.
MaxPassengerCount:
type: integer
nullable: true
description: Maximum passenger capacity.
PassengerOnly:
type: boolean
description: True if vessel carries only passengers; otherwise false.
FastFerry:
type: boolean
description: True if vessel is classified as a fast ferry; otherwise false.
PropulsionInfo:
type: string
description: Engine propulsion type and fuel technology.
TallDeckClearance:
type: integer
nullable: true
description: Tall deck vertical clearance height in inches.
RegDeckSpace:
type: integer
nullable: true
description: Maximum regular deck vehicle capacity including tall deck spaces.
TallDeckSpace:
type: integer
nullable: true
description: Tall deck vehicle capacity.
Tonnage:
type: integer
nullable: true
description: Vessel gross tonnage.
Displacement:
type: integer
nullable: true
description: Vessel displacement weight in long tons.
YearBuilt:
type: integer
nullable: true
description: Vessel construction year.
YearRebuilt:
type: integer
nullable: true
description: Vessel major rebuild year.
VesselDrawingImg:
type: string
nullable: true
description: URL to detailed vessel drawing image.
SolasCertified:
type: boolean
description: True if vessel meets SOLAS international safety standards; otherwise false.
MaxPassengerCountForInternational:
type: integer
nullable: true
description: Maximum passenger capacity for international routes.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- VesselNameDesc
- VesselHistory
- Beam
- CityBuilt
- SpeedInKnots
- Draft
- EngineCount
- Horsepower
- Length
- MaxPassengerCount
- PassengerOnly
- FastFerry
- PropulsionInfo
- TallDeckClearance
- RegDeckSpace
- TallDeckSpace
- Tonnage
- Displacement
- YearBuilt
- YearRebuilt
- VesselDrawingImg
- SolasCertified
- MaxPassengerCountForInternational
description: Vessel technical specifications including dimensions, capacity, speed, propulsion, and build details.
FetchVesselsVerboseByVesselIdOutput:
allOf:
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
Status:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
- type: number
enum:
- 3
- nullable: true
description: 'Code indicating operational status: 1 = In Service, 2 = Maintenance, 3 = Out of Service.'
OwnedByWSF:
type: boolean
description: True if vessel is owned by WSF; otherwise false.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- Status
- OwnedByWSF
description: Basic vessel information including identification, operational status, and ownership.
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
CarDeckRestroom:
type: boolean
description: True if ADA-accessible restroom is available on car deck; otherwise false.
CarDeckShelter:
type: boolean
description: True if ADA-accessible shelter is available on car deck; otherwise false.
Elevator:
type: boolean
description: True if elevator is available for passenger deck access; otherwise false.
ADAAccessible:
type: boolean
description: True if vessel meets ADA accessibility standards; otherwise false.
MainCabinGalley:
type: boolean
description: True if food service galley is available in main passenger cabin; otherwise false.
MainCabinRestroom:
type: boolean
description: True if restroom is available in main passenger cabin; otherwise false.
PublicWifi:
type: boolean
description: True if public WiFi is available on vessel; otherwise false.
ADAInfo:
type: string
nullable: true
description: Detailed ADA accessibility information for passengers with disabilities.
AdditionalInfo:
type: string
nullable: true
description: Additional accommodation notes not covered by standard boolean flags.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- CarDeckRestroom
- CarDeckShelter
- Elevator
- ADAAccessible
- MainCabinGalley
- MainCabinRestroom
- PublicWifi
- ADAInfo
- AdditionalInfo
description: Vessel accommodation information including amenities, accessibility features, and passenger facilities.
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
VesselNameDesc:
type: string
description: Cultural and historical context for vessel name origin.
VesselHistory:
type: string
nullable: true
description: Operational history and milestones for the vessel.
Beam:
type: string
description: Vessel beam width in feet and inches.
CityBuilt:
type: string
description: City where vessel was constructed.
SpeedInKnots:
type: integer
nullable: true
description: Maximum operational speed in knots.
Draft:
type: string
description: Vessel draft depth in feet and inches.
EngineCount:
type: integer
nullable: true
description: Total number of propulsion engines aboard vessel.
Horsepower:
type: integer
nullable: true
description: Total engine horsepower output.
Length:
type: string
description: Vessel overall length in feet and inches.
MaxPassengerCount:
type: integer
nullable: true
description: Maximum passenger capacity.
PassengerOnly:
type: boolean
description: True if vessel carries only passengers; otherwise false.
FastFerry:
type: boolean
description: True if vessel is classified as a fast ferry; otherwise false.
PropulsionInfo:
type: string
description: Engine propulsion type and fuel technology.
TallDeckClearance:
type: integer
nullable: true
description: Tall deck vertical clearance height in inches.
RegDeckSpace:
type: integer
nullable: true
description: Maximum regular deck vehicle capacity including tall deck spaces.
TallDeckSpace:
type: integer
nullable: true
description: Tall deck vehicle capacity.
Tonnage:
type: integer
nullable: true
description: Vessel gross tonnage.
Displacement:
type: integer
nullable: true
description: Vessel displacement weight in long tons.
YearBuilt:
type: integer
nullable: true
description: Vessel construction year.
YearRebuilt:
type: integer
nullable: true
description: Vessel major rebuild year.
VesselDrawingImg:
type: string
nullable: true
description: URL to detailed vessel drawing image.
SolasCertified:
type: boolean
description: True if vessel meets SOLAS international safety standards; otherwise false.
MaxPassengerCountForInternational:
type: integer
nullable: true
description: Maximum passenger capacity for international routes.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- VesselNameDesc
- VesselHistory
- Beam
- CityBuilt
- SpeedInKnots
- Draft
- EngineCount
- Horsepower
- Length
- MaxPassengerCount
- PassengerOnly
- FastFerry
- PropulsionInfo
- TallDeckClearance
- RegDeckSpace
- TallDeckSpace
- Tonnage
- Displacement
- YearBuilt
- YearRebuilt
- VesselDrawingImg
- SolasCertified
- MaxPassengerCountForInternational
description: Vessel technical specifications including dimensions, capacity, speed, propulsion, and build details.
description: Complete vessel information combining identification, operational status, accommodations, and technical specifications in a single schema.
parameters: {}
paths:
/cacheflushdate:
get:
summary: Get cache flush timestamp for static wsf-vessels data.
operationId: fetchCacheFlushDateVessels
tags:
- cache-flush-date-vessels
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchCacheFlushDateVessels } from 'ws-dottie/wsf-vessels/core';
const data = await fetchCacheFlushDateVessels({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchCacheFlushDateVesselsOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value: '2025-11-14T06:28:07.687Z'
/vesselAccommodations:
get:
summary: List amenities and accessibility features for all vessels.
operationId: fetchVesselAccommodations
tags:
- vessel-accommodations
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselAccommodations } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselAccommodations({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
CarDeckRestroom:
type: boolean
description: True if ADA-accessible restroom is available on car deck; otherwise false.
CarDeckShelter:
type: boolean
description: True if ADA-accessible shelter is available on car deck; otherwise false.
Elevator:
type: boolean
description: True if elevator is available for passenger deck access; otherwise false.
ADAAccessible:
type: boolean
description: True if vessel meets ADA accessibility standards; otherwise false.
MainCabinGalley:
type: boolean
description: True if food service galley is available in main passenger cabin; otherwise false.
MainCabinRestroom:
type: boolean
description: True if restroom is available in main passenger cabin; otherwise false.
PublicWifi:
type: boolean
description: True if public WiFi is available on vessel; otherwise false.
ADAInfo:
type: string
nullable: true
description: Detailed ADA accessibility information for passengers with disabilities.
AdditionalInfo:
type: string
nullable: true
description: Additional accommodation notes not covered by standard boolean flags.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- CarDeckRestroom
- CarDeckShelter
- Elevator
- ADAAccessible
- MainCabinGalley
- MainCabinRestroom
- PublicWifi
- ADAInfo
- AdditionalInfo
description: Vessel accommodation information including amenities, accessibility features, and passenger facilities.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- VesselID: 1
VesselSubjectID: 1
VesselName: Cathlamet
VesselAbbrev: CAT
Class:
ClassID: 10
ClassSubjectID: 310
ClassName: Issaquah 130
SortSeq: 40
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130-sillouette_sml.gif
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: ' '
/vesselAccommodations/{VesselID}:
get:
summary: Get amenities and accessibility features for a specific vessel.
operationId: fetchVesselAccommodationsByVesselId
tags:
- vessel-accommodations
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselAccommodationsByVesselId } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselAccommodationsByVesselId({
params: {
"VesselID": 65
},
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchVesselAccommodationsByVesselIdOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value:
VesselID: 65
VesselSubjectID: 428
VesselName: Chetzemoka
VesselAbbrev: CHZ
Class:
ClassID: 162
ClassSubjectID: 427
ClassName: Kwa-di Tabil
SortSeq: 75
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/13-kwaditabil.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/13-kwaditabil-silouette_sml.gif
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
/vesselBasics:
get:
summary: List basic information for all vessels in the fleet.
operationId: fetchVesselBasics
tags:
- vessel-basics
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselBasics } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselBasics({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
Status:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
- type: number
enum:
- 3
- nullable: true
description: 'Code indicating operational status: 1 = In Service, 2 = Maintenance, 3 = Out of Service.'
OwnedByWSF:
type: boolean
description: True if vessel is owned by WSF; otherwise false.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- Status
- OwnedByWSF
description: Basic vessel information including identification, operational status, and ownership.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- VesselID: 1
VesselSubjectID: 1
VesselName: Cathlamet
VesselAbbrev: CAT
Class:
ClassID: 10
ClassSubjectID: 310
ClassName: Issaquah 130
SortSeq: 40
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130-sillouette_sml.gif
PublicDisplayName: Issaquah
Status: 1
OwnedByWSF: true
/vesselBasics/{VesselID}:
get:
summary: Get basic information for a specific vessel by ID.
operationId: fetchVesselBasicsByVesselId
tags:
- vessel-basics
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselBasicsByVesselId } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselBasicsByVesselId({
params: {
"VesselID": 74
},
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchVesselBasicsByVesselIdOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value:
VesselID: 74
VesselSubjectID: 487
VesselName: Chimacum
VesselAbbrev: CHM
Class:
ClassID: 100
ClassSubjectID: 319
ClassName: Olympic
SortSeq: 35
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/8-olympic-2014.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/3-issaquah-sillouette_sml.gif
PublicDisplayName: Olympic
Status: 1
OwnedByWSF: true
/vesselHistory:
get:
summary: List historical sailing records for all vessels.
operationId: fetchVesselHistories
tags:
- vessel-histories
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselHistories } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselHistories({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselId:
type: integer
description: Numeric ID of the vessel.
Vessel:
type: string
nullable: true
description: Display name of the vessel.
Departing:
type: string
nullable: true
description: Display name of the departing terminal.
format: date-time
Arriving:
type: string
nullable: true
description: Display name of the arriving terminal.
ScheduledDepart:
type: string
nullable: true
description: UTC datetime of scheduled departure from origin terminal.
format: date-time
ActualDepart:
type: string
nullable: true
description: UTC datetime of actual departure from origin terminal.
format: date-time
EstArrival:
type: string
nullable: true
description: UTC datetime of estimated arrival at destination terminal.
format: date-time
Date:
type: string
nullable: true
description: UTC datetime indicating the calendar date when this voyage occurred.
format: date-time
required:
- VesselId
- Vessel
- Departing
- Arriving
- ScheduledDepart
- ActualDepart
- EstArrival
- Date
description: Historical vessel voyage record including departure and arrival terminals, scheduled and actual departure times, and estimated arrival times.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- VesselId: 21
Vessel: Spokane
Departing: null
Arriving: null
ScheduledDepart: null
ActualDepart: null
EstArrival: null
Date: null
/vesselHistory/{VesselName}/{DateStart}/{DateEnd}:
get:
summary: Get historical sailing records for a vessel within a date range.
operationId: fetchVesselHistoriesByVesselNameAndDateRange
tags:
- vessel-histories
x-codeSamples:
- lang: JavaScript
source: |-
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);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselId:
type: integer
description: Numeric ID of the vessel.
Vessel:
type: string
nullable: true
description: Display name of the vessel.
Departing:
type: string
nullable: true
description: Display name of the departing terminal.
format: date-time
Arriving:
type: string
nullable: true
description: Display name of the arriving terminal.
ScheduledDepart:
type: string
nullable: true
description: UTC datetime of scheduled departure from origin terminal.
format: date-time
ActualDepart:
type: string
nullable: true
description: UTC datetime of actual departure from origin terminal.
format: date-time
EstArrival:
type: string
nullable: true
description: UTC datetime of estimated arrival at destination terminal.
format: date-time
Date:
type: string
nullable: true
description: UTC datetime indicating the calendar date when this voyage occurred.
format: date-time
required:
- VesselId
- Vessel
- Departing
- Arriving
- ScheduledDepart
- ActualDepart
- EstArrival
- Date
description: Historical vessel voyage record including departure and arrival terminals, scheduled and actual departure times, and estimated arrival times.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 681 total)
value:
- 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'
/vesselLocations:
get:
summary: List current locations and status for all active vessels.
operationId: fetchVesselLocations
tags:
- vessel-locations
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselLocations } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselLocations({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
Mmsi:
type: integer
nullable: true
description: Maritime Mobile Service Identity number for AIS tracking.
DepartingTerminalID:
type: integer
description: Numeric ID of the departing terminal.
DepartingTerminalName:
type: string
nullable: true
description: Display name of the departing terminal.
format: date-time
DepartingTerminalAbbrev:
type: string
nullable: true
description: Abbreviation code of the departing terminal.
format: date-time
ArrivingTerminalID:
type: integer
nullable: true
description: Numeric ID of the arriving terminal.
ArrivingTerminalName:
type: string
nullable: true
description: Display name of the arriving terminal.
ArrivingTerminalAbbrev:
type: string
nullable: true
description: Abbreviation code of the arriving terminal.
Latitude:
type: number
description: Vessel GPS latitude coordinate in decimal degrees.
Longitude:
type: number
description: Vessel GPS longitude coordinate in decimal degrees.
Speed:
type: number
description: Vessel speed over ground in knots.
Heading:
type: number
description: Vessel heading direction in degrees clockwise from north (0-359).
InService:
type: boolean
description: True if vessel is available for passenger operations; otherwise false.
AtDock:
type: boolean
description: True if vessel is currently docked at terminal; otherwise false.
LeftDock:
type: string
nullable: true
description: UTC datetime when vessel last departed from dock.
format: date-time
Eta:
type: string
nullable: true
description: UTC datetime of estimated arrival at destination terminal.
format: date-time
EtaBasis:
type: string
nullable: true
description: Description of ETA calculation method.
ScheduledDeparture:
type: string
nullable: true
description: UTC datetime of scheduled departure from origin terminal.
format: date-time
OpRouteAbbrev:
type: array
nullable: true
items:
type: string
description: Array of abbreviated route names currently serviced by vessel.
VesselPositionNum:
type: integer
nullable: true
description: Vessel position number for route scheduling.
SortSeq:
type: integer
description: Display sort order; lower values appear first in lists.
ManagedBy:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
description: 'Code indicating management owner: 1 = WSF, 2 = KCM.'
TimeStamp:
type: string
description: UTC datetime when vessel location data was last updated.
format: date-time
VesselWatchShutID:
type: integer
description: Numeric ID indicating VesselWatch shutdown status condition.
VesselWatchShutMsg:
type: string
nullable: true
description: User-facing message for VesselWatch shutdown status.
VesselWatchShutFlag:
type: string
nullable: true
description: Code indicating whether VesselWatch shutdown conditions are active.
VesselWatchStatus:
type: string
nullable: true
description: Code indicating current operational state of VesselWatch tracking system.
VesselWatchMsg:
type: string
nullable: true
description: User-facing message about VesselWatch system status.
required:
- VesselID
- VesselName
- Mmsi
- DepartingTerminalID
- DepartingTerminalName
- DepartingTerminalAbbrev
- ArrivingTerminalID
- ArrivingTerminalName
- ArrivingTerminalAbbrev
- Latitude
- Longitude
- Speed
- Heading
- InService
- AtDock
- LeftDock
- Eta
- EtaBasis
- ScheduledDeparture
- OpRouteAbbrev
- VesselPositionNum
- SortSeq
- ManagedBy
- TimeStamp
- VesselWatchShutID
- VesselWatchShutMsg
- VesselWatchShutFlag
- VesselWatchStatus
- VesselWatchMsg
description: Real-time vessel location data including GPS coordinates, terminal assignments, speed, heading, and ETA information.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- 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. '
/vesselLocations/{VesselID}:
get:
summary: Get current location and status for a specific vessel by ID.
operationId: fetchVesselLocationsByVesselId
tags:
- vessel-locations
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselLocationsByVesselId } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselLocationsByVesselId({
params: {
"VesselID": 18
},
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchVesselLocationsByVesselIdOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value:
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. '
/vesselStats:
get:
summary: List technical specifications for all vessels.
operationId: fetchVesselStats
tags:
- vessel-stats
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselStats } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselStats({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
VesselNameDesc:
type: string
description: Cultural and historical context for vessel name origin.
VesselHistory:
type: string
nullable: true
description: Operational history and milestones for the vessel.
Beam:
type: string
description: Vessel beam width in feet and inches.
CityBuilt:
type: string
description: City where vessel was constructed.
SpeedInKnots:
type: integer
nullable: true
description: Maximum operational speed in knots.
Draft:
type: string
description: Vessel draft depth in feet and inches.
EngineCount:
type: integer
nullable: true
description: Total number of propulsion engines aboard vessel.
Horsepower:
type: integer
nullable: true
description: Total engine horsepower output.
Length:
type: string
description: Vessel overall length in feet and inches.
MaxPassengerCount:
type: integer
nullable: true
description: Maximum passenger capacity.
PassengerOnly:
type: boolean
description: True if vessel carries only passengers; otherwise false.
FastFerry:
type: boolean
description: True if vessel is classified as a fast ferry; otherwise false.
PropulsionInfo:
type: string
description: Engine propulsion type and fuel technology.
TallDeckClearance:
type: integer
nullable: true
description: Tall deck vertical clearance height in inches.
RegDeckSpace:
type: integer
nullable: true
description: Maximum regular deck vehicle capacity including tall deck spaces.
TallDeckSpace:
type: integer
nullable: true
description: Tall deck vehicle capacity.
Tonnage:
type: integer
nullable: true
description: Vessel gross tonnage.
Displacement:
type: integer
nullable: true
description: Vessel displacement weight in long tons.
YearBuilt:
type: integer
nullable: true
description: Vessel construction year.
YearRebuilt:
type: integer
nullable: true
description: Vessel major rebuild year.
VesselDrawingImg:
type: string
nullable: true
description: URL to detailed vessel drawing image.
SolasCertified:
type: boolean
description: True if vessel meets SOLAS international safety standards; otherwise false.
MaxPassengerCountForInternational:
type: integer
nullable: true
description: Maximum passenger capacity for international routes.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- VesselNameDesc
- VesselHistory
- Beam
- CityBuilt
- SpeedInKnots
- Draft
- EngineCount
- Horsepower
- Length
- MaxPassengerCount
- PassengerOnly
- FastFerry
- PropulsionInfo
- TallDeckClearance
- RegDeckSpace
- TallDeckSpace
- Tonnage
- Displacement
- YearBuilt
- YearRebuilt
- VesselDrawingImg
- SolasCertified
- MaxPassengerCountForInternational
description: Vessel technical specifications including dimensions, capacity, speed, propulsion, and build details.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- VesselID: 1
VesselSubjectID: 1
VesselName: Cathlamet
VesselAbbrev: CAT
Class:
ClassID: 10
ClassSubjectID: 310
ClassName: Issaquah 130
SortSeq: 40
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130-sillouette_sml.gif
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
/vesselStats/{VesselID}:
get:
summary: Get technical specifications for a specific vessel by ID.
operationId: fetchVesselStatsByVesselId
tags:
- vessel-stats
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselStatsByVesselId } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselStatsByVesselId({
params: {
"VesselID": 32
},
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchVesselStatsByVesselIdOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value:
VesselID: 32
VesselSubjectID: 32
VesselName: Tacoma
VesselAbbrev: TAC
Class:
ClassID: 90
ClassSubjectID: 318
ClassName: Jumbo Mark II
SortSeq: 10
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/0-mark2.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/0-mark2-sillouette_sml.gif
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
/vesselVerbose:
get:
summary: List complete vessel information for all vessels.
operationId: fetchVesselsVerbose
tags:
- cache-flush-date-vessels
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselsVerbose } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselsVerbose({
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
Status:
anyOf:
- type: number
enum:
- 1
- type: number
enum:
- 2
- type: number
enum:
- 3
- nullable: true
description: 'Code indicating operational status: 1 = In Service, 2 = Maintenance, 3 = Out of Service.'
OwnedByWSF:
type: boolean
description: True if vessel is owned by WSF; otherwise false.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- Status
- OwnedByWSF
description: Basic vessel information including identification, operational status, and ownership.
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
CarDeckRestroom:
type: boolean
description: True if ADA-accessible restroom is available on car deck; otherwise false.
CarDeckShelter:
type: boolean
description: True if ADA-accessible shelter is available on car deck; otherwise false.
Elevator:
type: boolean
description: True if elevator is available for passenger deck access; otherwise false.
ADAAccessible:
type: boolean
description: True if vessel meets ADA accessibility standards; otherwise false.
MainCabinGalley:
type: boolean
description: True if food service galley is available in main passenger cabin; otherwise false.
MainCabinRestroom:
type: boolean
description: True if restroom is available in main passenger cabin; otherwise false.
PublicWifi:
type: boolean
description: True if public WiFi is available on vessel; otherwise false.
ADAInfo:
type: string
nullable: true
description: Detailed ADA accessibility information for passengers with disabilities.
AdditionalInfo:
type: string
nullable: true
description: Additional accommodation notes not covered by standard boolean flags.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- CarDeckRestroom
- CarDeckShelter
- Elevator
- ADAAccessible
- MainCabinGalley
- MainCabinRestroom
- PublicWifi
- ADAInfo
- AdditionalInfo
description: Vessel accommodation information including amenities, accessibility features, and passenger facilities.
- type: object
properties:
VesselID:
type: integer
description: Numeric ID of the vessel.
VesselSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel.
VesselName:
type: string
nullable: true
description: Display name of the vessel.
VesselAbbrev:
type: string
nullable: true
description: Abbreviation code of the vessel.
Class:
type: object
nullable: true
properties:
ClassID:
type: integer
description: Numeric ID of the vessel class.
ClassSubjectID:
type: integer
description: Numeric ID of the WSF subject for this vessel class.
ClassName:
type: string
nullable: true
description: Display name of the vessel class.
SortSeq:
type: integer
nullable: true
description: Display sort order; lower values appear first in lists.
DrawingImg:
type: string
nullable: true
description: URL to detailed vessel class drawing image.
SilhouetteImg:
type: string
nullable: true
description: URL to small silhouette image of vessel class.
PublicDisplayName:
type: string
nullable: true
description: Public-facing display name of the vessel class.
required:
- ClassID
- ClassSubjectID
- ClassName
- SortSeq
- DrawingImg
- SilhouetteImg
- PublicDisplayName
description: Vessel class information grouping similar vessels in the fleet.
VesselNameDesc:
type: string
description: Cultural and historical context for vessel name origin.
VesselHistory:
type: string
nullable: true
description: Operational history and milestones for the vessel.
Beam:
type: string
description: Vessel beam width in feet and inches.
CityBuilt:
type: string
description: City where vessel was constructed.
SpeedInKnots:
type: integer
nullable: true
description: Maximum operational speed in knots.
Draft:
type: string
description: Vessel draft depth in feet and inches.
EngineCount:
type: integer
nullable: true
description: Total number of propulsion engines aboard vessel.
Horsepower:
type: integer
nullable: true
description: Total engine horsepower output.
Length:
type: string
description: Vessel overall length in feet and inches.
MaxPassengerCount:
type: integer
nullable: true
description: Maximum passenger capacity.
PassengerOnly:
type: boolean
description: True if vessel carries only passengers; otherwise false.
FastFerry:
type: boolean
description: True if vessel is classified as a fast ferry; otherwise false.
PropulsionInfo:
type: string
description: Engine propulsion type and fuel technology.
TallDeckClearance:
type: integer
nullable: true
description: Tall deck vertical clearance height in inches.
RegDeckSpace:
type: integer
nullable: true
description: Maximum regular deck vehicle capacity including tall deck spaces.
TallDeckSpace:
type: integer
nullable: true
description: Tall deck vehicle capacity.
Tonnage:
type: integer
nullable: true
description: Vessel gross tonnage.
Displacement:
type: integer
nullable: true
description: Vessel displacement weight in long tons.
YearBuilt:
type: integer
nullable: true
description: Vessel construction year.
YearRebuilt:
type: integer
nullable: true
description: Vessel major rebuild year.
VesselDrawingImg:
type: string
nullable: true
description: URL to detailed vessel drawing image.
SolasCertified:
type: boolean
description: True if vessel meets SOLAS international safety standards; otherwise false.
MaxPassengerCountForInternational:
type: integer
nullable: true
description: Maximum passenger capacity for international routes.
required:
- VesselID
- VesselSubjectID
- VesselName
- VesselAbbrev
- Class
- VesselNameDesc
- VesselHistory
- Beam
- CityBuilt
- SpeedInKnots
- Draft
- EngineCount
- Horsepower
- Length
- MaxPassengerCount
- PassengerOnly
- FastFerry
- PropulsionInfo
- TallDeckClearance
- RegDeckSpace
- TallDeckSpace
- Tonnage
- Displacement
- YearBuilt
- YearRebuilt
- VesselDrawingImg
- SolasCertified
- MaxPassengerCountForInternational
description: Vessel technical specifications including dimensions, capacity, speed, propulsion, and build details.
description: Complete vessel information combining identification, operational status, accommodations, and technical specifications in a single schema.
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API (showing first item of 21 total)
value:
- VesselID: 1
VesselSubjectID: 1
VesselName: Cathlamet
VesselAbbrev: CAT
Class:
ClassID: 10
ClassSubjectID: 310
ClassName: Issaquah 130
SortSeq: 40
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/4-issaquah130-sillouette_sml.gif
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
/vesselVerbose/{VesselID}:
get:
summary: Get complete vessel information for a specific vessel by ID.
operationId: fetchVesselsVerboseByVesselId
tags:
- cache-flush-date-vessels
x-codeSamples:
- lang: JavaScript
source: |-
import { fetchVesselsVerboseByVesselId } from 'ws-dottie/wsf-vessels/core';
const data = await fetchVesselsVerboseByVesselId({
params: {
"VesselID": 68
},
fetchMode: 'native',
validate: true
});
console.log(data);
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/FetchVesselsVerboseByVesselIdOutput'
examples:
sampleResponse:
summary: Sample response
description: Example of a successful response from the API
value:
VesselID: 68
VesselSubjectID: 462
VesselName: Tokitae
VesselAbbrev: TOK
Class:
ClassID: 100
ClassSubjectID: 319
ClassName: Olympic
SortSeq: 35
DrawingImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/8-olympic-2014.gif
SilhouetteImg: https://www.wsdot.wa.gov/ferries/images/pages/boat_drawings/3-issaquah-sillouette_sml.gif
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
tags:
- name: cache-flush-date-vessels
description: Cache invalidation timestamp for static wsf-vessels data.
x-description: Timestamp indicating when any static endpoint data for the wsf-vessels API was last updated. Use this endpoint to determine when to invalidate cached vessel information. When the returned date changes, refresh cached data from static endpoints.
x-cacheStrategy: STATIC
x-useCases:
- Poll periodically to detect when static vessel data has changed.
- Invalidate application cache when timestamp changes.
- Coordinate cache refresh across multiple static endpoints.
- name: vessel-accommodations
description: Passenger amenities and accessibility features for WSF vessels.
x-description: Amenity and accessibility information including ADA compliance, restrooms, food service, elevators, and connectivity. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
x-cacheStrategy: STATIC
x-useCases:
- Display vessel amenities in passenger information systems.
- Plan accessible travel for passengers with disabilities.
- Compare vessel features for trip planning.
- name: vessel-basics
description: Essential vessel identification and operational status.
x-description: Basic vessel information including names, IDs, classifications, and operational status. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
x-cacheStrategy: STATIC
x-useCases:
- Display vessel lists and status in passenger information systems.
- Track fleet operational status and availability.
- Provide foundation data for vessel selection.
- name: vessel-histories
description: Historical sailing records for WSF vessels.
x-description: Historical voyage data including departure and arrival terminals, scheduled and actual departure times, and estimated arrival times. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
x-cacheStrategy: STATIC
x-useCases:
- Analyze on-time performance and voyage patterns.
- Track historical vessel movements and routes.
- Generate reports on operational history.
- name: vessel-locations
description: Real-time vessel positions and status for WSF fleet.
x-description: Current GPS coordinates, speed, heading, terminal assignments, and ETAs. This endpoint is real-time; cacheFlushDate is not used for cache invalidation.
x-cacheStrategy: REALTIME
x-useCases:
- Show live vessel positions and ETAs in rider apps.
- Monitor fleet operations in internal dashboards.
- Calculate arrival times and voyage progress.
x-updateFrequency: 5s
- name: vessel-stats
description: Technical specifications and capacity data for WSF vessels.
x-description: Physical dimensions, engine details, passenger and vehicle capacity, and construction information. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
x-cacheStrategy: STATIC
x-useCases:
- Compare vessel capabilities and specifications.
- Plan capacity and route assignments.
- Support maintenance and technical reference.
- name: vessel-verbose
description: Complete vessel information combining basics, stats, and accommodations.
x-description: Comprehensive vessel profiles combining identification, operational status, technical specifications, and amenities in a single response. Use the cacheFlushDate endpoint for this API to determine when to invalidate cached data for this group.
x-cacheStrategy: STATIC
x-useCases:
- Display complete vessel profiles in passenger information systems.
- Reduce API calls by fetching all vessel data at once.
- Support comprehensive vessel comparison and selection.