openapi: 3.0.2
info:
title: MarineTraffic Routing Information API
version: 1.0.0
description: Maritime route generation and distance calculation between ports / coordinates, accounting for sea lanes and
traffic patterns.
contact:
name: MarineTraffic
url: https://www.marinetraffic.com/
servers:
- url: https://services.marinetraffic.com/api
tags:
- name: Routing Information
paths:
/exportroutes/{api_key}:
get:
tags:
- Routing Information
summary: Vessel Route to Port
description: "<b>A newer version of this endpoint is available here: https://developers.kpler.com/spec/c78f79cf-4169-4a59-987d-e5970ea170f9</b></br></br>\n\
Receive a list of available routes and distances from a vessel to a port.</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: exportroutes
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/mmsi_VI03'
- $ref: '#/components/parameters/imo_VI03'
- $ref: '#/components/parameters/shipid_VI03'
- $ref: '#/components/parameters/port_target_id_VI03'
- $ref: '#/components/parameters/includealternatives_VI03'
- $ref: '#/components/parameters/includeinland_VI03'
- $ref: '#/components/parameters/msgtype_VI03'
- $ref: '#/components/parameters/protocol'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/200_vi03_default'
- $ref: '#/components/schemas/200_vi03_extended'
application/xml:
schema:
oneOf:
- $ref: '#/components/schemas/200_vi03_default'
- $ref: '#/components/schemas/200_vi03_extended'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<ROUTES>\n <route DISTANCE=\"805\"\
\ PANAMA=\"0\" SUEZ=\"0\"/>\n</ROUTES>"
Extended:
summary: Extended
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<ROUTES>\n <route DISTANCE=\"805\"\
\ PANAMA=\"0\" SUEZ=\"0\" FINAL_PATH=\"LINESTRING (23.6107 37.894, 23.6096 37.3631, 23.6088 37.3566, 23.499\
\ 36.9011, 23.4958 36.8932, 23.2212 36.4084, 23.2122 36.398, 23.198 36.3904, 23.1812 36.3877, 23.1763\
\ 36.3879, 23.0774 36.3967, 23.0753 36.397, 22.9465 36.4138, 22.9395 36.4142, 22.9285 36.4142, 22.9211\
\ 36.4137, 22.4744 36.3528, 22.467 36.3523, 22.4502 36.355, 22.4457 36.3568, 21.7536 36.6658, 21.7463\
\ 36.6699, 21.6694 36.7227, 21.6638 36.7273, 20.5872 37.7853, 20.5847 37.788, 18.5047 40.2326, 18.503\
\ 40.2344, 18.2613 40.4772, 18.2613 40.4772, 13.7529 44.8308, 13.7497 44.8342, 13.5739 45.0519, 13.5702\
\ 45.0579, 13.4989 45.2161)\"/>\n</ROUTES>"
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/400_vi03_invalid_ship_identifier'
- $ref: '#/components/schemas/400_vi03_missing_or_invalid_port_identifier'
application/xml:
schema:
oneOf:
- $ref: '#/components/schemas/400_vi03_invalid_ship_identifier'
- $ref: '#/components/schemas/400_vi03_missing_or_invalid_port_identifier'
examples:
Invalid ship identifier:
summary: 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>"
Missing or invalid port identifier:
summary: Missing or invalid port identifier
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"2a6\" DESCRIPTION=\"PORT IS 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>"
'/exportroutes/{api_key} ':
get:
tags:
- Routing Information
summary: Distance to Port
description: "<b>A newer version of this endpoint is available here: https://developers.kpler.com/spec/c78f79cf-4169-4a59-987d-e5970ea170f9</b></br></br>\n\
Receive a list of available routes and distances from point or port to a specific port.</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: exportroutes_
parameters:
- $ref: '#/components/parameters/api_key'
- $ref: '#/components/parameters/port_start_id_VI03'
- $ref: '#/components/parameters/LAT_VI03'
- $ref: '#/components/parameters/LON_VI03'
- $ref: '#/components/parameters/port_target_id_VI03'
- $ref: '#/components/parameters/includealternatives_VI03'
- $ref: '#/components/parameters/includeinland_VI03'
- $ref: '#/components/parameters/msgtype_VI03'
- $ref: '#/components/parameters/protocol'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/200_vi03_default'
- $ref: '#/components/schemas/200_vi03_extended'
application/xml:
schema:
oneOf:
- $ref: '#/components/schemas/200_vi03_default'
- $ref: '#/components/schemas/200_vi03_extended'
examples:
Default:
summary: Simple
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<ROUTES>\n <route DISTANCE=\"2938\"\
\ PANAMA=\"0\" SUEZ=\"0\"/>\n</ROUTES>"
Extended:
summary: Extended
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<ROUTES>\n <route DISTANCE=\"2938\"\
\ PANAMA=\"0\" SUEZ=\"0\" FINAL_PATH=\"LINESTRING (23.6031 37.9345, 23.6022 37.8302, 23.7127 37.6496,\
\ 23.7056 37.6035, 23.6234 37.3639, 23.4216 36.9451, 23.229 36.4224, 23.1209 36.4007, 22.9908 36.4161,\
\ 22.8799 36.4056, 22.5453 36.3436, 22.0771 36.3505, 19.8853 36.3859, 17.0453 36.4213, 16.0126 36.4389,\
\ 14.5459 36.461, 12.2835 37.0352, 11.0962 37.4966, 10.2338 37.6534, 9.5746 37.6577, 8.8824 37.6447, 7.8552\
\ 37.5924, 6.2292 37.4225, 4.3781 37.2391, 3.5815 37.1472, 2.2467 37.0245, 0.1648 36.7609, -1.9391 36.4655,\
\ -2.9718 36.3328, -4.021 36.2132, -5.3448 36.0269, -5.5563 35.9713, -5.8612 35.9625, -6.1963 35.9558,\
\ -9.0088 36.6948, -9.1681 36.7609, -9.3109 36.884, -9.3713 37.1341, -9.657 38.1043, -9.8602 38.7455,\
\ -9.8492 39.0491, -9.8492 39.6818, -9.8383 40.1873, -9.7998 42.3829, -9.7943 42.9444, -9.7778 43.2091,\
\ -6.861 47.1486, -5.9876 48.3051, -5.6195 48.7562, -5.1691 48.9442, -4.5428 49.1781, -3.3893 49.6214,\
\ -2.9169 49.8026, -2.439 49.8911, -1.5491 50.0501, -0.3571 50.2612, 0.9668 50.4889, 1.3528 50.7125, 1.4177\
\ 50.8727, 1.4687 50.906, 1.7071 51.0776, 2.0596 51.2246, 2.2412 51.4745, 3.1406 52.1546, 3.5788 52.4091,\
\ 4.1803 52.4844, 4.5456 52.4644, 4.6609 52.4627, 4.6788 52.4526, 4.7173 52.4351, 4.7392 52.4301, 4.7763\
\ 52.4251, 4.7955 52.4234, 4.8225 52.4197, 4.8581 52.4147, 4.8793 52.4083, 4.8985 52.389)\"/>\n</ROUTES>"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/400_vi03_missing_or_invalid_port_identifier'
application/xml:
schema:
$ref: '#/components/schemas/400_vi03_missing_or_invalid_port_identifier'
examples:
Missing or invalid port identifier:
summary: Missing or invalid port identifier
value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n <STATUS>\n \
\ <ERROR CODE=\"2a6\" DESCRIPTION=\"PORT IS 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>"
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 the service to be executed. Use version 8 to get the latest
required: true
schema:
type: integer
default: 1
v_MTA030AD_1:
name: v
in: query
description: Use latest version **9**
required: true
schema:
type: integer
v_MTA030AD_2:
name: v
in: query
description: Use latest version **2**
required: true
schema:
type: integer
v_MTA030AD_3:
name: v
in: query
description: Use latest version **6**
required: true
schema:
type: integer
timespan_PS06:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions. Maximum value is 2880
required: false
schema:
type: integer
default: 5
shiptype_PS06:
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
MAXLAT_PS06:
name: MAXLAT
in: query
description: Use with MINLAT, MINLON, MAXLON to define an area and retrieve positional information of vessels sailing
in it
required: true
schema:
type: number
MINLON_PS06:
name: MINLON
in: query
description: Use with MINLAT, MAXLAT, MAXLON to define an area and retrieve positional information of vessels sailing
in it
required: true
schema:
type: number
MAXLON_PS06:
name: MAXLON
in: query
description: Use with MINLAT, MINLON, MAXLAT to define an area and retrieve positional information of vessels sailing
in it
required: true
schema:
type: number
MINLAT_PS06:
name: MINLAT
in: query
description: Use with MAXLAT, MINLON, MAXLON to define an area and retrieve positional information of vessels sailing
in it
required: true
schema:
type: number
msgtype_PS06:
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_PS07:
name: v
in: query
description: Version of the service to be executed. Use version 5 to get the latest
required: true
schema:
type: integer
default: 1
shipid_PS07:
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
imo_PS07:
name: imo
in: query
description: The International Maritime Organization (IMO) number of the vessel you wish to track
required: false
schema:
type: integer
mmsi_PS07:
name: mmsi
in: query
description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
required: false
schema:
type: integer
timespan_PS07:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions. Maximum value is 2880
required: false
schema:
type: integer
default: 2
msgtype_PS07:
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 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_PS08:
name: v
in: query
description: Version of the service to be executed. Use version 1 to get the latest
required: true
schema:
type: integer
default: 1
timespan_PS08:
name: timespan
in: query
description: The maximum age, in minutes, of the returned positions. Maximum value is 2880
required: false
schema:
type: integer
default: 5
shiptype_generic_PS08:
name: shiptype_generic
in: query
description: Filter vessels based on generic vessel types, comma separated values supported </br></br> Vessel type ID
should be used and not vessel type name (2=Fishing / 4=High Speed Craft / 6=Passenger / 7=Cargo / 8=Tanker) </br></br>
Should not be combined with shiptype_detailed filter
required: false
schema:
type: integer
shiptype_detailed_PS08:
name: shiptype_detailed
in: query
description: Filter vessels based on detailed vessel types, comma separated values supported </br></br> Vessel type
ID should be used and not vessel type name - <a href="https://support.marinetraffic.com/en/articles/9552888-what-is-the-significance-of-the-marinetraffic-ship-types" target='_blank'>more</a>
</br></br> Should not be combined with shiptype_generic filter
required: false
schema:
type: integer
msgtype_PS08:
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
timespan_MTA030AD:
name: timespan
in: query
description: Overrides the default timespan
required: false
schema:
type: integer
default: 5
v_EV01:
name: v
in: query
description: Version of the service to be executed. Use version 6 to get the latest
required: true
schema:
type: integer
default: 1
shipid_EV01:
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_EV01:
name: mmsi
in: query
description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
required: false
schema:
type: integer
imo_EV01:
name: imo
in: query
description: The International Maritime Organization (IMO) number of the vessel you wish to track
required: false
schema:
type: integer
timespan_EV01:
name: timespan
in: query
description: The maximum age, in minutes, of the returned port calls. Maximum value is 2880
required: false
schema:
type: integer
default: 2
movetype_EV01:
name: movetype
in: query
description: Use 0 to only receive arrivals or 1 to only receive departures. If not used, the response will include
both
required: false
schema:
type: integer
exclude_intransit_EV01:
name: exclude_intransit
in: query
description: Use 1 to exclude vessels in transit
required: false
schema:
type: integer
fromdate_EV01:
name: fromdate
in: query
description: 'Portcalls between fromdate and todate. Maximum period requested 190 days </br></br> Date format: YYYY-MM-DD
HH:MM'
required: false
schema:
type: string
format: date-time
todate_EV01:
name: todate
in: query
description: 'Portcalls between fromdate and todate. Maximum period requested 190 days </br></br> Date format: YYYY-MM-DD
HH:MM'
required: false
schema:
type: string
format: date-time
dwt_min_EV01:
name: dwt_min
in: query
description: 'Data filter: minimum DWT </br></br> Applicable to IMO-having vessels'
required: false
schema:
type: integer
dwt_max_EV01:
name: dwt_max
in: query
description: 'Data filter: maximum DWT </br></br> Applicable to IMO-having vessels'
required: false
schema:
type: integer
gt_min_EV01:
name: gt_min
in: query
description: 'Data filter: minimum GT </br></br> Applicable to IMO-having vessels'
required: false
schema:
type: integer
gt_max_EV01:
name: gt_max
in: query
description: 'Data filter: maximum GT </br></br> Applicable to IMO-having vessels'
required: false
schema:
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/marine-traffic/refs/heads/main/openapi/marine-traffic-routing-openapi.yml