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.

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