openapi: 3.0.2
info:
title: MarineTraffic Vessels Data API
version: 1.0.0
description: Vessel master data, photographs, and ship search by identifier (IMO / MMSI / Call Sign) or by name.
contact:
name: MarineTraffic
url: https://www.marinetraffic.com/
servers:
- url: https://services.marinetraffic.com/api
tags:
- name: Vessel Information
- name: Search Vessel
paths:
/exportvesselphoto/{api_key}:
get:
tags:
- Vessel Information
summary: Vessel Photo
description: "Retrieve the most popular photo of a vessel.</br></br> <b>Notes</b> <ul>\n <li>The <b>frequency of\
\ allowed API calls</b> is specific to your API key and is detailed in your contract as a number of successful calls\
\ per time period. For example “2 calls per minute”. </br>Regardless of this agreed limit, each API key is technically\
\ restricted to a maximum of 100 total (including successful and unsuccessful) requests per minute to ensure system\
\ stability.</li>\n</ul>"
operationId: exportvesselphoto
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/vessel_id_VD01'
- $ref: '#/components/parameters/shipid_VD01'
- $ref: '#/components/parameters/protocol'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/200_vd01_default'
application/xml:
schema:
$ref: '#/components/schemas/200_vd01_default'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<PHOTO>\n <PHOTOURL URL=\"https://photos.marinetraffic.com/ais/showphoto.aspx?photoid=534918\"\
/>\n</PHOTO>"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/400_vd01_missing_or_invalid_ship_identifier'
application/xml:
schema:
$ref: '#/components/schemas/400_vd01_missing_or_invalid_ship_identifier'
examples:
Missing or invalid ship identifier:
summary: Missing or invalid ship identifier
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"2\" DESCRIPTION=\"VESSEL MMSI OR IMO OR SHIPID MISSING\"/>\n </STATUS>\n</RESPONSE>"
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/429_too_many_requests'
application/xml:
schema:
$ref: '#/components/schemas/429_too_many_requests'
examples:
Area out of bound:
summary: Too Many Requests
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"1r\" DESCRIPTION=\"TOO MANY REQUESTS\"/>\n </STATUS>\n</RESPONSE>"
/vesselmasterdata/{api_key}:
get:
tags:
- Vessel Information
summary: Vessel Particulars (Legacy API)
description: "⚠️This is a legacy endpoint.</br></br>\nA new and improved version is now available, offering enhanced\
\ data quality, latest features and better performance. \nWe strongly recommend switching to the latest version, which\
\ you can explore here: <a href=\"https://developers.kpler.com/spec/1240abb4-7ed9-42e2-ae5e-e13a047a16ec\">Vessel\
\ Particulars & Ownership.</a></br></br>\nIf you would like to see the new endpoint in action, feel free to <a href=\"\
https://www.kpler.com/demos/request-maritime-api-data-services\"> request a demo </a> - our team would be happy to\
\ walk you through it.</br></br>\nRetrieve particulars for one or more vessels. </br></br> <b>Notes</b> <ul>\n \
\ <li>Information about <a href=\"https://support.marinetraffic.com/en/articles/9552860-what-kind-of-information-is-ais-transmitted\"\
>AIS-transmitted data</a></li>\n <li>If page parameter is missing, then default page:1 will be used instead</li>\n\
\ <li>The results returned from the API call are split into pages of 100 rows</li>\n <li>In order to get each\
\ page generated by the call, add the /page:#value/ parameter to the URL. The default value is /page:1/</li>\n \
\ <li>The API does not return results for vessels that are not IMO-registered</li>\n <li>The API does not return\
\ results for dead vessels</li>\n <li>The <b>frequency of allowed API calls</b> is specific to your API key and\
\ is detailed in your contract as a number of successful calls per time period. For example “2 calls per minute”.\
\ </br>Regardless of this agreed limit, each API key is technically restricted to a maximum of 100 total (including\
\ successful and unsuccessful) requests per minute to ensure system stability.</li>\n</ul>"
operationId: vesselmasterdata
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/v_VD02'
- $ref: '#/components/parameters/mmsi_VD02'
- $ref: '#/components/parameters/imo_VD02'
- $ref: '#/components/parameters/shipid_VD02'
- $ref: '#/components/parameters/timespan_VD02'
- $ref: '#/components/parameters/interval_VD02'
- $ref: '#/components/parameters/protocol'
- $ref: '#/components/parameters/page_VD02'
- $ref: '#/components/parameters/msgtype_VD02'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/200_vd02_default'
- $ref: '#/components/schemas/200_vd02_extended'
application/xml:
schema:
oneOf:
- $ref: '#/components/schemas/200_vd02_default'
- $ref: '#/components/schemas/200_vd02_extended'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<MASTERDATA TOTAL_RESULTS=\"2\" TOTAL_PAGES=\"\
1\" CURRENT_PAGE=\"1\">\n <vessel MMSI=\"440389000\" IMO=\"9360283\" ENI=\"\" NAME=\"DONGJIN AUBE\"\
\ BUILDER=\"HAKATA SHIPBUILDING\" PLACE_OF_BUILD=\"MATSUYAMA JAPAN\" BUILD=\"2005\" YARD_NUMBER=\"HN.\
\ 670\" BREADTH_EXTREME=\"25\" BREADTH_MOULDED=\"25\" DEPTH=\"13.7\" SUMMER_DWT=\"15220\" DISPLACEMENT_SUMMER=\"\
\" CALLSIGN=\"D7OT\" FLAG=\"KR\" DRAUGHT=\"8.97\" LENGTH_OVERALL=\"147\" LENGTH_B_W_PERPENDICULARS=\"\
135\" FUEL_CONSUMPTION=\"36 t/day at 17.50 kn\" SPEED_MAX=\"\" SPEED_SERVICE=\"18\" TEU=\"1060\" GROSS_TONNAGE=\"\
12679\" NET_TONNAGE=\"5614\" LIQUID_OIL=\"\" LIQUID_GAS=\"\" GRAIN=\"\" OWNER=\"DONG JIN SHIPPING CO LTD\"\
\ MANAGER=\"DONG JIN SHIPPING CO LTD\" FINANCIAL_OWNER=\"DONG JIN SHIPPING CO LTD\" TECHNICAL_MANAGER=\"\
\" INSURER=\"JAPAN SHIP OWNERS P & I ASSOCIATION\" VESSEL_TYPE=\"CONTAINER SHIP\"/>\n</MASTERDATA>"
Extended:
summary: Extended
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<MASTERDATA TOTAL_RESULTS=\"1\" TOTAL_PAGES=\"\
1\" CURRENT_PAGE=\"1\">\n <vessel MMSI=\"352001323\" IMO=\"9360283\" ENI=\"\" NAME=\"MSC AUBE F\" BUILDER=\"\
HAKATA SHIPBUILDING CO LTD\" PLACE_OF_BUILD=\"MATSUYAMA JAPAN\" BUILD=\"2005\" YARD_NUMBER=\"HN. 670\"\
\ BREADTH_EXTREME=\"25\" BREADTH_MOULDED=\"25\" DEPTH=\"13.7\" SUMMER_DWT=\"15220\" DISPLACEMENT_SUMMER=\"\
\" CALLSIGN=\"3E4052\" FLAG=\"PA\" DRAUGHT=\"8.97\" LENGTH_OVERALL=\"147\" LENGTH_B_W_PERPENDICULARS=\"\
135\" FUEL_CONSUMPTION=\"36 t/day at 17.50 kn\" SPEED_MAX=\"\" SPEED_SERVICE=\"18\" TEU=\"1060\" GROSS_TONNAGE=\"\
12679\" NET_TONNAGE=\"5614\" LIQUID_OIL=\"\" LIQUID_GAS=\"\" GRAIN=\"\" OWNER=\"MEDITERRANEAN SHIPPING\
\ CO MSC\" MANAGER=\"MEDITERRANEAN SHIPPING CO MSC\" FINANCIAL_OWNER=\"\" TECHNICAL_MANAGER=\"MSC SHIPMANAGEMENT\
\ LTD\" INSURER=\"JAPAN SHIP OWNERS P & I ASSOCIATION\" VESSEL_TYPE=\"CONTAINER SHIP\" MANAGER_COUNTRY=\"\
SWITZERLAND\" MANAGER_TOWN=\"\" MANAGER_WEBSITE=\"http://www.mscgva.ch\" OWNER_COUNTRY=\"SWITZERLAND\"\
\ OWNER_TOWN=\"\" OWNER_WEBSITE=\"http://www.mscgva.ch\" ENGINE_BUILDER=\"MITSUI TAMANO ENGINEERING &\
\ SHIPBUILDING\" ENGINE_CYLINDERS=\"7\" ENGINE_POWER=\"9988\" ENGINE_STROKE=\"1910\" ENGINE_NUMBER=\"\
1\" ENGINE_TYPE=\"DIESEL\" ENGINE_RPM=\"127\" CLASS_SOCIETY=\"KOREAN REGISTER OF SHIPPING\" HULL_MATERIAL=\"\
STEEL\" HULL_TYPE=\"SINGLE HULL\" DECKS_NUMBER=\"616\" PROPELLER=\"1 FIXED PITCH\" L_FORE=\"132\" W_LEFT=\"\
25\" FINANCIAL_OWNER_COUNTRY=\"\" TECHNICAL_MANAGER_COUNTRY=\"CYPRUS\"/>\n</MASTERDATA>"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/400_vd02_missing_or_invalid_ship_identifier'
application/xml:
schema:
$ref: '#/components/schemas/400_vd02_missing_or_invalid_ship_identifier'
examples:
Missing or invalid ship identifier:
summary: Missing or invalid ship identifier
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"2\" DESCRIPTION=\"VESSEL MMSI OR IMO OR SHIPID MISSING\"/>\n </STATUS>\n</RESPONSE>"
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/429_too_many_requests'
application/xml:
schema:
$ref: '#/components/schemas/429_too_many_requests'
examples:
Area out of bound:
summary: Too Many Requests
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"1r\" DESCRIPTION=\"TOO MANY REQUESTS\"/>\n </STATUS>\n</RESPONSE>"
/shipsearch/{api_key}:
get:
tags:
- Search Vessel
summary: Search Vessel by Identifier
description: "Search for a vessel by unique identifier.</br></br> <b>Notes</b> <ul>\n <li>The <b>frequency of allowed\
\ API calls</b> is specific to your API key and is detailed in your contract as a number of successful calls per time\
\ period. For example “2 calls per minute”. </br>Regardless of this agreed limit, each API key is technically restricted\
\ to a maximum of 100 total (including successful and unsuccessful) requests per minute to ensure system stability.</li>\n\
</ul>"
operationId: shipsearch
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/shipid_VD03'
- $ref: '#/components/parameters/mmsi_VD03'
- $ref: '#/components/parameters/imo_VD03'
- $ref: '#/components/parameters/shiptype_VD03'
- $ref: '#/components/parameters/type_name_id_VD03'
- $ref: '#/components/parameters/protocol'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/200_vd03_default'
application/xml:
schema:
$ref: '#/components/schemas/200_vd03_default'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<VESSELS>\n <vessel SHIPNAME=\"\
QUEEN MARY 2\" MMSI=\"310627000\" IMO=\"9241061\" SHIP_ID=\"371681\" CALLSIGN=\"ZCEF6\" TYPE_NAME=\"Passenger\
\ Ship\" DWT=\"19189\" FLAG=\"BM\" COUNTRY=\"Bermuda\" YEAR_BUILT=\"2003\" MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:371681/mmsi:310627000/vessel:371681\"\
/>\n</VESSELS>"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/400_vd03_missing_search_identifier'
application/xml:
schema:
$ref: '#/components/schemas/400_vd03_missing_search_identifier'
examples:
Missing search identifier:
summary: Missing search identifier
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"54\" DESCRIPTION=\"NO SEARCH TERM SUPPLIED\"/>\n </STATUS>\n</RESPONSE>"
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/429_too_many_requests'
application/xml:
schema:
$ref: '#/components/schemas/429_too_many_requests'
examples:
Area out of bound:
summary: Too Many Requests
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"1r\" DESCRIPTION=\"TOO MANY REQUESTS\"/>\n </STATUS>\n</RESPONSE>"
'/shipsearch/{api_key} ':
get:
tags:
- Search Vessel
summary: Search Vessel by Name
description: "Search for vessels by vessel name. </br></br> <b>Notes</b> </br> In case of multiple results:\n <ul>\n\
\ <li>the first 100 matches will be fetched</li>\n <li>exact matches are always first on the returned list</li>\n\
\ </ul>\n </br>\n <ul>\n <li>Only active vessels are returned</li>\n <li>The <b>frequency of allowed API\
\ calls</b> is specific to your API key and is detailed in your contract as a number of successful calls per time\
\ period. For example “2 calls per minute”. </br>Regardless of this agreed limit, each API key is technically restricted\
\ to a maximum of 100 total (including successful and unsuccessful) requests per minute to ensure system stability.</li>\n\
\ </ul>"
operationId: shipsearch_
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/shipname_VD03'
- $ref: '#/components/parameters/shiptype_VD03'
- $ref: '#/components/parameters/type_name_id_VD03'
- $ref: '#/components/parameters/protocol'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/200_vd03_default'
application/xml:
schema:
$ref: '#/components/schemas/200_vd03_default'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n <VESSELS>\n <vessel SHIPNAME=\"\
THE QUEEN JACQUELINE\" MMSI=\"244740452\" IMO=\"0\" SHIP_ID=\"639\" CALLSIGN=\"PE6545\" TYPE_NAME=\"Inland,\
\ Ferry\" DWT=\"\" FLAG=\"NL\" COUNTRY=\"Netherlands\" YEAR_BUILT=\"\" MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:639/mmsi:244740452/vessel:639\"\
/>\n <vessel SHIPNAME=\"BACHATA QUEEN\" MMSI=\"229540000\" IMO=\"0\" SHIP_ID=\"2771\" CALLSIGN=\"\
9HB3419\" TYPE_NAME=\"Pleasure Craft\" DWT=\"\" FLAG=\"MT\" COUNTRY=\"Malta\" YEAR_BUILT=\"\" MT_URL=\"\
http://www.marinetraffic.com/en/ais/details/ships/shipid:2771/mmsi:229540000/vessel:2771\"/>\n \
\ <vessel SHIPNAME=\"QUEEN R\" MMSI=\"230071310\" IMO=\"0\" SHIP_ID=\"6102\" CALLSIGN=\"OG9917\" TYPE_NAME=\"\
Passenger\" DWT=\"\" FLAG=\"FI\" COUNTRY=\"Finland\" YEAR_BUILT=\"\" MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:6102/mmsi:230071310/vessel:6102\"\
/>\n <vessel SHIPNAME=\"QUEEN OF HEARTS\" MMSI=\"366715730\" IMO=\"0\" SHIP_ID=\"39824\" CALLSIGN=\"\
WDJ7357\" TYPE_NAME=\"Other\" DWT=\"\" FLAG=\"US\" COUNTRY=\"USA\" YEAR_BUILT=\"\" MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:39824/mmsi:366715730/vessel:39824\"\
/>\n <vessel SHIPNAME=\"POLAR QUEEN\" MMSI=\"209070000\" IMO=\"9523378\" SHIP_ID=\"121444\" CALLSIGN=\"\
5BDG3\" TYPE_NAME=\"Offshore Supply Ship\" DWT=\"6300\" FLAG=\"CY\" COUNTRY=\"Cyprus\" YEAR_BUILT=\"2011\"\
\ MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:121444/mmsi:209070000/vessel:121444\"\
/>\n <vessel SHIPNAME=\"QUEEN OF THE NETHERLANDS\" MMSI=\"210138000\" IMO=\"9164031\" SHIP_ID=\"\
124049\" CALLSIGN=\"5BGT2\" TYPE_NAME=\"Suction Dredger\" DWT=\"24000\" FLAG=\"CY\" COUNTRY=\"Cyprus\"\
\ YEAR_BUILT=\"1998\" MT_URL=\"http://www.marinetraffic.com/en/ais/details/ships/shipid:124049/mmsi:210138000/vessel:124049\"\
/>\n <vessel SHIPNAME=\"QUEEN B II\" MMSI=\"210296000\" IMO=\"9430090\" SHIP_ID=\"124385\" CALLSIGN=\"\
5BWD2\" TYPE_NAME=\"Container Ship\" DWT=\"8512\" FLAG=\"CY\" COUNTRY=\"Cyprus\" YEAR_BUILT=\"2009\" MT_URL=\"\
http://www.marinetraffic.com/en/ais/details/ships/shipid:124385/mmsi:210296000/vessel:124385\"/>\n \
\ </VESSELS>"
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/400_vd03_invalid_search_string_length'
- $ref: '#/components/schemas/400_vd03_missing_search_term'
application/xml:
schema:
oneOf:
- $ref: '#/components/schemas/400_vd03_invalid_search_string_length'
- $ref: '#/components/schemas/400_vd03_missing_search_term'
examples:
Invalid search string length:
summary: Invalid search string length
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"11\" DESCRIPTION=\"KEYWORD SHOULD BE AT LEAST 3 CHARACTERS\"/>\n </STATUS>\n</RESPONSE>"
Missing search term:
summary: Missing search term
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"54\" DESCRIPTION=\"NO SEARCH TERM SUPPLIED\"/>\n </STATUS>\n</RESPONSE>"
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/429_too_many_requests'
application/xml:
schema:
$ref: '#/components/schemas/429_too_many_requests'
examples:
Area out of bound:
summary: Too Many Requests
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"1r\" DESCRIPTION=\"TOO MANY REQUESTS\"/>\n </STATUS>\n</RESPONSE>"
components:
parameters:
api_key:
name: api_key
in: path
description: 'API key: 40-character hexadecimal number'
required: true
schema:
type: string
cursor:
name: cursor
in: query
description: The pagination cursor provided in the metadata section of the previous response
required: false
schema:
type: string
limit:
name: limit
in: query
description: The limit of vessels per page (min=1000, max=5000)
required: false
schema:
type: integer
default: 2000
protocol_mandatory:
name: protocol
in: query
description: "Response type. Use one of the following: <ul>\n <li>jsono</li>\n <li>csv</li>"
required: false
schema:
type: string
default: jsono
protocol_new:
name: protocol
in: query
description: "Response type. Use one of the following: <ul>\n <li>xml</li>\n <li>csv</li>\n <li>jsono</li>"
required: false
schema:
type: string
default: xml
v_PS01:
name: v
in: query
description: Version of the service to be executed. Use version 3 to get the latest
schema:
type: integer
default: 1
shipid_PS01:
name: shipid
in: query
description: A uniquely assigned ID by MarineTraffic for the subject vessel </br></br> You can <b>instead</b> use imo
or mmsi
required: true
schema:
type: integer
mmsi_PS01:
name: mmsi
in: query
description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
required: false
schema:
type: integer
imo_PS01:
name: imo
in: query
description: The International Maritime Organization (IMO) number of the vessel you wish to track
required: false
schema:
type: integer
days_PS01:
name: days
in: query
description: The number of days, starting from the time of request and going backwards, for which the response should
look for position data </br></br> Maximum value is 190 (days)
required: true
schema:
type: integer
fromdate_PS01:
name: fromdate
in: query
description: Use with todate <b>instead</b> of days to get data for a date period
required: false
schema:
type: string
format: date-time
todate_PS01:
name: todate
in: query
description: Use with fromdate <b>instead</b> of days to get data for a date period
required: false
schema:
type: string
format: date-time
period_PS01:
name: period
in: query
description: "Limit position per vessel. Omit to get all the available positions </br></br> Values are: <ul>\n <li>hourly:\
\ get one position per hour</li>\n <li>daily: get one position per day</li>\n</ul>"
required: false
schema:
type: string
msgtype_PS01:
name: msgtype
in: query
description: "Resolution of the response. Available values: <ul>\n <li>simple</li>\n <li>extended</li>\n</ul> If used\
\ with the value <b>extended</b>, the response includes also weather data"
required: false
schema:
type: string
default: simple
protocol:
name: protocol
in: query
description: "Response type. Use one of the following: <ul>\n <li>xml</li>\n <li>csv</li>\n <li>json</li>\n <li>jsono</li>"
required: false
schema:
type: string
default: xml
MINLAT_PS01:
name: MINLAT
in: query
description: Use with MAXLAT, MINLON, MAXLON to define an area for which you wish to either get all the historical vessels'
positions or historical positions for a specific vessel </br></br> The absolute value of MAXLAT - MINLAT + MAXLON
- MINLON has to be equal to or less than <b>2</b> </br></br> If you do not define a vessel, the maximum period for
which you can look back has a maximum period of one day
required: true
schema:
type: number
MAXLAT_PS01:
name: MAXLAT
in: query
description: Use with MINLAT, MINLON, MAXLON to define an area for which you wish to either get all the historical vessels'
positions or historical positions for a specific vessel </br></br> The absolute value of MAXLAT - MINLAT + MAXLON
- MINLON has to be equal to or less than <b>2</b> </br></br> If you do not define a vessel, the maximum period for
which you can look back has a maximum period of one day
required: true
schema:
type: number
MINLON_PS01:
name: MINLON
in: query
description: Use with MINLAT, MAXLAT, MAXLON to define an area for which you wish to either get all the historical vessels'
positions or historical positions for a specific vessel </br></br> The absolute value of MAXLAT - MINLAT + MAXLON
- MINLON has to be equal to or less than <b>2</b> </br></br> If you do not define a vessel, the maximum period for
which you can look back has a maximum period of one day
required: true
schema:
type: number
MAXLON_PS01:
name: MAXLON
in: query
description: Use with MINLAT, MAXLAT, MINLON to define an area for which you wish to either get all the historical vessels'
positions or historical positions for a specific vessel </br></br> The absolute value of MAXLAT - MINLAT + MAXLON
- MINLON has to be equal to or less than <b>2</b> </br></br> If you do not define a vessel, the maximum period for
which you can look back has a maximum period of one day
required: true
schema:
type: number
shipid_PS01_2:
name: shipid
in: query
description: A uniquely assigned ID by MarineTraffic for the subject vessel </br></br> You can <b>instead</b> use imo
or mmsi
required: false
schema:
type: integer
v_PS02:
name: v
in: query
description: Version of the service to be executed. Use version 8 to get the latest
required: true
schema:
type: integer
default: 1
timespan_PS02:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions. </br></br> Maximum value for terrestrial coverage
is 60. Maximum value for satellite coverage is 180
required: false
schema:
type: integer
default: 5
shiptype_PS02:
name: shiptype
in: query
description: "Filter data by vessel type: <ul>\n <li>2: Fishing</li>\n <li>4: High Speed Craf</li>\n <li>6: Passenger</li>\n\
\ <li>7: Cargo</li>\n <li>8: Tanker</li>"
required: false
schema:
type: integer
msgtype_PS02:
name: msgtype
in: query
description: "Resolution of the response. Available values: <ul>\n <li>simple</li>\n <li>extended</li>\n <li>full</li>\n\
</ul> If used with the value <b>extended</b> or <b>full</b>, the response includes scheduled static and voyage related\
\ vessel data report (AIS Message 5). In this case your request frequency might be limited (depending on your service\
\ terms) </br></br> If omitted, the returned records include only position reports (AIS Messages 1, 2, 3/ 18, 19)"
required: false
schema:
type: string
default: simple
v_PS03:
name: v
in: query
description: Version of the service to be executed. Use version 8 to get the latest
required: true
schema:
type: integer
default: 1
vessel_type:
name: vesseltypeid
in: query
description: Filter vessels based on vessel types, comma separated ids supported </br></br><a href="https://support.marinetraffic.com/en/articles/9552888-what-is-the-significance-of-the-marinetraffic-ship-types"
target='_blank'>more</a>
required: false
schema:
type: integer
timespan_PS03:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions </br></br> Maximum value for terrestrial coverage
is 60. Maximum value for satellite coverage is 180
required: false
schema:
type: integer
default: 5
shiptype_PS03:
name: shiptype
in: query
description: "Filter data by vessel type: <ul>\n <li>2: Fishing</li>\n <li>4: High Speed Craf</li>\n <li>6: Passenger</li>\n\
\ <li>7: Cargo</li>\n <li>8: Tanker</li>"
required: false
schema:
type: integer
msgtype_PS03:
name: msgtype
in: query
description: "Resolution of the response. Available values: <ul>\n <li>simple</li>\n <li>extended</li>\n <li>full</li>\n\
</ul> If used with the value <b>extended</b> or <b>full</b>, the response includes scheduled static and voyage related\
\ vessel data report (AIS Message 5). In this case your request frequency might be limited (depending on your service\
\ terms) </br></br> If omitted, the returned records include only position reports (AIS Messages 1, 2, 3/ 18, 19)"
required: false
schema:
type: string
default: simple
v_PS04:
name: v
in: query
description: Version of the service to be executed. Use version 8 to get the latest
required: true
schema:
type: integer
default: 1
timespan_PS04:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions </br></br> Maximum value for terrestrial coverage
is 60. Maximum value for satellite coverage is 180
required: false
schema:
type: integer
default: 5
shiptype_PS04:
name: shiptype
in: query
description: "Filter data by vessel type: <ul>\n <li>2: Fishing</li>\n <li>4: High Speed Craf</li>\n <li>6: Passenger</li>\n\
\ <li>7: Cargo</li>\n <li>8: Tanker</li>"
required: false
schema:
type: integer
msgtype_PS04:
name: msgtype
in: query
description: "Resolution of the response. Available values: <ul>\n <li>simple</li>\n <li>extended</li>\n <li>full</li>\n\
</ul> If used with the value <b>extended</b> or <b>full</b>, the response includes scheduled static and voyage related\
\ vessel data report (AIS Message 5). In this case your request frequency might be limited (depending on your service\
\ terms) </br></br> If omitted, the returned records include only position reports (AIS Messages 1, 2, 3/ 18, 19)"
required: false
schema:
type: string
default: simple
v_PS05:
name: v
in: query
description: Version of the service to be executed. Use version 8 to get the latest
required: true
schema:
type: integer
default: 1
timespan_PS05:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions </br></br> Maximum value for terrestrial coverage
is 60. Maximum value for satellite coverage is 180
required: false
schema:
type: integer
default: 5
shiptype_PS05:
name: shiptype
in: query
description: "Filter data by vessel type: <ul>\n <li>2: Fishing</li>\n <li>4: High Speed Craf</li>\n <li>6: Passenger</li>\n\
\ <li>7: Cargo</li>\n <li>8: Tanker</li>"
required: false
schema:
type: integer
msgtype_PS05:
name: msgtype
in: query
description: "Resolution of the response. Available values: <ul>\n <li>simple</li>\n <li>extended</li>\n <li> full</li>\n\
</ul> If used with the value <b>extended</b> or <b>full</b>, the response includes scheduled static and voyage related\
\ vessel data report (AIS Message 5). In this case your request frequency might be limited (depending on your service\
\ terms) </br></br> If omitted, the returned records include only position reports (AIS Messages 1, 2, 3/ 18, 19)"
required: false
schema:
type: string
default: simple
v_PS06:
name: v
in: query
description: Version of t
# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/marine-traffic/refs/heads/main/openapi/marine-traffic-vessels-data-openapi.yml