MarineTraffic Reverse Geocoding API

Maritime-aware reverse geocoding (`/reversegeocode`) — resolves a single coordinate pair to the nearest port, anchorage, terminal, berth, or standard / custom area within a configurable radius. The single geographic primitive in the API; useful for tagging AIS positions with port and berth context.

MarineTraffic Reverse Geocoding API is one of 8 APIs that MarineTraffic publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include AIS, Maritime, Geocoding, and Geographic. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

marine-traffic-reverse-geocoding-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: MarineTraffic Reverse Geocoding API
  version: 1.0.0
  description: Reverse geocoding of a single coordinate pair to a maritime-aware location (port, anchorage, sea region).
  contact:
    name: MarineTraffic
    url: https://www.marinetraffic.com/
servers:
- url: https://services.marinetraffic.com/api
tags:
- name: Reverse Geocoding
paths:
  /reversegeocode/{api_key}:
    get:
      tags:
      - Reverse Geocoding
      summary: Reverse Geocoding of a Single Point
      description: "Get a list of geometries that a given point of coordinates intersects with.</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: reversegeocode
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/coordinates_GI01'
      - $ref: '#/components/parameters/radius_GI01'
      - $ref: '#/components/parameters/exclude_ports_GI01'
      - $ref: '#/components/parameters/exclude_berths_GI01'
      - $ref: '#/components/parameters/exclude_terminals_GI01'
      - $ref: '#/components/parameters/exclude_standard_areas_GI01'
      - $ref: '#/components/parameters/exclude_custom_areas_GI01'
      - $ref: '#/components/parameters/protocol'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/200_gi01_default'
            application/xml:
              schema:
                $ref: '#/components/schemas/200_gi01_default'
              examples:
                Default:
                  summary: Simple
                  value: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<RESPONSE>\n    <ITEM ID=\"1\" NAME=\"\
                    PIRAEUS\" TYPE=\"Port\" SUBTYPE=\"P\" COUNTRY=\"GR\" UNLOCODE=\"GRPIR\" GEOMETRY_CENTER=\"37.1111,23.222\"\
                    \ DISTANCE=\"0\" TERMINAL=\"\" URL=\"https://marinetraffic.com/en/ais/details/ports/1\" />\n    <ITEM\
                    \ ID=\"13\" NAME=\"Piraeus Area\" TYPE=\"Standard Area\" SUBTYPE=\"Geographical Area\" COUNTRY=\"\" UNLOCODE=\"\
                    \" GEOMETRY_CENTER=\"37.1111,23.222\" DISTANCE=\"0\" TERMINAL=\"\" URL=\"https://marinetraffic.com/en/ais/details/areas/areaId:13\"\
                    \ />\n    <ITEM ID=\"12345\" NAME=\"Pier III East\" TYPE=\"Berth\" SUBTYPE=\"\" COUNTRY=\"GR\" UNLOCODE=\"\
                    GRPIR\" GEOMETRY_CENTER=\"37.1111,23.222\" DISTANCE=\"0\" TERMINAL=\"12\" URL=\"\" />\n    <ITEM ID=\"\
                    12\" NAME=\"Container Terminal\" TYPE=\"Terminal\" SUBTYPE=\"\" COUNTRY=\"GR\" UNLOCODE=\"GRPIR\" GEOMETRY_CENTER=\"\
                    \" DISTANCE=\"0\" TERMINAL=\"\" URL=\"\" />\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:
        type: integer
    market_EV01:
      name: market
      in: query
      description: Define market(s) for which you would like to receive port calls (single or comma separated values) - <a
        href="https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-class">more</a>
      required: false
      schema:
        type: string
    msgtype_EV01:
      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 voyage related data since the previous port call"
      required: false
      schema:
        type: string
        default: simple
    v_EV02:
      name: v
      in: query
      description: Version of the service to be executed. Use version 2 to get the latest
      required: true
      schema:
        type: integer
        default: 1
    shipid_EV02:
      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_EV02:
      name: mmsi
      in: query
      description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
      required: false
      schema:
        type: integer
    imo_EV02:
      name: imo
      in: query
      description: The International Maritime Organization (IMO) number of the vessel you wish to track
      required: false
      schema:
        type: integer
    timespan_EV02:
      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: 60
    fromdate_EV02:
      name: fromdate
      in: query
      description: 'Vessel Events between fromdate and todate </br></br> Date format: YYYY-MM-DD HH:MM:SS'
      required: false
      schema:
        type: string
        format: date-time
    todate_EV02:
      name: todate
      in: query
      description: 'Vessel Events between fromdate and todate </br></br> Date format: YYYY-MM-DD HH:MM:SS'
      required: false
      schema:
        type: string
        format: date-time
    event_type_EV02:
      name: event_type
      in: query
      description: You may use one or more event ids in comma separated format for the events you wish to receive
      required: false
      schema:
        type: integer
    limit_events_EV02:
      name: limit_events
      in: query
      description: Limit the number of results
      required: false
      schema:
        type: integer
    v_EV03:
      name: v
      in: query
      description: Version of the service to be executed. Use version 3 to get the latest
      required: true
      schema:
        type: integer
        default: 1
    shipid_EV03:
      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_EV03:
      name: mmsi
      in: query
      description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
      required: false
      schema:
        type: integer
    imo_EV03:
      name: imo
      in: query
      description: The International Maritime Organization (IMO) number of the vessel you wish to track
      required: false
      schema:
        type: integer
    timespan_EV03:
      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
    fromdate_EV03:
      name: fromdate
      in: query
      description: 'Return Berth Calls where DOCK_TIMESTAMP_UTC is equal to or greater than provided fromdate. Maximum period
        requested 15 days </br></br> Date format: YYYY-MM-DD HH:MM:SS.'
      required: false
      schema:
        type: string
        format: date-time
    todate_EV03:
      name: todate
      in: query
      description: 'Return Berth Calls where DOCK_TIMESTAMP_UTC is equal to or less than provided todate. Maximum period requested
        15 days </br></br> Date format: YYYY-MM-DD HH:MM:SS'
      required: false
      schema:
        type: string
        format: date-time
    market_EV03:
      name: market
      in: query
      description: "Define market for which you would like to receive berth calls - <a href=\"https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-class\"\
        >more</a> <ul>\n  <li>if undefined and ship-class is also undefined, then return all</li>\n  <li>if undefined and\
        \ ship-class is defined, return based on ship-class</li>\n  <li>if defined and ship-class is undefined, return all\
        \ ship-classes of the specific market</li>\n</ul>"
      required: false
      schema:
        type: string
    shipclass_EV03:
      name: shipclass
      in: query
      description: Define ship class of interest - <a href="https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-class">more</a>
      required: false
      schema:
        type: integer
    dwt_min_EV03:
      name: dwt_min
      in: query
      description: 'Data filter: minimum DWT </br></br> Use it to filter by size Cargo and Tanker IMO-having vessels (shiptype
        = 7,8)'
      required: false
      schema:
        type: integer
    dwt_max_EV03:
      name: dwt_max
      in: query
      description: 'Data filter: maximum DWT </br></br> Use it to filter by size Cargo and Tanker IMO-having vessels (shiptype
        = 7,8)'
      required: false
      schema:
        type: integer
    gt_min_EV03:
      name: gt_min
      in: query
      description: 'Data filter: minimum GT </br></br> Applicable to IMO-having vessels'
      required: false
      schema:
        type: integer
    gt_max_EV03:
      name: gt_max
      in: query
      description: 'Data filter: maximum GT </br></br> Applicable to IMO-having vessels'
      required: false
      schema:
        type: integer
    movetype_EV03:
      name: movetype
      in: query
      description: Use 0 to include both, 1 to only receive dockings or 2 for only undockings within the defined period. If
        not used, only dockings are returned </br></br> <b>Available only from version 2 of the service</b>
      required: false
      schema:
        type: integer
    msgtype_EV03:
      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>, 

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