Servidor MCP

Open Waters AIS

io.openwaters/ais
Mapas y ubicación Ciencia e ingeniería Público y accesible MCP 2025-11-25

Qué hace este MCP

Queries live AIS vessel positions by identifier, name, area, or radius and reports vessel details and coverage freshness.

find_vessels_in_area
Vessels in an area
Vessels currently inside a latitude/longitude bounding box, newest report first, with optional kind and ship-type filters. Use for what is in a port, a strait, or a stretch of coast. Anonymous calls may cover 100 square degrees per call.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['bbox'], 'properties': {'bbox': {'type': 'object', 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'additionalProperties': False}, 'flag': {'type': 'string', 'description': 'only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH'}, 'kind': {'type': 'string', 'description': 'only this kind: vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)'}, 'limit': {'type': 'integer', 'description': 'rows to return: default 50, maximum 200'}, 'types': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 255, 'minimum': 0}, 'description': 'only these ITU ship type codes, e.g. 30 fishing, 36 sailing, 37 pleasure craft, 52 tug, 60 passenger, 70 cargo, 80 tanker; a code ending in 0 matches its decade, so 70 matches 70 to 79'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['vessels', 'total', 'truncated', 'attribution'], 'properties': {'total': {'type': 'integer', 'description': 'vessels matched before the limit was applied'}, 'vessels': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['mmsi', 'kind', 'seen', 'age_s', 'source', 'station'], 'properties': {'cog': {'type': ['null', 'number'], 'description': 'course over ground, degrees true'}, 'eta': {'type': 'string', 'description': 'estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence'}, 'imo': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "IMO number, once the vessel's static data has been heard"}, 'lat': {'type': ['null', 'number'], 'description': 'latitude of the last position, degrees; absent when no position has been heard'}, 'lon': {'type': ['null', 'number'], 'description': 'longitude of the last position, degrees'}, 'sog': {'type': ['null', 'number'], 'description': 'speed over ground, knots'}, 'beam': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'beam, metres'}, 'flag': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"}, 'kind': {'type': 'string', 'description': 'vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'name': {'type': 'string', 'description': "name from the vessel's static data, when heard"}, 'seen': {'type': 'string', 'description': 'time of the last message heard, RFC 3339 UTC'}, 'type': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'ITU ship and cargo type code, or the aid type for an aton'}, 'age_s': {'type': 'integer', 'description': 'seconds since seen'}, 'length': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'overall length, metres'}, 'source': {'type': 'string', 'description': 'feed or station kind the last message came from'}, 'bearing': {'type': ['null', 'number'], 'description': 'degrees true from the search centre to the vessel (find_vessels_near)'}, 'draught': {'type': ['null', 'number'], 'description': 'maximum static draught, metres'}, 'heading': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'true heading, degrees'}, 'station': {'type': 'string'}, 'callsign': {'type': 'string'}, 'type_name': {'type': 'string'}, 'nav_status': {'type': ['null', 'integer'], 'maximum': 255, 'minimum': 0, 'description': 'AIS navigational status code'}, 'destination': {'type': 'string', 'description': 'destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful'}, 'distance_nm': {'type': ['null', 'number'], 'description': 'nautical miles from the search centre (find_vessels_near)'}, 'nav_status_name': {'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean', 'description': 'true when total exceeds the rows returned; narrow the query or raise limit'}, 'attribution': {'type': 'object', 'description': 'credit line per source kind in the rows, to show with the data', 'additionalProperties': {'type': 'string'}}, 'unknown_imo': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested IMO numbers matching no vessel the network has heard'}, 'unknown_mmsi': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested MMSIs matching no vessel the network has heard'}}, 'additionalProperties': False}
find_vessels_near
Vessels near a point or vessel
Vessels within a radius (default 10 NM, maximum 50) of a point or of another vessel's last known position, nearest first, each with distance and bearing from the centre. Use for what is near this position or what is around vessel X.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'lat': {'type': ['null', 'number'], 'description': 'centre latitude, degrees; give lat and lon, or mmsi'}, 'lon': {'type': ['null', 'number'], 'description': 'centre longitude, degrees'}, 'flag': {'type': 'string', 'description': 'only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH'}, 'kind': {'type': 'string', 'description': 'only this kind: vessel, aton, base, or sar'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "centre on this vessel's last position instead of lat and lon; the vessel itself is left out of the results"}, 'limit': {'type': 'integer', 'description': 'rows to return: default 50, maximum 200'}, 'types': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 255, 'minimum': 0}, 'description': 'only these ITU ship type codes; a code ending in 0 matches its decade'}, 'radius_nm': {'type': 'number', 'description': 'search radius in nautical miles: default 10, maximum 50'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['vessels', 'total', 'truncated', 'attribution'], 'properties': {'total': {'type': 'integer', 'description': 'vessels matched before the limit was applied'}, 'vessels': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['mmsi', 'kind', 'seen', 'age_s', 'source', 'station'], 'properties': {'cog': {'type': ['null', 'number'], 'description': 'course over ground, degrees true'}, 'eta': {'type': 'string', 'description': 'estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence'}, 'imo': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "IMO number, once the vessel's static data has been heard"}, 'lat': {'type': ['null', 'number'], 'description': 'latitude of the last position, degrees; absent when no position has been heard'}, 'lon': {'type': ['null', 'number'], 'description': 'longitude of the last position, degrees'}, 'sog': {'type': ['null', 'number'], 'description': 'speed over ground, knots'}, 'beam': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'beam, metres'}, 'flag': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"}, 'kind': {'type': 'string', 'description': 'vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'name': {'type': 'string', 'description': "name from the vessel's static data, when heard"}, 'seen': {'type': 'string', 'description': 'time of the last message heard, RFC 3339 UTC'}, 'type': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'ITU ship and cargo type code, or the aid type for an aton'}, 'age_s': {'type': 'integer', 'description': 'seconds since seen'}, 'length': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'overall length, metres'}, 'source': {'type': 'string', 'description': 'feed or station kind the last message came from'}, 'bearing': {'type': ['null', 'number'], 'description': 'degrees true from the search centre to the vessel (find_vessels_near)'}, 'draught': {'type': ['null', 'number'], 'description': 'maximum static draught, metres'}, 'heading': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'true heading, degrees'}, 'station': {'type': 'string'}, 'callsign': {'type': 'string'}, 'type_name': {'type': 'string'}, 'nav_status': {'type': ['null', 'integer'], 'maximum': 255, 'minimum': 0, 'description': 'AIS navigational status code'}, 'destination': {'type': 'string', 'description': 'destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful'}, 'distance_nm': {'type': ['null', 'number'], 'description': 'nautical miles from the search centre (find_vessels_near)'}, 'nav_status_name': {'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean', 'description': 'true when total exceeds the rows returned; narrow the query or raise limit'}, 'attribution': {'type': 'object', 'description': 'credit line per source kind in the rows, to show with the data', 'additionalProperties': {'type': 'string'}}, 'unknown_imo': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested IMO numbers matching no vessel the network has heard'}, 'unknown_mmsi': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested MMSIs matching no vessel the network has heard'}}, 'additionalProperties': False}
get_coverage
Coverage and sources
Where Open Waters AIS is hearing AIS right now: sources with their current delay, stations, freshness, and vessel counts. Pass a bounding box to learn which stations cover it and how many vessels are in it, or a station id for that station's numbers. Call this before saying a region has no traffic.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'bbox': {'type': ['null', 'object'], 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'description': 'report the stations covering this box and the vessels currently in it', 'additionalProperties': False}, 'station': {'type': 'string', 'description': "a station id from an earlier result, for that station's numbers"}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['time', 'summary', 'sources', 'stations', 'vessels', 'events_per_second'], 'properties': {'area': {'type': ['null', 'object'], 'required': ['bbox', 'vessels', 'stations'], 'properties': {'bbox': {'type': 'object', 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'additionalProperties': False}, 'vessels': {'type': 'integer', 'description': 'vessels with a position inside the box'}, 'stations': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['station', 'source', 'vessels', 'events_24h', 'last_age_s'], 'properties': {'bbox': {'type': ['null', 'object'], 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'description': 'extent of the positions this station has heard', 'additionalProperties': False}, 'source': {'type': 'string'}, 'station': {'type': 'string'}, 'vessels': {'type': 'integer', 'description': 'distinct vessels heard in the last 30 minutes'}, 'events_24h': {'type': 'integer'}, 'last_age_s': {'type': 'integer'}}, 'additionalProperties': False}, 'description': 'stations whose heard extent overlaps the box'}}, 'additionalProperties': False}, 'note': {'type': 'string'}, 'time': {'type': 'string'}, 'sources': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['kind', 'vessels', 'vessels_exclusive', 'events_24h', 'last_age_s', 'license', 'attribution'], 'properties': {'kind': {'type': 'string'}, 'delay': {'type': ['null', 'object'], 'required': ['p50', 'p99'], 'properties': {'p50': {'type': 'number', 'description': 'median delay in seconds'}, 'p99': {'type': 'number', 'description': '99th percentile delay in seconds'}}, 'description': 'seconds from broadcast to arrival over the last position reports from this source', 'additionalProperties': False}, 'license': {'type': 'string'}, 'vessels': {'type': 'integer', 'description': 'distinct vessels heard from this source in the last 30 minutes'}, 'events_24h': {'type': 'integer'}, 'last_age_s': {'type': 'integer', 'description': 'seconds since the source last delivered a message'}, 'attribution': {'type': 'string'}, 'description': {'type': 'string'}, 'vessels_exclusive': {'type': 'integer', 'description': 'of those, heard by no other source'}}, 'additionalProperties': False}}, 'station': {'type': ['null', 'object'], 'required': ['station', 'source', 'vessels', 'events_24h', 'last_age_s'], 'properties': {'bbox': {'type': ['null', 'object'], 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'description': 'extent of the positions this station has heard', 'additionalProperties': False}, 'source': {'type': 'string'}, 'station': {'type': 'string'}, 'vessels': {'type': 'integer', 'description': 'distinct vessels heard in the last 30 minutes'}, 'events_24h': {'type': 'integer'}, 'last_age_s': {'type': 'integer'}}, 'additionalProperties': False}, 'summary': {'type': 'string'}, 'vessels': {'type': 'object', 'required': ['total', 'with_position'], 'properties': {'total': {'type': 'integer', 'description': 'vessels heard in the last 30 minutes'}, 'with_position': {'type': 'integer'}}, 'additionalProperties': False}, 'stations': {'type': 'object', 'required': ['total', 'active'], 'properties': {'total': {'type': 'integer'}, 'active': {'type': 'integer', 'description': 'heard within the last 5 minutes'}}, 'additionalProperties': False}, 'events_per_second': {'type': 'number'}}, 'additionalProperties': False}
get_vessels
Vessels by MMSI
Last known position and particulars of specific vessels by MMSI (Maritime Mobile Service Identity) or IMO number: the last report heard for each, however long ago, with destination, ETA, draught, and dimensions once its static data has been heard, and which identifiers match no vessel the network has heard. Use search_vessels_by_name first when you only have a name.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'imo': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'IMO numbers to look up, counted with mmsi against the same cap; a vessel is found by IMO only once its static data has been heard'}, 'mmsi': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'MMSIs to look up; anonymous calls may pass 10 identifiers per call, a personal token 50'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['vessels', 'total', 'truncated', 'attribution'], 'properties': {'total': {'type': 'integer', 'description': 'vessels matched before the limit was applied'}, 'vessels': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['mmsi', 'kind', 'seen', 'age_s', 'source', 'station'], 'properties': {'cog': {'type': ['null', 'number'], 'description': 'course over ground, degrees true'}, 'eta': {'type': 'string', 'description': 'estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence'}, 'imo': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "IMO number, once the vessel's static data has been heard"}, 'lat': {'type': ['null', 'number'], 'description': 'latitude of the last position, degrees; absent when no position has been heard'}, 'lon': {'type': ['null', 'number'], 'description': 'longitude of the last position, degrees'}, 'sog': {'type': ['null', 'number'], 'description': 'speed over ground, knots'}, 'beam': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'beam, metres'}, 'flag': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"}, 'kind': {'type': 'string', 'description': 'vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'name': {'type': 'string', 'description': "name from the vessel's static data, when heard"}, 'seen': {'type': 'string', 'description': 'time of the last message heard, RFC 3339 UTC'}, 'type': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'ITU ship and cargo type code, or the aid type for an aton'}, 'age_s': {'type': 'integer', 'description': 'seconds since seen'}, 'length': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'overall length, metres'}, 'source': {'type': 'string', 'description': 'feed or station kind the last message came from'}, 'bearing': {'type': ['null', 'number'], 'description': 'degrees true from the search centre to the vessel (find_vessels_near)'}, 'draught': {'type': ['null', 'number'], 'description': 'maximum static draught, metres'}, 'heading': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'true heading, degrees'}, 'station': {'type': 'string'}, 'callsign': {'type': 'string'}, 'type_name': {'type': 'string'}, 'nav_status': {'type': ['null', 'integer'], 'maximum': 255, 'minimum': 0, 'description': 'AIS navigational status code'}, 'destination': {'type': 'string', 'description': 'destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful'}, 'distance_nm': {'type': ['null', 'number'], 'description': 'nautical miles from the search centre (find_vessels_near)'}, 'nav_status_name': {'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean', 'description': 'true when total exceeds the rows returned; narrow the query or raise limit'}, 'attribution': {'type': 'object', 'description': 'credit line per source kind in the rows, to show with the data', 'additionalProperties': {'type': 'string'}}, 'unknown_imo': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested IMO numbers matching no vessel the network has heard'}, 'unknown_mmsi': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested MMSIs matching no vessel the network has heard'}}, 'additionalProperties': False}
get_vessel_track
Where a vessel has been
The positions heard from one vessel over a time range, oldest first, with speed, course, and navigational status. Positions implying an impossible speed for the vessel are left out. Use for where a ship was yesterday, when it left port, or its route today. Anonymous and personal calls reach the last 48 hours; feeder and commercial tokens reach further, 7 days per call. By default the positions are spread evenly over the range; interval_minutes sets the spacing.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['mmsi'], 'properties': {'to': {'type': 'string', 'description': 'end, RFC 3339 UTC; default now'}, 'from': {'type': 'string', 'description': 'start, RFC 3339 UTC; default 24 hours before to. Anonymous and personal calls reach back 48 hours; feeder and commercial tokens reach the archive, up to 7 days per call'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "the vessel's MMSI; use search_vessels_by_name first when you only have a name"}, 'limit': {'type': 'integer', 'description': 'positions to return: default 50, maximum 200; when more match, the newest are kept'}, 'interval_minutes': {'type': 'integer', 'description': 'at most one position per this many minutes; by default the limit is spread over the range at a round spacing, reported as interval_s'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['mmsi', 'from', 'to', 'interval_s', 'positions', 'truncated', 'attribution'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string', 'description': 'start of the range covered, after clamping to what the caller can reach: the last 48 hours, or the archive for feeder and commercial tokens'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'name': {'type': 'string'}, 'positions': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['seen', 'lat', 'lon'], 'properties': {'cog': {'type': ['null', 'number'], 'description': 'course over ground, degrees true'}, 'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'sog': {'type': ['null', 'number'], 'description': 'speed over ground, knots'}, 'seen': {'type': 'string', 'description': 'time of the report, RFC 3339 UTC'}, 'heading': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'true heading, degrees'}, 'nav_status': {'type': ['null', 'integer'], 'maximum': 255, 'minimum': 0, 'description': 'AIS navigational status code'}, 'nav_status_name': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'oldest first'}, 'truncated': {'type': 'boolean', 'description': 'true when more positions matched than were returned; the newest were kept, so set from later or raise interval_minutes'}, 'interval_s': {'type': 'integer', 'description': 'at most one position per this many seconds; 0 is every position heard'}, 'attribution': {'type': 'object', 'description': 'credit line per source kind in the positions, to show with the data', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
search_vessels_by_name
Search vessels by name
Vessels whose name contains the text, case-insensitive, among every vessel the network has heard, each with its last known position. Use to turn a name into an MMSI, then get_vessels or find_vessels_near for detail. An optional bounding box narrows the search.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['name'], 'properties': {'bbox': {'type': ['null', 'object'], 'required': ['min_lat', 'min_lon', 'max_lat', 'max_lon'], 'properties': {'max_lat': {'type': 'number', 'description': 'north edge, degrees, -90 to 90'}, 'max_lon': {'type': 'number', 'description': 'east edge, degrees, -180 to 180'}, 'min_lat': {'type': 'number', 'description': 'south edge, degrees, -90 to 90'}, 'min_lon': {'type': 'number', 'description': 'west edge, degrees, -180 to 180'}}, 'description': 'only vessels whose last position is inside this box', 'additionalProperties': False}, 'flag': {'type': 'string', 'description': 'only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH'}, 'name': {'type': 'string', 'description': 'text to find in the vessel name, at least 2 characters, case-insensitive'}, 'limit': {'type': 'integer', 'description': 'rows to return: default 50, maximum 200'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['vessels', 'total', 'truncated', 'attribution'], 'properties': {'total': {'type': 'integer', 'description': 'vessels matched before the limit was applied'}, 'vessels': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['mmsi', 'kind', 'seen', 'age_s', 'source', 'station'], 'properties': {'cog': {'type': ['null', 'number'], 'description': 'course over ground, degrees true'}, 'eta': {'type': 'string', 'description': 'estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence'}, 'imo': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0, 'description': "IMO number, once the vessel's static data has been heard"}, 'lat': {'type': ['null', 'number'], 'description': 'latitude of the last position, degrees; absent when no position has been heard'}, 'lon': {'type': ['null', 'number'], 'description': 'longitude of the last position, degrees'}, 'sog': {'type': ['null', 'number'], 'description': 'speed over ground, knots'}, 'beam': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'beam, metres'}, 'flag': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"}, 'kind': {'type': 'string', 'description': 'vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)'}, 'mmsi': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'name': {'type': 'string', 'description': "name from the vessel's static data, when heard"}, 'seen': {'type': 'string', 'description': 'time of the last message heard, RFC 3339 UTC'}, 'type': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'ITU ship and cargo type code, or the aid type for an aton'}, 'age_s': {'type': 'integer', 'description': 'seconds since seen'}, 'length': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'overall length, metres'}, 'source': {'type': 'string', 'description': 'feed or station kind the last message came from'}, 'bearing': {'type': ['null', 'number'], 'description': 'degrees true from the search centre to the vessel (find_vessels_near)'}, 'draught': {'type': ['null', 'number'], 'description': 'maximum static draught, metres'}, 'heading': {'type': ['null', 'integer'], 'maximum': 65535, 'minimum': 0, 'description': 'true heading, degrees'}, 'station': {'type': 'string'}, 'callsign': {'type': 'string'}, 'type_name': {'type': 'string'}, 'nav_status': {'type': ['null', 'integer'], 'maximum': 255, 'minimum': 0, 'description': 'AIS navigational status code'}, 'destination': {'type': 'string', 'description': 'destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful'}, 'distance_nm': {'type': ['null', 'number'], 'description': 'nautical miles from the search centre (find_vessels_near)'}, 'nav_status_name': {'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean', 'description': 'true when total exceeds the rows returned; narrow the query or raise limit'}, 'attribution': {'type': 'object', 'description': 'credit line per source kind in the rows, to show with the data', 'additionalProperties': {'type': 'string'}}, 'unknown_imo': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested IMO numbers matching no vessel the network has heard'}, 'unknown_mmsi': {'type': ['null', 'array'], 'items': {'type': 'integer', 'maximum': 4294967295, 'minimum': 0}, 'description': 'requested MMSIs matching no vessel the network has heard'}}, 'additionalProperties': False}
Modificado
get_vessel_track
1 de October de 2026 a las 02:43
Modificado
search_vessels_by_name
29 de September de 2026 a las 02:50
Modificado
get_vessels
29 de September de 2026 a las 02:50
Añadido
get_vessel_track
29 de September de 2026 a las 02:50
Modificado
find_vessels_near
29 de September de 2026 a las 02:50
Modificado
find_vessels_in_area
29 de September de 2026 a las 02:50
Modificado
get_coverage
25 de September de 2026 a las 02:50
Modificado
search_vessels_by_name
23 de September de 2026 a las 02:41
Modificado
get_vessels
23 de September de 2026 a las 02:41
Modificado
find_vessels_near
23 de September de 2026 a las 02:41
Modificado
find_vessels_in_area
23 de September de 2026 a las 02:41
Añadido
search_vessels_by_name
19 de September de 2026 a las 02:40
Añadido
get_vessels
19 de September de 2026 a las 02:40
Añadido
get_coverage
19 de September de 2026 a las 02:40
Añadido
find_vessels_near
19 de September de 2026 a las 02:40
Añadido
find_vessels_in_area
19 de September de 2026 a las 02:40