MarineTraffic Routing Information API

Maritime route generation and distance calculation across global sea lanes via `/exportroutes`. Compute the great-circle or sea-lane-aware route from a vessel's current position (MMSI/IMO/SHIP_ID) — or an arbitrary origin port / LAT-LON pair — to a target port, with optional inland-waterway and alternative-route inclusion.

OpenAPI Specification

marine-traffic-routing-openapi.yml Raw ↑
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