MarineTraffic Power User API

Power-user administration surface: fleet CRUD (`/setfleet`, `/getfleet`, `/getfleets`, `/clearfleet`), API credit-balance inspection (`/exportcredits` — free), and passage-plan import (`/import-passage-plan`, POST). Used to maintain customer fleet definitions, monitor credit burn, and push voyage plans into the MarineTraffic platform.

OpenAPI Specification

marine-traffic-power-user-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: MarineTraffic Power User API
  version: 1.0.0
  description: Fleet management (create, modify, list, clear), account credit balance, and passage plan import endpoints reserved
    for power-user accounts.
  contact:
    name: MarineTraffic
    url: https://www.marinetraffic.com/
servers:
- url: https://services.marinetraffic.com/api
tags:
- name: Fleets
- name: Balances
- name: Passage Plans
paths:
  /setfleet/{api_key}:
    get:
      tags:
      - Fleets
      summary: Modify Fleet
      description: "Manage your MarineTraffic fleet. </br></br> To **create a new item** in a fleet, use the active parameter.\
        \ If the item already exists, it will **update** item's status. </br></br> The active parameter can have values of\
        \ 0, 1, 2 which corresponds to the three states of the fleet items (inactive, active, sat enabled) </br></br> The\
        \ **delete** parameter must have a value of 1 and it **removes** the entry from the fleet. </br></br> If MMSI, IMO\
        \ and SHIP ID are passed, the MMSI takes precedence and the IMO and SHIP ID will be ignored. </br></br> When you add\
        \ vessels to a Fleet of Interest using the setfleet API endpoint: \n<ul>\n  <li>If you provide an IMO or MMSI that\
        \ matches multiple vessels in the MarineTraffic database, the system will automatically select the vessel with the\
        \ most recent AIS timestamp and add it to your fleet.</li>\n  <li>If you provide a shipid, the system will add that\
        \ exact vessel — no duplicate resolution is performed.</li>\n  <li>To avoid any ambiguity, we recommend using shipid\
        \ when you want precise control over which vessel is added.</li>\n</ul> \nResponse is always an XML structure indicating\
        \ success or failure with failure description message.</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: setfleet
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/mmsi_PU01'
      - $ref: '#/components/parameters/imo_PU01'
      - $ref: '#/components/parameters/shipid_PU01'
      - $ref: '#/components/parameters/fleet_id_PU01'
      - $ref: '#/components/parameters/active_PU01'
      - $ref: '#/components/parameters/delete_PU01'
      responses:
        '200':
          description: Successful Response
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu01_update'
              examples:
                Update fleet:
                  summary: Update fleet
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n    <STATUS>\n       \
                    \ <SUCCESS CODE=\"7\" DESCRIPTION=\"FLEET ITEM UPDATED\" />\n    </STATUS>\n</RESPONSE>"
        '400':
          description: Bad Request
          content:
            application/xml:
              schema:
                oneOf:
                - $ref: '#/components/schemas/400_pu01_invalid_ship_identifier'
                - $ref: '#/components/schemas/400_pu01_missing_ship_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=\"1\" DESCRIPTION=\"INCORRECT CALL-CHECK PARAMETERS\"/>\n    </STATUS>\n</RESPONSE>"
                Missing ship identifier:
                  summary: Missing 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>"
        '404':
          description: Not Found
          content:
            application/xml:
              schema:
                oneOf:
                - $ref: '#/components/schemas/404_pu01_invalid_fleet_identifier'
              examples:
                Invalid fleet identifier:
                  summary: Invalid fleet identifier
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n    <STATUS>\n       \
                    \ <ERROR CODE=\"6b\" DESCRIPTION=\"FLEET NOT FOUND\"/>\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>"
  /getfleet/{api_key}:
    get:
      tags:
      - Fleets
      summary: Vessels in Fleet
      description: "Get a detailed listing of vessels included in one of your MarineTraffic fleets.</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: getfleet
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/v_PU02'
      - $ref: '#/components/parameters/fleet_id_PU02'
      - $ref: '#/components/parameters/page_PU02'
      - $ref: '#/components/parameters/protocol'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_pu02_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu02_default'
              examples:
                Default:
                  summary: Simple
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<FLEET INACTIVE=\"0\" TERRESTRIAL=\"\
                    4\" SATELLITE=\"0\">\n    <VESSEL SHIP_ID=\"211325\" MMSI=\"239710000\" IMO=\"9197105\" SHIPNAME=\"BLUE\
                    \ STAR 1\" ACTIVE=\"1\"/>\n    <VESSEL SHIP_ID=\"212537\" MMSI=\"240389000\" IMO=\"9208679\" SHIPNAME=\"\
                    BLUE STAR MYCONOS\" ACTIVE=\"1\"/>\n    <VESSEL SHIP_ID=\"214617\" MMSI=\"241159000\" IMO=\"9565041\"\
                    \ SHIPNAME=\"BLUE STAR PATMOS\" ACTIVE=\"1\"/>\n    <VESSEL SHIP_ID=\"371681\" MMSI=\"310627000\" IMO=\"\
                    9241061\" SHIPNAME=\"QUEEN MARY 2\" ACTIVE=\"1\"/>\n</FLEET>"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_pu02_empty_fleet'
            application/xml:
              schema:
                $ref: '#/components/schemas/400_pu02_empty_fleet'
              examples:
                Empty fleet:
                  summary: Empty fleet
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?><RESPONSE>\n    <STATUS>\n        <ERROR\
                    \ CODE=\"7\" DESCRIPTION=\"FLEET IS EMPTY\"/>\n    </STATUS>\n</RESPONSE>"
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403_pu02_invalid_fleet_identifier'
            application/xml:
              schema:
                $ref: '#/components/schemas/403_pu02_invalid_fleet_identifier'
              examples:
                Invalid fleet identifier:
                  summary: Invalid fleet identifier
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n    <STATUS>\n       \
                    \ <ERROR CODE=\"6a\" DESCRIPTION=\"USER DOES NOT OWN FLEET\"/>\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>"
  /getfleets/{api_key}:
    get:
      tags:
      - Fleets
      summary: List Fleets
      description: "Get an overview list of all your MarineTraffic fleets.</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: getfleets
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/protocol'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_pu03_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu03_default'
              examples:
                Default:
                  summary: Default
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<FLEETS>\n    <FLEET ID=\"1696822\"\
                    \ NAME=\"Demo fleet\" ACTIVE=\"1\" CREATED=\"2020-09-22 06:51:00\" DEFAULT=\"1\"/>\n</FLEETS>"
        '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>"
  /clearfleet/{api_key}:
    get:
      tags:
      - Fleets
      summary: Clear Fleet
      description: "Clear your MarineTraffic fleet from all vessels.</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: clearfleet
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/fleet_id_PU05'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_pu05_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu05_default'
              examples:
                Default:
                  summary: Default
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<FLEETS>\n    <FLEET FLEET_ID=\"1716163\"\
                    \ DELETE=\"1\"/>\n</FLEETS>"
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404_pu05_missing_or_invalid_fleet_identifier'
            application/xml:
              schema:
                $ref: '#/components/schemas/404_pu05_missing_or_invalid_fleet_identifier'
              examples:
                Missing or invalid fleet identifier:
                  summary: Missing or invalid fleet identifier
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n    <STATUS>\n       \
                    \ <ERROR CODE=\"6b\" DESCRIPTION=\"FLEET NOT FOUND\"/>\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>"
  /exportcredits/{api_key}:
    get:
      tags:
      - Balances
      summary: Credits Balance
      description: "Get a snapshot of your current credits balance.</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: exportcredits
      parameters:
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_pu04_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu04_default'
              examples:
                Default:
                  summary: Default
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<ROW>\n    <CREDITS USER_ID=\"13541873\"\
                    \ CREDIT_BALANCE=\"1542\" LAST_CHARGED=\"2017-01-17T12:23:24\"/>\n</ROW>"
        '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>"
  /import-passage-plan/{api_key}:
    post:
      tags:
      - Passage Plans
      summary: Import Passage Plan
      description: "Import a passage plan for one of your managed vessels. </br></br> <b>Notes</b> <ul>\n    <li>Passage plans\
        \ can only be imported for vessels that belong to user's managed vessels (see <a href=\"https://www.marinetraffic.com/en/online-services/plans/fleet-ops\"\
        >Fleet Operations</a> solution for more info)</li>\n    <li>Accepted file formats are CSV, RTZ or RT3</li>\n    <li>Maximum\
        \ file size supported is 20MB</li>\n    <li>File should contain at least 2 waypoints</li>\n    <li>Imported passage\
        \ plans overwrite previously imported ones for the provided api_key and IMO combination</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: import-passage-plan
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/content_type_pu06'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pu06_request_body'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_pu06_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_pu06_default'
              examples:
                Default:
                  summary: Simple
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n     <STATUS>\n      \
                    \   <SUCCESS>CODE=\"s8\" DESCRIPTION=\"PASSAGE PLAN IMPORTED\"/>\n     </STATUS>\n</RESPONSE>"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400_pu06_vessel_not_found'
            application/xml:
              schema:
                $ref: '#/components/schemas/400_pu06_vessel_not_found'
              examples:
                Vessel not found:
                  summary: Vessel not found
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<?xml version=\"1.0\" encoding=\"\
                    UTF-8\"?>\n<RESPONSE>\n    <STATUS>\n        <ERROR CODE=\"2a11\" DESCRIPTION=\"VESSEL NOT FOUND\"/>\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, MINL

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/marine-traffic/refs/heads/main/openapi/marine-traffic-power-user-openapi.yml