{"openapi":"3.0.1","info":{"title":"Digitraffic Marine API","version":"Branch: master, tag: 2026.10.26-1 #b891185 @ 2026-10-27T08:01:54+0000","description":"[OpenAPI document](/swagger/openapi.json)\n\nDigitraffic is a service operated by [Fintraffic](https://www.fintraffic.fi), offering real time traffic information. Currently the service covers *road, marine and rail* traffic. More information can be found at the [Digitraffic website](https://www.digitraffic.fi/)\n\nThe service has a public Google-group [meri.digitraffic.fi](https://groups.google.com/forum/#!forum/meridigitrafficfi) for communication between developers, service administrators and Fintraffic. The discussion in the forum is mostly in Finnish, but you're welcome to communicate in English too.\n\n### General notes of the API\n* Many Digitraffic APIs use the GeoJSON format. The definition of GeoJSON can be found at [https://tools.ietf.org/html/rfc7946](https://tools.ietf.org/html/rfc7946).\n* For dates and times, the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format is used with \"Zulu\" zero offset from UTC unless otherwise specified (i.e., \"yyyy-mm-ddThh:mm:ss[.mmm]Z\"). E.g. 2019-11-01T06:30:00Z.","termsOfService":"https://www.digitraffic.fi/en/terms-of-service/","contact":{"name":"Digitraffic / Fintraffic","url":"https://www.digitraffic.fi/"},"license":{"name":"Creative Commons 4.0 BY","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://meri.digitraffic.fi"}],"paths":{"/api/aton/v1/faults":{"get":{"tags":["Aton Fault V1"],"summary":"Return all active faults in GeoJSON","parameters":[{"name":"fixed_in_hours","in":"query","description":"Show faults that are unfixed or were fixed at most this many hours ago (default 7 days).  Must be between 0 and 2400","schema":{"type":"string"}},{"name":"language","in":"query","description":"Language: en, fi or sv (default en)","schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/geo+json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/FaultsModel"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/winter-navigation/v2/locations":{"get":{"tags":["Winter Navigation V2"],"summary":"Return all locations","responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Locations"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/winter-navigation/v2/vessels/{vesselId}":{"get":{"tags":["Winter Navigation V2"],"summary":"Return one vessel","parameters":[{"name":"activeTo","in":"query","description":"An ISO 8601 date-time. Filters for related activities or planned assistances starting or in progress before this time.","schema":{"type":"string"}},{"name":"activeFrom","in":"query","description":"An ISO 8601 date-time. Filters for related activities or planned assistances starting or in progress after this time.","schema":{"type":"string"}},{"name":"vesselId","in":"path","description":"IMO or MMSI","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vessels"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/winter-navigation/v2/dirways":{"get":{"tags":["Winter Navigation V2"],"summary":"Return all dirways","responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dirways"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/winter-navigation/v2/locations/{locode}":{"get":{"tags":["Winter Navigation V2"],"summary":"Return one location","parameters":[{"name":"locode","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Locations"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/winter-navigation/v2/vessels":{"get":{"tags":["Winter Navigation V2"],"summary":"Return all vessels","parameters":[{"name":"activeTo","in":"query","description":"An ISO 8601 date-time. Filters for vessels with related activities or planned assistances starting or in progress before this time.","schema":{"type":"string"}},{"name":"activeFrom","in":"query","description":"An ISO 8601 date-time. Filters for vessels with related activities or planned assistances starting or in progress after this time. If omitted, defaults to one week ago.","schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Vessels"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/port-call/v2/visits":{"get":{"tags":["Port Call V2"],"summary":"Return all active visits. Visits are sorted by default in ascending order by ATA if available, otherwise by ETA.","parameters":[{"name":"portOfCall","in":"query","description":"Filter by port locode.","schema":{"type":"string"}},{"name":"vesselName","in":"query","description":"Filter by vessel name. Case-insensitive partial match.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Sort results by field:direction. Fields: eta, etd, ata, atd, vesselName, portOfCall, status. Directions: asc, desc. Example: sort=eta:desc","schema":{"type":"string"}},{"name":"fromDateTime","in":"query","description":"Return visits where any timestamp (ETA, ETD, ATA or ATD) is on or after this value. Inclusive. ISO 8601 datetime.","schema":{"type":"string"}},{"name":"imo","in":"query","description":"Filter by IMO number.","schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by visit status. Values: expected-to-arrive, arrived, departed, cancelled.","schema":{"type":"string"}},{"name":"toDateTime","in":"query","description":"Return visits where any timestamp (ETA, ETD, ATA or ATD) is before this value. Exclusive. ISO 8601 datetime.","schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VisitsModel"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/port-call/v2/visits/{visitId}":{"get":{"parameters":[{"name":"visitId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"200 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VisitModel"}}}},"400":{"description":"400 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}},"500":{"description":"500 response","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Empty"}}}}}}},"/api/sse/v1/measurements":{"get":{"tags":["SSE V1"],"summary":"Return Sea State Estimation (SSE) data as GeoJSON.  If from/to parameters are given, returs measurements from history, otherwise returns the latest measurements","operationId":"measurements","parameters":[{"name":"siteNumber","in":"query","description":"SSE site number","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"Return SSE data after given time in ISO date format {yyyy-MM-dd'T'HH:mm:ss.SSSZ} e.g. 2019-06-01T01:30:00.000Z","required":false,"schema":{"type":"string","format":"date-time"},"example":"2019-06-01T01:30:00.000Z"},{"name":"to","in":"query","description":"Return SSE data before given time in ISO date format {yyyy-MM-dd'T'HH:mm:ss.SSSZ} e.g. 2019-06-30T01:30:00.000Z","required":false,"schema":{"type":"string","format":"date-time"},"example":"2019-06-30T01:30:00.000Z"}],"responses":{"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/SseFeatureCollectionV1"}},"application/geo+json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/SseFeatureCollectionV1"}},"application/vnd.geo+json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/SseFeatureCollectionV1"}}}}}}},"/api/port-call/v1/vessel-details":{"get":{"tags":["Port Call V1"],"summary":"Return list of vessels details.","operationId":"findVesselDetails","parameters":[{"name":"from","in":"query","description":"Return details of vessels whose metadata has changed after given time in ISO date format {yyyy-MM-dd'T'HH:mm:ss.SSSZ} e.g. 2016-10-31T06:30:00.000Z. Default value is now minus 24 hours if all parameters are empty.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"vesselName","in":"query","description":"Return vessel details for given vessel name","required":false,"schema":{"type":"string"}},{"name":"mmsi","in":"query","description":"Return vessel details for given mmsi","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"imo","in":"query","description":"Return vessel details for given IMO/LLOYDS","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"nationality","in":"query","description":"Return vessel details for vessels with given nationality or nationalities (e.g. FI)","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"vesselTypeCode","in":"query","description":"Return vessel details for given vessel type code","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful retrieval of vessel details","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VesselDetails"}}}},"500":{"description":"Internal server error"}}}},"/api/port-call/v1/ports":{"get":{"tags":["Port Call V1"],"summary":"Return all ports with port areas and berths.","operationId":"findPortsLocations","responses":{"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/PortLocationDtoV1"}}}}}}},"/api/port-call/v1/ports/{locode}":{"get":{"tags":["Port Call V1"],"summary":"Return one port with port areas and berths by SafeSeaNet location code (locode).","operationId":"findPortLocationByLocode","parameters":[{"name":"locode","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of ports","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/PortLocationDtoV1"}}}},"404":{"description":"Location not found"},"500":{"description":"Internal server error"}}}},"/api/port-call/v1/port-calls":{"get":{"tags":["Port Call V1"],"summary":"Find port calls","description":"If the search result size exceeds 1000 items, the operation will return an error, and thus try to narrow down your search criteria to limit the result size below 1000 items.\n\nData is provided as is and isn't moderated in any way. Timestamps are in valid ISO 8601 format, e.g. 2016-10-31 or 2016-10-31T06:30:00.000Z, but may still contain anomalies such as the timestamp being in distant future.","operationId":"listAllPortCalls","parameters":[{"name":"date","in":"query","description":"Return port calls received on given date.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"from","in":"query","description":"Return port calls received after given time. Default value is now minus 24 hours if all parameters are empty.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Return port calls received before given time.Default value is now plus 100 days, if parameter is empty.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"etaFrom","in":"query","description":"Return port calls whose ETA time is after the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"etdFrom","in":"query","description":"Return port calls whose ETD time is after the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"ataFrom","in":"query","description":"Return port calls whose ATA time is after the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"atdFrom","in":"query","description":"Return port calls whose ATD time is after the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"etaTo","in":"query","description":"Return port calls whose ETA time is before the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"etdTo","in":"query","description":"Return port calls whose ETD time is before the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"ataTo","in":"query","description":"Return port calls whose ATA time is before the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"atdTo","in":"query","description":"Return port calls whose ATD time is before the given time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"locode","in":"query","description":"Return port calls for given locode","required":false,"schema":{"type":"string"}},{"name":"vesselName","in":"query","description":"Return port calls for given vessel name","required":false,"schema":{"type":"string"}},{"name":"mmsi","in":"query","description":"Return port calls for given mmsi","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"imo","in":"query","description":"Return port calls for given IMO/LLOYDS","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"nationality","in":"query","description":"Return port calls for vessels with given nationality","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"vesselTypeCode","in":"query","description":"Return port calls for given vessel type code","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful retrieval of port calls","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/PortCallsV1"}}}},"500":{"description":"Internal server error"}}}},"/api/port-call/v1/code-descriptions":{"get":{"tags":["Port Call V1"],"summary":"Return all code descriptions","operationId":"listCodeDescriptions","responses":{"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/CodeDescriptionsV1"}}}}}}},"/api/info/v1/update-times":{"get":{"tags":["Info V1"],"summary":"Infos about apis data update times","description":"General information of API update intervals. Contains information about last updated time and how often should API to be called by client. \nFor `dataUpdateInterval` field the `P0S` value has special meaning that data is updated nearly in real time. \n`null` value indicates static data and it is only updated when needed.","operationId":"dataUpdatedInfos","responses":{"200":{"description":"Successful retrieval of weather Station Feature Collections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInfosDtoV1"}}}}}}},"/api/ais/v1/vessels":{"get":{"tags":["AIS V1"],"summary":"Return latest vessel metadata for all known vessels.","operationId":"allVessels","parameters":[{"name":"from","in":"query","description":"From timestamp in milliseconds from Unix epoch 1970-01-01T00:00:00Z. Default value is 24 hours in the past.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"to","in":"query","description":"To timestamp","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Successful retrieval of vessel metadata","content":{"application/json;charset=UTF-8":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VesselMetadataJsonV1"}}}}},"500":{"description":"Internal server error"}}}},"/api/ais/v1/vessels/{mmsi}":{"get":{"tags":["AIS V1"],"summary":"Return latest vessel metadata by mmsi.","operationId":"vesselMetadataByMssi","parameters":[{"name":"mmsi","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful retrieval of vessel metadata","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VesselMetadataJsonV1"}}}},"404":{"description":"Vessel metadata not found"},"500":{"description":"Internal server error"}}}},"/api/ais/v1/locations":{"get":{"tags":["AIS V1"],"summary":"Find latest vessel locations by mmsi and optional timestamp interval in milliseconds from Unix epoch.","operationId":"vesselLocationsByMssiAndTimestamp","parameters":[{"name":"mmsi","in":"query","description":"Maritime Mobile Service Identity (MMSI)","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"from","in":"query","description":"From timestamp in milliseconds from Unix epoch 1970-01-01T00:00:00Z. Default value is 24 hours in the past.","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"to","in":"query","description":"To timestamp","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"radius","in":"query","description":"Radius of search circle in kilometers (km) using haversine formula.","required":false,"schema":{"type":"number","format":"double"}},{"name":"latitude","in":"query","description":"Latitude of the point","required":false,"schema":{"type":"number","format":"double"}},{"name":"longitude","in":"query","description":"Longitude of the point","required":false,"schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"OK","content":{"application/json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VesselLocationFeatureCollectionV1"}},"application/geo+json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VesselLocationFeatureCollectionV1"}},"application/vnd.geo+json;charset=UTF-8":{"schema":{"$ref":"#/components/schemas/VesselLocationFeatureCollectionV1"}}}}}}}},"components":{"schemas":{"Empty":{"title":"Empty Schema","type":"object"},"FaultModel":{"type":"object","properties":{"entry_timestamp":{"type":"string","description":"Created at timestamp","format":"date-time"},"id":{"type":"string","description":"Id"},"type":{"type":"string","description":"Type","format":"string"},"fixed_timestamp":{"type":"string","description":"Fixed at timestamp","format":"date-time"}},"description":"ATON Faults GeoJson"},"FaultFeatureModel":{"required":["geometry","properties","type"],"type":"object","properties":{"geometry":{"type":"object","description":"GeoJSON geometry"},"type":{"type":"string","description":"Feature","enum":["Feature"]},"properties":{"$ref":"#/components/schemas/FaultModel"}},"description":"GeoJson Feature"},"FaultsModel":{"required":["features","type"],"type":"object","properties":{"features":{"type":"array","items":{"$ref":"#/components/schemas/FaultFeatureModel"}},"type":{"type":"string","description":"FeatureCollection","enum":["FeatureCollection"]}},"description":"GeoJson FeatureCollection"},"Dirways":{"required":["features","type"],"type":"object","properties":{"features":{"type":"array","items":{"required":["geometry","properties","type"],"type":"object","properties":{"geometry":{"anyOf":[{"required":["coordinates","type"],"type":"object","properties":{"coordinates":{"maxItems":3,"minItems":2,"type":"array","items":{"type":"number"}},"type":{"type":"string","enum":["Point"]}},"additionalProperties":false},{"required":["coordinates","type"],"type":"object","properties":{"coordinates":{"minItems":2,"type":"array","items":{"maxItems":3,"minItems":2,"type":"array","items":{"type":"number"}}},"type":{"type":"string","enum":["LineString"]}},"additionalProperties":false}]},"type":{"type":"string","enum":["Feature"]},"properties":{"required":["description","name"],"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false,"description":"Dirways are paths published by icebreakers to help coordinate the movement of vessels through the ice."}},"additionalProperties":false,"description":"GeoJSON Feature"}},"type":{"type":"string","enum":["FeatureCollection"]}},"additionalProperties":false,"description":"GeoJSON FeatureCollection"},"Vessels":{"required":["lastUpdated","vessels"],"type":"object","properties":{"lastUpdated":{"type":"string","format":"date-time","nullable":true},"vessels":{"type":"array","items":{"required":["activities","callSign","imo","mmsi","name","plannedAssistances","shortcode","type"],"type":"object","properties":{"lastUpdated":{"type":"string","format":"date-time","nullable":true},"mmsi":{"type":"number","nullable":true},"activities":{"type":"array","description":"A list of all activities related to this vessel.","items":{"anyOf":[{"required":["assistingVessel","endTime","publicComment","reason","startTime","type"],"type":"object","properties":{"reason":{"description":"Optional reason for activity","type":"string","nullable":true},"assistingVessel":{"required":["imo","mmsi","name"],"type":"object","properties":{"mmsi":{"type":"number","nullable":true},"name":{"type":"string"},"imo":{"type":"number","nullable":true}},"additionalProperties":false,"description":"Vessel that is assisting"},"publicComment":{"description":"Optional publicly available specification for activity.","type":"string","nullable":true},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true},"type":{"type":"string","description":"Current list of types (subject to change): CREWA (Actual crew change), LED (Lead), LOC (Local Icebreaking), MOVE (Move), ORDER (Order), OUT (Out of Operation), CREWP (Planned crew change), STOP (Stop), TOW (Tow), TRANS (Transfer), WAIT (Wait)\n\nActivities that affect vessels subject to icebreaker assistance:\n- WAIT: vessel is waiting for icebreaker assistance\n- STOP: vessel is waiting for other reason\n\nActivities that affect icebreakers:\n- STOP, LOC, MOVE, TRANS\n\nActivities that affect both vessel and icebreaker:\n- LED, TOW"}},"additionalProperties":false},{"required":["assistedVessel","endTime","publicComment","reason","startTime","type"],"type":"object","properties":{"reason":{"description":"Optional reason for activity","type":"string","nullable":true},"assistedVessel":{"required":["imo","mmsi","name"],"type":"object","properties":{"mmsi":{"type":"number","nullable":true},"name":{"type":"string"},"imo":{"type":"number","nullable":true}},"additionalProperties":false,"description":"Vessel that is being assisted"},"publicComment":{"description":"Optional publicly available specification for activity.","type":"string","nullable":true},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true},"type":{"type":"string","description":"Current list of types (subject to change): CREWA (Actual crew change), LED (Lead), LOC (Local Icebreaking), MOVE (Move), ORDER (Order), OUT (Out of Operation), CREWP (Planned crew change), STOP (Stop), TOW (Tow), TRANS (Transfer), WAIT (Wait)\n\nActivities that affect vessels subject to icebreaker assistance:\n- WAIT: vessel is waiting for icebreaker assistance\n- STOP: vessel is waiting for other reason\n\nActivities that affect icebreakers:\n- STOP, LOC, MOVE, TRANS\n\nActivities that affect both vessel and icebreaker:\n- LED, TOW"}},"additionalProperties":false},{"required":["endTime","publicComment","reason","startTime","type"],"type":"object","properties":{"reason":{"description":"Optional reason for activity","type":"string","nullable":true},"publicComment":{"description":"Optional publicly available specification for activity.","type":"string","nullable":true},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true},"type":{"type":"string","description":"Current list of types (subject to change): CREWA (Actual crew change), LED (Lead), LOC (Local Icebreaking), MOVE (Move), ORDER (Order), OUT (Out of Operation), CREWP (Planned crew change), STOP (Stop), TOW (Tow), TRANS (Transfer), WAIT (Wait)\n\nActivities that affect vessels subject to icebreaker assistance:\n- WAIT: vessel is waiting for icebreaker assistance\n- STOP: vessel is waiting for other reason\n\nActivities that affect icebreakers:\n- STOP, LOC, MOVE, TRANS\n\nActivities that affect both vessel and icebreaker:\n- LED, TOW"}},"additionalProperties":false}]}},"name":{"type":"string"},"imo":{"type":"number","nullable":true},"plannedAssistances":{"type":"array","description":"Planned assistances where the vessel is either the icebreaker or the one being assisted.","items":{"anyOf":[{"required":["assistingVessel","endTime","queuePosition","startTime"],"type":"object","properties":{"queuePosition":{"type":"number","description":"Order number of this assistance in the icebreaker's queue of planned assistances"},"assistingVessel":{"required":["imo","mmsi","name"],"type":"object","properties":{"mmsi":{"type":"number","nullable":true},"name":{"type":"string"},"imo":{"type":"number","nullable":true}},"additionalProperties":false,"description":"Vessel that is assisting"},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},{"required":["assistedVessel","endTime","queuePosition","startTime"],"type":"object","properties":{"queuePosition":{"type":"number","description":"Order number of this assistance in the icebreaker's queue of planned assistances"},"assistedVessel":{"required":["imo","mmsi","name"],"type":"object","properties":{"mmsi":{"type":"number","nullable":true},"name":{"type":"string"},"imo":{"type":"number","nullable":true}},"additionalProperties":false,"description":"Vessel that is being assisted"},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false}]}},"shortcode":{"description":"Three letter code for vessel. Not unique, but might be useful to differentiate between vessels where space is limited.","type":"string","nullable":true},"type":{"description":"Vessel type. Current list of types (subject to change): Barge, Bulk Cargo, Container Cargo, General Cargo, Icebreaker, Other vessel, Passenger Ship, Pusher, Pusher+Barge, Refridgerated Cargo, River Tonnage, Roro Cargo, Supply Ship, Tanker, Tug, Tug+Barge, Vehicle Carrier","type":"string","nullable":true},"callSign":{"description":"VHF callsign","type":"string","nullable":true}},"additionalProperties":false}}},"additionalProperties":false},"Locations":{"required":["features","type"],"type":"object","properties":{"features":{"type":"array","items":{"required":["geometry","properties","type"],"type":"object","properties":{"geometry":{"required":["coordinates","type"],"type":"object","properties":{"coordinates":{"maxItems":3,"minItems":2,"type":"array","items":{"type":"number"}},"type":{"type":"string","enum":["Point"]}},"additionalProperties":false,"nullable":true},"type":{"type":"string","enum":["Feature"]},"properties":{"required":["locodeList","name","nationality","restrictions","suspensions","type","winterport"],"type":"object","properties":{"nationality":{"type":"string"},"name":{"type":"string"},"suspensions":{"type":"array","items":{"required":["dueTo","endTime","portsClosed","prenotification","specifications","startTime"],"type":"object","properties":{"prenotification":{"type":"boolean","description":"Whether suspension is announced to users before it starts."},"portsClosed":{"type":"boolean","description":"Bit indicating whether the port is entirely closed to all operations."},"dueTo":{"type":"string","description":"Main reason for port suspension."},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true},"specifications":{"description":"More specific reason for port suspension. ","type":"string","nullable":true}},"additionalProperties":false,"description":"Information on port suspensions."}},"locodeList":{"type":"string","description":"Comma separated list of UN locodes."},"restrictions":{"type":"array","items":{"required":["endTime","startTime","textCompilation"],"type":"object","properties":{"textCompilation":{"type":"string","description":"Textual presentation of the restriction."},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Assistance restrictions are restrictions published by authorities that target a specific location for a range of time."}},"winterport":{"type":"boolean","description":"Boolean indicating whether a port is a winterport or not."},"type":{"type":"string","description":"Type of location. PORT or FAIRWAY, but there could be more in the future."}},"additionalProperties":false,"description":"Locations are points of interest on a map, usually ports, that can have restrictions placed on them."}},"additionalProperties":false,"description":"GeoJSON Feature"}},"type":{"type":"string","enum":["FeatureCollection"]}},"additionalProperties":false,"description":"GeoJSON FeatureCollection"},"VisitModel":{"required":["eta","portOfCall","status","updateTime","visitId"],"type":"object","properties":{"previousPortName":{"type":"string","description":"Previous port name"},"shipCallSign":{"maxLength":7,"type":"string","description":"Ship call sign"},"breadth":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel breadth in metres"},"portOfCall":{"maxLength":5,"minLength":5,"type":"string","description":"Port locode of visit"},"mmsi":{"maxLength":9,"minLength":9,"pattern":"^[0-9]{9}$","type":"string","description":"Ship MMSI number"},"grossTonnage":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Gross tonnage (GT)"},"declarantName":{"maxLength":70,"type":"string","description":"Declarant name"},"netTonnage":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Net tonnage (NT)"},"portName":{"type":"string","description":"Port of call name"},"berthCode":{"type":"string","description":"Unique berth code, if available"},"berthName":{"type":"string","description":"Berth or mooring place, if available"},"ata":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Actual time of arrival","format":"date-time"},"vesselId":{"maxLength":7,"minLength":7,"type":"string","description":"IMO-number"},"atd":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Actual time of departure","format":"date-time"},"eta":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Estimated time of arrival","format":"date-time"},"visitId":{"maxLength":35,"type":"string"},"etd":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Estimated time of departure","format":"date-time"},"height":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel height in metres"},"nextPortOfCall":{"maxLength":5,"type":"string","description":"Next port (UN/LOCODE)"},"portAreaCode":{"type":"string","description":"Port area code, if available"},"length":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel length in metres"},"updateTime":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"When visit was updated","format":"date-time"},"previousPortOfCall":{"maxLength":5,"type":"string","description":"Previous port (UN/LOCODE)"},"vesselType":{"maxLength":4,"type":"string","description":"Vessel type code"},"portAreaName":{"type":"string","description":"Port area name, if available"},"vesselName":{"maxLength":70,"type":"string","description":"Vessel name"},"nextPortName":{"type":"string","description":"Next port name"},"status":{"type":"string","description":"Visit status","enum":["Expected to Arrive","Arrived","Departed","Cancelled"]}},"additionalProperties":false},"VisitsModel":{"type":"array","items":{"required":["eta","portOfCall","status","updateTime","visitId"],"type":"object","properties":{"previousPortName":{"type":"string","description":"Previous port name"},"shipCallSign":{"maxLength":7,"type":"string","description":"Ship call sign"},"breadth":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel breadth in metres"},"portOfCall":{"maxLength":5,"minLength":5,"type":"string","description":"Port locode of visit"},"mmsi":{"maxLength":9,"minLength":9,"pattern":"^[0-9]{9}$","type":"string","description":"Ship MMSI number"},"grossTonnage":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Gross tonnage (GT)"},"declarantName":{"maxLength":70,"type":"string","description":"Declarant name"},"netTonnage":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Net tonnage (NT)"},"portName":{"type":"string","description":"Port of call name"},"berthCode":{"type":"string","description":"Unique berth code, if available"},"berthName":{"type":"string","description":"Berth or mooring place, if available"},"ata":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Actual time of arrival","format":"date-time"},"vesselId":{"maxLength":7,"minLength":7,"type":"string","description":"IMO-number"},"atd":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Actual time of departure","format":"date-time"},"eta":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Estimated time of arrival","format":"date-time"},"visitId":{"maxLength":35,"type":"string"},"etd":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"Estimated time of departure","format":"date-time"},"height":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel height in metres"},"nextPortOfCall":{"maxLength":5,"type":"string","description":"Next port (UN/LOCODE)"},"portAreaCode":{"type":"string","description":"Port area code, if available"},"length":{"maximum":9007199254740991,"minimum":0,"type":"integer","description":"Vessel length in metres"},"updateTime":{"pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string","description":"When visit was updated","format":"date-time"},"previousPortOfCall":{"maxLength":5,"type":"string","description":"Previous port (UN/LOCODE)"},"vesselType":{"maxLength":4,"type":"string","description":"Vessel type code"},"portAreaName":{"type":"string","description":"Port area name, if available"},"vesselName":{"maxLength":70,"type":"string","description":"Vessel name"},"nextPortName":{"type":"string","description":"Next port name"},"status":{"type":"string","description":"Visit status","enum":["Expected to Arrive","Arrived","Departed","Cancelled"]}},"additionalProperties":false}},"Point":{"required":["coordinates","type"],"type":"object","properties":{"type":{"type":"string","example":"Point","enum":["Point"]},"coordinates":{"type":"array","description":"An array of coordinates. Coordinates are in WGS84 format in decimal degrees: [LONGITUDE, LATITUDE, {ALTITUDE}]. Altitude is optional and measured in meters.","example":[26.97677492,65.3467385],"items":{"type":"number","description":"An array of coordinates. Coordinates are in WGS84 format in decimal degrees: [LONGITUDE, LATITUDE, {ALTITUDE}]. Altitude is optional and measured in meters.","format":"double"}},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"GeoJSON Point Geometry object"},"SseFeatureCollectionV1":{"required":["dataUpdatedTime","features"],"type":"object","properties":{"type":{"type":"string","description":"GeoJSON object type"},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"features":{"type":"array","items":{"$ref":"#/components/schemas/SseFeatureV1"}},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"GeoJSON FeatureCollection object of sea state estimate (SSE)"},"SseFeatureV1":{"required":["geometry","properties"],"type":"object","properties":{"siteNumber":{"type":"integer","description":"Identifier of the site","format":"int32"},"type":{"type":"string","description":"GeoJSON object type"},"geometry":{"$ref":"#/components/schemas/Point"},"properties":{"$ref":"#/components/schemas/SsePropertiesV1"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"GeoJSON Feature object of sea state estimate (SSE)"},"SsePropertiesV1":{"required":["confidence","lastUpdate","siteName","siteType"],"type":"object","properties":{"siteNumber":{"type":"integer","description":"Identifier of the site","format":"int32"},"siteName":{"type":"string","description":"Site name of the buoy"},"siteType":{"type":"string","description":"Type of the site. FLOATING is floating in the water and FIXED it is standing on the ground.","enum":["FIXED","FLOATING"]},"lastUpdate":{"type":"string","description":"Data last updated timestamp in ISO 8601 format with time offsets from UTC (eg. 2016-04-20T12:38:16.328+03:00 or 2018-11-09T09:41:09Z)","format":"date-time"},"seaState":{"type":"string","description":"Sea state. If seaState is CALM, the windWaveDir is not reliable. This field is available only for FLOATING siteType","enum":["CALM","LIGHT","MODERATE","BREEZE","GALE","STORM"]},"trend":{"type":"string","description":"Trend of condition change. This field is available only for FLOATING siteType","enum":["UNKNOWN","NO_CHANGE","ASCENDING","DESCENDING"]},"windWaveDir":{"type":"integer","description":"Wind and wave direction in degrees from north. If seaState is CALM, the windWaveDir is not reliable. This field is available only for FLOATING siteType","format":"int32","enum":[null]},"confidence":{"type":"string","description":"Provides information on estimated confidence of mainly the directional information based on the Horizontal Dilution of precision (HDOP) figure obtained from the GPS receiver:\n* POOR: More than 10\n* MODERATE: 2-10\n* GOOD: Less than 2","enum":["POOR","MODERATE","GOOD"]},"heelAngle":{"type":"number","description":"Heel angle of the buoy in degrees (°), 0 is upright and it´s unsigned. This field is available only for FLOATING siteType","enum":[null]},"lightStatus":{"type":"string","description":"Status of the flashlight. Normally ON at nighttime and OFF at daytime. ON_D means that light characteristics are alternated (ie. intensity and frequency) compared to normal ON operation, used normally on daytime.","enum":["ON","OFF","ON_D"]},"temperature":{"type":"integer","description":"Temperature of the air in celsius degree (°C). Since the sensor is inside of the buoy and sunlight can heat up the enclosure this can be used only as a reference measurement as it can show higher readings than the actual air temperature","format":"int32"}},"description":"GeoJSON Properties object of sea state estimate (SSE)"},"ConstructionData":{"type":"object","properties":{"vesselTypeCode":{"type":"integer","xml":{"attribute":true}},"vesselTypeName":{"type":"string","xml":{"attribute":true}},"iceClassCode":{"type":"string","xml":{"attribute":true},"enum":["IAS","IA","IB","IC","II","III","UNKNOWN"]},"iceClassIssueDate":{"type":"string","format":"date-time","xml":{"attribute":true}},"iceClassIssuePlace":{"type":"string","xml":{"attribute":true}},"iceClassEndDate":{"type":"string","format":"date-time","xml":{"attribute":true}},"classificationSociety":{"type":"string","xml":{"attribute":true}},"doubleBottom":{"type":"boolean","xml":{"attribute":true}},"inertGasSystem":{"type":"boolean","xml":{"attribute":true}},"ballastTank":{"type":"boolean","xml":{"attribute":true}}},"xml":{"name":"ConstructionData","namespace":"http://portnet.fi/PortnetWS/PortnetTypes"}},"Dimensions":{"type":"object","properties":{"tonnageCertificateIssuer":{"type":"string","xml":{"attribute":true}},"dateOfIssue":{"type":"string","format":"date-time","xml":{"attribute":true}},"grossTonnage":{"type":"integer","xml":{"attribute":true}},"netTonnage":{"type":"integer","xml":{"attribute":true}},"deathWeight":{"type":"integer","xml":{"attribute":true}},"length":{"type":"number","xml":{"attribute":true}},"overallLength":{"type":"number","xml":{"attribute":true}},"height":{"type":"number","xml":{"attribute":true}},"breadth":{"type":"number","xml":{"attribute":true}},"draught":{"type":"number","xml":{"attribute":true}},"maxSpeed":{"type":"number","xml":{"attribute":true}},"enginePower":{"type":"string","xml":{"attribute":true}},"totalPower":{"type":"integer","xml":{"attribute":true}},"maxPersons":{"type":"integer","xml":{"attribute":true}},"maxPassengers":{"type":"integer","xml":{"attribute":true}},"keelDate":{"type":"string","format":"date-time","xml":{"attribute":true}}},"xml":{"name":"Dimensions","namespace":"http://portnet.fi/PortnetWS/PortnetTypes"}},"RegistrationData":{"type":"object","properties":{"nationality":{"type":"string","xml":{"attribute":true}},"portOfRegistry":{"type":"string","xml":{"attribute":true}},"domicile":{"type":"string","xml":{"attribute":true}}},"xml":{"name":"RegistrationData","namespace":"http://portnet.fi/PortnetWS/PortnetTypes"}},"System":{"type":"object","properties":{"shipOwner":{"type":"string","xml":{"attribute":true}},"shipTelephone1":{"type":"string","xml":{"attribute":true}},"shipTelephone2":{"type":"string","xml":{"attribute":true}},"shipFax":{"type":"string","xml":{"attribute":true}},"shipEmail":{"type":"string","xml":{"attribute":true}},"shipVerifier":{"type":"string","xml":{"attribute":true}}},"xml":{"name":"System","namespace":"http://portnet.fi/PortnetWS/PortnetTypes"}},"VesselConstruction":{"type":"object","properties":{"vesselTypeCode":{"type":"integer","description":"Ship Vessel Type Code","format":"int32"},"vesselTypeName":{"type":"string","description":"Ship Vessel Type Name"},"iceClassCode":{"type":"string","description":"Ship ice class code"},"iceClassIssueDate":{"type":"string","description":"Date when ice class endorsement was issued","format":"date-time"},"iceClassIssuePlace":{"type":"string","description":"Place where ice class endorsement was issued"},"iceClassEndDate":{"type":"string","description":"Date when ice class endorsement ends","format":"date-time"},"doubleBottom":{"type":"boolean","description":"Tells whether vessel has a double bottom"},"inertGasSystem":{"type":"boolean","description":"Tells whether vessel has an Inert gas system"},"ballastTank":{"type":"boolean","description":"Tells whether vessel has a ballast tank"},"all":{"$ref":"#/components/schemas/ConstructionData"}},"description":"Vessel construction"},"VesselDetails":{"type":"object","properties":{"vesselId":{"type":"integer","format":"int64"},"mmsi":{"type":"integer","description":"Ship MMSI (Maritime Mobile Service Identity)","format":"int32"},"name":{"type":"string","description":"Vessel name"},"namePrefix":{"type":"string","description":"Vessel name prefix"},"imoLloyds":{"type":"integer","description":"Ship IMO / Lloyds","format":"int32"},"radioCallSign":{"type":"string","description":"Ship radio call sign"},"radioCallSignType":{"type":"string","description":"Ship radio call sign type"},"updateTimestamp":{"type":"string","description":"Timestamp of last vessel metadata update","format":"date-time"},"dataSource":{"type":"string","description":"Data source"},"vesselConstruction":{"$ref":"#/components/schemas/VesselConstruction"},"vesselDimensions":{"$ref":"#/components/schemas/VesselDimensions"},"vesselRegistration":{"$ref":"#/components/schemas/VesselRegistration"},"vesselSystem":{"$ref":"#/components/schemas/VesselSystem"}},"description":"Vessel details"},"VesselDimensions":{"type":"object","properties":{"tonnageCertificateIssuer":{"type":"string","description":"Tonnage certificate issuer"},"dateOfIssue":{"type":"string","description":"Date when tonnage certificate was issued","format":"date-time"},"grossTonnage":{"type":"integer","description":"Ship gross tonnage","format":"int32"},"netTonnage":{"type":"integer","description":"Ship net tonnage","format":"int32"},"deathWeight":{"type":"integer","description":"Ship death weight","format":"int32"},"length":{"type":"number","description":"Ship length","format":"double"},"overallLength":{"type":"number","description":"Ship overall length","format":"double"},"height":{"type":"number","description":"Ship height","format":"double"},"breadth":{"type":"number","description":"Ship breadth","format":"double"},"draught":{"type":"number","description":"Ship draught","format":"double"},"maxSpeed":{"type":"number","description":"Ship max speed","format":"double"},"enginePower":{"type":"string","description":"Ship engine power"},"all":{"$ref":"#/components/schemas/Dimensions"}},"description":"Vessel dimensions"},"VesselRegistration":{"type":"object","properties":{"nationality":{"type":"string","description":"Ship nationality"},"portOfRegistry":{"type":"string","description":"Ship home city"},"all":{"$ref":"#/components/schemas/RegistrationData"}},"description":"Vessel registration"},"VesselSystem":{"type":"object","properties":{"shipOwner":{"type":"string","description":"Ship owner name"},"shipTelephone1":{"type":"string","description":"Ship telephone"},"shipEmail":{"type":"string","description":"Ship email address"},"shipVerifier":{"type":"string","description":"Ship verifier"},"all":{"$ref":"#/components/schemas/System"}},"description":"Vessel system"},"BerthCollection":{"required":["dataUpdatedTime"],"type":"object","properties":{"berths":{"type":"array","description":"Berths","items":{"$ref":"#/components/schemas/BerthProperties"}},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"}},"description":"Berths"},"BerthProperties":{"required":["berthCode","berthName","locode","portAreaCode"],"type":"object","properties":{"locode":{"type":"string","description":"Maritime Mobile Service Identity"},"portAreaCode":{"type":"string","description":"Port area code"},"berthCode":{"type":"string","description":"Berth code"},"berthName":{"type":"string","description":"Berth name"}},"description":"Berth properties"},"PortAreaFeature":{"required":["geometry","locode","portAreaCode","properties"],"type":"object","properties":{"locode":{"type":"string","description":"Maritime Mobile Service Identity"},"type":{"type":"string","description":"GeoJSON object type"},"geometry":{"$ref":"#/components/schemas/Point"},"properties":{"$ref":"#/components/schemas/PortAreaProperties"},"portAreaCode":{"type":"string","description":"Port area code"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"Port area GeoJSON feature"},"PortAreaFeatureCollection":{"required":["dataUpdatedTime","features"],"type":"object","properties":{"type":{"type":"string","description":"GeoJSON object type"},"features":{"type":"array","items":{"$ref":"#/components/schemas/PortAreaFeature"}},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"Port area GeoJSON feature collection"},"PortAreaProperties":{"required":["locode","portAreaName"],"type":"object","properties":{"locode":{"type":"string","description":"Maritime Mobile Service Identity"},"portAreaName":{"type":"string","description":"Port area name"}},"description":"Port area GeoJSON Properties"},"PortFeature":{"required":["geometry","locode","properties"],"type":"object","properties":{"locode":{"type":"string","description":"Maritime Mobile Service Identity"},"type":{"type":"string","description":"GeoJSON object type"},"geometry":{"$ref":"#/components/schemas/Point"},"properties":{"$ref":"#/components/schemas/PortProperties"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"Port GeoJSON feature"},"PortFeatureCollection":{"required":["dataUpdatedTime","features"],"type":"object","properties":{"type":{"type":"string","description":"GeoJSON object type"},"features":{"type":"array","items":{"$ref":"#/components/schemas/PortFeature"}},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"Ports GeoJSON feature collection"},"PortLocationDtoV1":{"required":["dataUpdatedTime","ssnLocations"],"type":"object","properties":{"dataUpdatedTime":{"type":"string","description":"Data last updated","format":"date-time"},"ssnLocations":{"$ref":"#/components/schemas/PortFeatureCollection"},"portAreas":{"$ref":"#/components/schemas/PortAreaFeatureCollection"},"berths":{"$ref":"#/components/schemas/BerthCollection"}},"description":"Ports, port areas and berths locations."},"PortProperties":{"required":["country","locationName","locode"],"type":"object","properties":{"locode":{"type":"string","description":"Maritime Mobile Service Identity"},"locationName":{"type":"string","description":"Location name"},"country":{"type":"string","description":"Country"}},"description":"Port GeoJSON Properties"},"AgentInfoJsonV1":{"type":"object","properties":{"name":{"type":"string","description":"Name of the agent"},"role":{"type":"integer","description":"Role of the agent","format":"int32"},"portCallDirection":{"type":"string","description":"Port call direction"},"ediNumber":{"type":"string","description":"Electronic data interchange number"}},"description":"Agent info"},"ImoInformationJsonV1":{"type":"object","properties":{"imoGeneralDeclaration":{"type":"string","description":"Tells whether information concerns Departure or Arrival"},"briefParticularsVoyage":{"type":"string","description":"Brief particular information of voyage. Previous and following ports for example."},"portOfDischarge":{"type":"string","description":"Code of port where discharge occurs"},"numberOfCrew":{"type":"integer","description":"Number of crew","format":"int32"},"numberOfPassangers":{"type":"integer","description":"Number of passengers","format":"int32"},"cargoDeclarationOb":{"type":"integer","description":"Number of cargo declarations on board","format":"int32"},"crewListsOb":{"type":"integer","description":"Number of crew lists on board","format":"int32"},"crewsEffectsDeclarationsOb":{"type":"integer","description":"Number of crew effect declarations on board","format":"int32"},"shipStoresDeclarationsOb":{"type":"integer","description":"Number of ship store declarations on board","format":"int32"},"passangerListsOb":{"type":"integer","description":"Number of passenger lists on board","format":"int32"},"healthDeclarationsOb":{"type":"integer","description":"Number of health care declarations on board","format":"int32"}},"description":"IMO information"},"PortAreaDetailsJsonV1":{"type":"object","properties":{"berthName":{"type":"string","description":"Berth name"},"eta":{"type":"string","description":"Estimated time of arrival. Set by ship agent, port or pilot.","format":"date-time"},"portAreaCode":{"type":"string","description":"Port area code"},"berthCode":{"type":"string","description":"Berth code"},"portAreaName":{"type":"string","description":"Port area name"},"etaTimestamp":{"type":"string","description":"Update time of ETA. Set by ship agent, port or pilot.","format":"date-time"},"etaSource":{"type":"string","description":"Source of ETA"},"etd":{"type":"string","description":"Estimated time of departure. Set by ship agent, port or pilot.","format":"date-time"},"etdTimestamp":{"type":"string","description":"Update time of ETD. Set by ship agent, port or pilot.","format":"date-time"},"etdSource":{"type":"string","description":"Source of ETD"},"ata":{"type":"string","description":"Actual time of arrival. Set by ship agent, port or pilot.","format":"date-time"},"ataTimestamp":{"type":"string","description":"Update time of ATA. Set by ship agent, port or pilot.","format":"date-time"},"ataSource":{"type":"string","description":"Source of ATA"},"atd":{"type":"string","description":"Actual time of departure. Set by ship agent, port or pilot.","format":"date-time"},"atdTimestamp":{"type":"string","description":"Update time of ATD. Set by ship agent, port or pilot.","format":"date-time"},"atdSource":{"type":"string","description":"Source of ATD"},"arrivalDraught":{"type":"number","description":"Arrival draught"},"departureDraught":{"type":"number","description":"Departure draught"}},"description":"Port area details"},"PortCallJsonV1":{"required":["portCallId"],"type":"object","properties":{"portCallId":{"type":"integer","description":"Unique identifier for port call","format":"int64"},"portCallTimestamp":{"type":"string","description":"Port call information modification time","format":"date-time"},"customsReference":{"type":"string","description":"Custom's reference"},"portToVisit":{"type":"string","description":"Code of the port to visit"},"prevPort":{"type":"string","description":"Code of the previous port"},"nextPort":{"type":"string","description":"Code of the next port"},"domesticTrafficArrival":{"type":"boolean","description":"Is this a domestic arrival"},"domesticTrafficDeparture":{"type":"boolean","description":"Is this a domestic departure"},"arrivalWithCargo":{"type":"boolean","description":"Does the ship arrive with cargo"},"notLoading":{"type":"boolean","description":"Does the ship load"},"discharge":{"type":"integer","description":"Type of discharge<br>1: Unloads all cargo<br>2: Unloads part of cargo<br>3: Does not unload cargo<br>4: Ship arriving in ballast cargo","format":"int32","enum":[1,2,3,4]},"shipMasterArrival":{"type":"string","description":"Ship master at the moment of arrival(deprecated)"},"shipMasterDeparture":{"type":"string","description":"Ship master at the moment of departure(deprecated)"},"managementNameArrival":{"type":"string","description":"Ship management name at moment of arrival"},"managementNameDeparture":{"type":"string","description":"Ship management name at moment of departure"},"forwarderNameArrival":{"type":"string","description":"Forwarder at moment of arrival"},"forwarderNameDeparture":{"type":"string","description":"Forwarder at moment of departure"},"freeTextArrival":{"type":"string","description":"Notes concerning arrival"},"freeTextDeparture":{"type":"string","description":"Notes concerning departure"},"vesselName":{"type":"string","description":"Vessel name"},"vesselNamePrefix":{"type":"string","description":"Vessel name prefix"},"radioCallSign":{"type":"string","description":"Ship radio call sign"},"radioCallSignType":{"type":"string","description":"Ship radio call sign type"},"imoLloyds":{"type":"integer","description":"Ship IMO / Lloyds","format":"int32"},"mmsi":{"type":"integer","description":"Ship MMSI (Maritime Mobile Service Identity)","format":"int32"},"nationality":{"type":"string","description":"Ship nationality"},"vesselTypeCode":{"type":"integer","description":"Ship Vessel Type Code","format":"int32"},"certificateIssuer":{"type":"string","description":"Name of certificate issuer"},"certificateStartDate":{"type":"string","description":"Certificate start date","format":"date-time"},"certificateEndDate":{"type":"string","description":"Certificate end date","format":"date-time"},"currentSecurityLevel":{"type":"integer","description":"Current security level. 1 = normal security level, 2 = raised security level, 3 = exceptional security level","format":"int32"},"agentInfo":{"uniqueItems":true,"type":"array","description":"Ship agents","items":{"$ref":"#/components/schemas/AgentInfoJsonV1"}},"imoInformation":{"uniqueItems":true,"type":"array","description":"IMO information","items":{"$ref":"#/components/schemas/ImoInformationJsonV1"}},"portAreaDetails":{"uniqueItems":true,"type":"array","description":"Port area details","items":{"$ref":"#/components/schemas/PortAreaDetailsJsonV1"}}},"description":"Port call"},"PortCallsV1":{"required":["dataUpdatedTime","portCalls"],"type":"object","properties":{"dataUpdatedTime":{"type":"string","description":"Timestamp when port calls were updated","format":"date-time"},"portCalls":{"type":"array","description":"Port calls","items":{"$ref":"#/components/schemas/PortCallJsonV1"}}},"description":"Port call"},"CodeDescriptionJsonV1":{"required":["code","descriptionEn","descriptionFi"],"type":"object","properties":{"code":{"type":"string","description":"Code"},"descriptionFi":{"type":"string","description":"Description of the code(Finnish)"},"descriptionEn":{"type":"string","description":"Description of the code(English)"}},"description":"Description of code"},"CodeDescriptionsV1":{"required":["agentTypes","cargoTypes","dataUpdatedTime","vesselTypes"],"type":"object","properties":{"dataUpdatedTime":{"type":"string","description":"Timestamp when metadata were last updated","format":"date-time"},"cargoTypes":{"type":"array","description":"All cargo type descriptions","items":{"$ref":"#/components/schemas/CodeDescriptionJsonV1"}},"vesselTypes":{"type":"array","description":"All vessel type descriptions","items":{"$ref":"#/components/schemas/CodeDescriptionJsonV1"}},"agentTypes":{"type":"array","description":"All agent type descriptions","items":{"$ref":"#/components/schemas/CodeDescriptionJsonV1"}}},"description":"Code descriptions associated with port calls"},"UpdateInfoDtoV1":{"required":["api","dataUpdatedTime","recommendedFetchInterval"],"type":"object","properties":{"api":{"type":"string","description":"Url of the API"},"subtype":{"type":"string","description":"More specific info about API. Ie. domain info."},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"dataCheckedTime":{"type":"string","description":"Latest check for data updates.  <br>\n`null` value indicates data being pushed to our platform or static data that is only updated when needed.","format":"date-time"},"dataUpdateInterval":{"type":"string","description":"Data update interval in ISO-8601 duration format `PnDTnHnMn.nS`. <br>\n`P0S` means that data is updated in nearly real time. <br>\n`null` means that data is static and updated only when needed.","example":"[PT5M, P1H]"},"recommendedFetchInterval":{"type":"string","description":"Recommended fetch interval for clients in ISO-8601 duration format `PnDTnHnMn.nS`","example":"[PT5M, P1H]"}},"description":"Info about API data updates (update intervals, last updated times)"},"UpdateInfosDtoV1":{"required":["dataUpdatedTime"],"type":"object","properties":{"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"updateTimes":{"type":"array","description":"Update times for APIs","items":{"$ref":"#/components/schemas/UpdateInfoDtoV1"}}},"description":"Info about API data updates (update intervals, last updated times)"},"VesselMetadataJsonV1":{"required":["callSign","destination","draught","eta","imo","mmsi","name","posType","referencePointA","referencePointB","referencePointC","referencePointD","shipType","timestamp"],"type":"object","properties":{"name":{"type":"string","description":"Name of the vessel, maximum 20 characters using 6-bit ASCII"},"timestamp":{"type":"integer","description":"Record timestamp in milliseconds from Unix epoch","format":"int64"},"shipType":{"maximum":255,"minimum":0,"type":"integer","description":"Vessel's AIS ship type","format":"int32"},"mmsi":{"type":"integer","description":"Maritime Mobile Service Identity","format":"int32"},"draught":{"maximum":255,"minimum":0,"type":"integer","description":"Maximum present static draught in 1/10m, 255 = draught 25.5 m or greater, 0 = not available (default)","format":"int32"},"imo":{"type":"integer","description":"Vessel International Maritime Organization (IMO) number","format":"int32"},"callSign":{"type":"string","description":"Call sign, maximum 7 6-bit ASCII characters"},"eta":{"type":"integer","description":"Estimated time of arrival; MMDDHHMM UTC\nBits 19-16: month; 1-12; 0 = not available = default\nBits 15-11: day; 1-31; 0 = not available = default\nBits 10-6: hour; 0-23; 24 = not available = default\nBits 5-0: minute; 0-59; 60 = not available = default\nFor SAR aircraft, the use of this field may be decided by the responsible administration","format":"int64"},"posType":{"maximum":15,"minimum":0,"type":"integer","description":"Type of electronic position fixing device: 0 = undefined (default)\n1 = GPS\n2 = GLONASS\n3 = combined GPS/GLONASS\n4 = Loran-C\n5 = Chayka\n6 = integrated navigation system\n7 = surveyed\n8 = Galileo,\n9-14 = not used\n15 = internal GNSS","format":"int32"},"referencePointA":{"type":"integer","description":"Reference point for reported position dimension A","format":"int64"},"referencePointB":{"type":"integer","description":"Reference point for reported position dimension B","format":"int64"},"referencePointC":{"type":"integer","description":"Reference point for reported position dimension C","format":"int64"},"referencePointD":{"type":"integer","description":"Reference point for reported position dimension D","format":"int64"},"destination":{"type":"string","description":"Destination, maximum 20 characters using 6-bit ASCII"}},"description":"Vessel metadata model"},"VesselLocationFeatureCollectionV1":{"required":["dataUpdatedTime","features"],"type":"object","properties":{"type":{"type":"string","description":"GeoJSON object type"},"dataUpdatedTime":{"type":"string","description":"Data last updated time","format":"date-time"},"features":{"type":"array","items":{"$ref":"#/components/schemas/VesselLocationFeatureV1"}},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"GeoJSON FeatureCollection object"},"VesselLocationFeatureV1":{"required":["geometry","mmsi","properties"],"type":"object","properties":{"mmsi":{"type":"integer","description":"Maritime Mobile Service Identity (nine digit identifier)","format":"int32"},"type":{"type":"string","description":"GeoJSON object type"},"geometry":{"$ref":"#/components/schemas/Point"},"properties":{"$ref":"#/components/schemas/VesselLocationPropertiesV1"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}},"description":"GeoJSON Feature object"},"VesselLocationPropertiesV1":{"required":["cog","mmsi","navStat","posAcc","raim","rot","sog","timestamp","timestampExternal"],"type":"object","properties":{"mmsi":{"type":"integer","description":"Maritime Mobile Service Identity (nine digit identifier)","format":"int32"},"sog":{"type":"number","description":"Speed over ground in knots, 102.3 = not available","format":"double"},"cog":{"maximum":360,"minimum":0,"type":"number","description":"Course over ground in degrees, 360 = not available (default)","format":"double"},"navStat":{"maximum":15,"minimum":0,"type":"integer","description":"Navigational status. \nValue range between 0 - 15. \n0 = under way using engine, \n1 = at anchor, \n2 = not under command, \n3 = restricted maneuverability, \n4 = constrained by her draught, \n5 = moored, \n6 = aground, \n7 = engaged in fishing, \n8 = under way sailing, \n9 = reserved for future amendment of navigational status for ships carrying DG, HS, or MP, or IMO hazard or pollutant category C, high speed craft (HSC), \n10 = reserved for future amendment of navigational status for ships carrying dangerous goods (DG), harmful substances (HS) or marine pollutants (MP), or IMO hazard or pollutant category A, wing in ground (WIG), \n11 = power-driven vessel towing astern (regional use),\n12 = power-driven vessel pushing ahead or towing alongside (regional use), \n13 = reserved for future use, \n14 = AIS-SART (active), MOB-AIS, EPIRB-AIS, \n15 = default","format":"int32"},"rot":{"maximum":127,"minimum":-128,"type":"integer","description":"Rate of turn, ROT[AIS]. \nValues range between -128 - 127. –128 indicates that value is not available (default).\nCoded by ROT[AIS] = 4.733 SQRT(ROT[IND]) where ROT[IND] is the Rate of Turn degrees per minute, as indicated by an external sensor. \n+127 = turning right at 720 degrees per minute or higher\n-127 = turning left at 720 degrees per minute or higher.","format":"int32"},"posAcc":{"type":"boolean","description":"Position accuracy, 1 = high, 0 = low","enum":[false,false]},"raim":{"type":"boolean","description":"Receiver autonomous integrity monitoring (RAIM) flag of electronic position fixing device","enum":[false,false]},"heading":{"maximum":359,"minimum":0,"type":"integer","description":"Degrees (0-359), 511 = not available (default)","format":"int32"},"timestamp":{"maximum":63,"minimum":0,"type":"integer","description":"UTC second when the report was generated by the electronic position system (EPFS). \nValues: \n0-59 UTC second, \n60 if time stamp is not available, which should also be the default value, \n61 if positioning system is in manual input mode, \n62 if electronic position fixing system operates in estimated (dead reckoning) mode, \n63 if the positioning system is inoperative)","format":"int64"},"timestampExternal":{"type":"integer","description":"Location record timestamp in milliseconds from Unix epoch.","format":"int64"}},"description":"GeoJSON Properties object"}}},"tags":[{"name":"AIS V1","description":"Automatic Identification System (AIS) APIs"},{"name":"SSE V1","description":"Sea State Estimate (SSE) APIs"},{"name":"Port Call V1","description":"Port Call APIs"}]}