FleetMon Voyage Planning API

Delivers ETA & distance estimations for a route with multiple ports specified by LOCODE.

OpenAPI Specification

fleetmon-voyage-planning-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: 'ARCHIVED SPECIFICATION - RETIRED API. This is the final publicly archived Swagger 2.0 definition of the FleetMon API (apiv2.fleetmon.com), preserved from the Internet Archive Wayback Machine (schema.json capture 2021-12-08; the developer portal at developer.fleetmon.com remained online through early 2025). FleetMon was acquired by Kpler in 2023, the FleetMon platform and API were phased out beginning January 2024 and migrated into MarineTraffic, and as of 2026 the fleetmon.com domain (including apiv2.fleetmon.com and developer.fleetmon.com) no longer resolves. None of the endpoints below are live. The successor surface is the MarineTraffic API portfolio / Kpler AIS (servicedocs.marinetraffic.com).


    --- Original description follows ---


    Welcome to our API reference!


    You can view JSON response samples in the area to the right.

    If you need help with the API, just [contact us](https://www.fleetmon.com/company/contact/).


    Follow us on [Facebook](https://www.facebook.com/fleetmon) and [Twitter](https://twitter.com/fleetmon) for the latest updates and news on the platform.


    With the use of the FleetMon API, you agree with the [Terms of Service](https://www.fleetmon.com/terms-of-service/).

    '
  title: FleetMon API Reference Basic Vessel Data Voyage Planning API
  version: Version 2.4.2
  x-archived:
    status: retired
    retiredNote: FleetMon product offerings, logins, and the apiv2.fleetmon.com API were discontinued during the 2024 migration into MarineTraffic following the 2023 Kpler acquisition; fleetmon.com DNS no longer resolves as of 2026.
    archiveSource: http://web.archive.org/web/20211208160310/https://apiv2.fleetmon.com/schema.json
    archivedDeveloperPortal: http://web.archive.org/web/20250106234623/https://developer.fleetmon.com/reference/
    successor: https://servicedocs.marinetraffic.com/
    archivedBy: API Evangelist
    archivedDate: '2026-07-11'
host: apiv2.fleetmon.com
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- description: Delivers ETA & distance estimations for a route with multiple ports specified by LOCODE.
  name: Voyage Planning
  x-codename: voyage_planning
  x-tag-group: Professional Planing
paths:
  /voyage-planning/:
    post:
      description: It is possible to specify multiple stops by LOCODE together with roadstead time and laytime.
      operationId: post-voyage_planning-listing
      parameters:
      - default: false
        description: If `true` some extra attributes will be added to the response informing about usage and limits of this endpoint.
        in: query
        name: request_limit_info
        required: false
        type: boolean
      - description: List of port stops for the voyage.
        in: body
        name: voyage_planning-request
        required: true
        schema:
          $ref: '#/definitions/voyage_planning-request'
      responses:
        '200':
          description: Voayage Planning Response
          schema:
            $ref: '#/definitions/voyage_planning-response'
        '400':
          description: The request body could not be parsed.
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-400
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 400
            description: You sent a request that this server could not understand.
            message: Bad Request
            status: error
        '401':
          description: The server could not verify that you are authorized to access the URL.
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-401
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 401
            description: The server could not verify that you are authorized to access the URL requested.
            message: Unauthorized
            status: error
        '403':
          description: The provided credentials were correct but the API is not yet fully configured.
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-403
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 403
            description: The API is not yet fully configured.
            message: Forbidden
            status: error
        '405':
          description: The used HTTP method is not allowed for this URL.
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-405
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 405
            description: The method is not allowed for the requested URL.
            message: Method Not Allowed
            status: error
        '422':
          description: A required parameter is missing or has a wrong structure.
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-422
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 422
            description: The request was well-formed but was unable to be followed due to semantic errors.
            message: Unprocessable Entity
            status: error
        '429':
          description: The client requested the resource too many times. (rate limit)
          schema:
            allOf:
            - $ref: '#/definitions/error-message-response'
            - title: response-status-429
            xml:
              name: response
              namespace: https://apiv2.fleetmon.com
              x-extra-attributes:
                timestamp:
                  type: date-time
          x-example-object:
            code: 429
            description: Only 200 requests per 30 days are allowed for this endpoint.
            message: Too Many Requests
            status: error
      security:
      - apikey: []
      - apikey_authorization_header: []
      - apikey_header: []
      summary: Delivers ETA & distance estimations for a voyage
      tags:
      - Voyage Planning
definitions:
  voyage_planning-request-stop:
    properties:
      laytime:
        description: laytime in minutes in port, may be omitted in last entry
        format: int64
        type: integer
        xml:
          x-add-datatype: true
      locode:
        description: LOCODE of destination port
        maxLength: 5
        minLength: 5
        type: string
        xml:
          x-add-datatype: true
      roadstead:
        description: roadstead laytime in hours before entering the port, defaults to `0`
        format: int64
        type: integer
        xml:
          x-add-datatype: true
    required:
    - locode
    - laytime
    type: object
    xml:
      name: item
      x-add-datatype: true
  voyage_planning-response:
    properties:
      callsign:
        description: Vessel Callsign
        type: string
        x-nullable: true
        xml:
          x-add-datatype: true
      imo_number:
        description: Vessel IMO number
        format: int64
        type: integer
        x-nullable: true
        xml:
          x-add-datatype: true
      latitude:
        description: Vessels current Latitude
        format: float
        type: number
        xml:
          x-add-datatype: true
      longitude:
        description: Vessels current Longitude
        format: float
        type: number
        xml:
          x-add-datatype: true
      mmsi_number:
        description: Vessel MMSI number
        format: int64
        type: integer
        x-nullable: true
        xml:
          x-add-datatype: true
      name:
        description: Vessel Name
        type: string
        x-nullable: true
        xml:
          x-add-datatype: true
      request_limit_info:
        description: Information about usage and limits of this endpoint. Included if query parameter `request_limit_info` is `true`
        properties:
          left_requests:
            description: Number of requests left at this moment to this endpoint. If not included there is no limit.
            type: integer
            xml:
              x-add-datatype: true
          max_requests:
            description: Maximum number of requests to this endpoint within 30 days. If not included there is no limit.
            type: integer
            xml:
              x-add-datatype: true
          used_requests:
            description: Number of requests to this endpoint within the last 30 days.
            type: integer
            xml:
              x-add-datatype: true
        required:
        - used_requests
        title: request-limit-info
        type: object
        xml:
          x-add-datatype: true
      stops:
        items:
          $ref: '#/definitions/voyage_planning-response-stop'
        type: array
        xml:
          wrapped: true
          x-add-datatype: true
      vessel_id:
        description: Vessel ID
        format: int64
        type: integer
        xml:
          x-add-datatype: true
    required:
    - vessel_id
    - name
    - imo_number
    - mmsi_number
    - callsign
    - latitude
    - longitude
    - stops
    type: object
    xml:
      name: response
      namespace: https://apiv2.fleetmon.com
      x-extra-attributes:
        timestamp:
          type: date-time
  error-message-response:
    properties:
      code:
        description: correlates to the HTTP status code
        format: int32
        type: integer
        xml:
          x-add-datatype: true
      description:
        description: more detailed description
        type: string
        xml:
          x-add-datatype: true
      message:
        description: short error message
        type: string
        xml:
          x-add-datatype: true
      status:
        description: '"error"'
        example: error
        format: ascii
        type: string
        xml:
          x-add-datatype: true
    required:
    - status
    - message
    - description
    - code
    type: object
  voyage_planning-request:
    properties:
      start:
        description: Start time of voyage (ETD of first stop; if not included the current vessel position and distance to first stop is considered)
        format: date-time
        type: string
        xml:
          x-add-datatype: true
      stops:
        items:
          $ref: '#/definitions/voyage_planning-request-stop'
        minLength: 1
        type: array
        xml:
          wrapped: true
          x-add-datatype: true
      vessel_id:
        description: Vessel ID
        format: int64
        type: integer
        xml:
          x-add-datatype: true
    required:
    - vessel_id
    - stops
    type: object
    xml:
      name: voyage_planning_request
      namespace: https://apiv2.fleetmon.com
  voyage_planning-response-stop:
    properties:
      distance:
        description: Travel distance to port in nautical miles
        format: float
        type: number
        x-nullable: true
        xml:
          x-add-datatype: true
      eta:
        description: Estimated time of arrival at port
        format: date-time
        type: string
        x-nullable: true
        xml:
          x-add-datatype: true
      etd:
        description: Estimated time of departure from port
        format: date-time
        type: string
        x-nullable: true
        xml:
          x-add-datatype: true
      message:
        description: Contains a description if port or route can not be found, `eta`, `etd` & `distance` will be `null` in that case.
        type: string
        xml:
          x-add-datatype: true
      port_locode:
        description: LOCODE of port
        type: string
        xml:
          x-add-datatype: true
      port_name:
        description: Name of port
        type: string
        xml:
          x-add-datatype: true
    required:
    - eta
    - etd
    - distance
    type: object
    xml:
      name: item
      x-add-datatype: true
securityDefinitions:
  apikey:
    description: Auth via API-Key Query-Parameter
    in: query
    name: apikey
    type: apiKey
  apikey_authorization_header:
    description: 'Auth via API-Key in ''Authorization'' header field in the form ''Authorization: Token <apikey>'''
    in: header
    name: Authorization
    type: apiKey
  apikey_header:
    description: Auth via API-Key in 'Api-Key' header field
    in: header
    name: Api-Key
    type: apiKey
x-tagGroups:
- name: My
  tags:
  - My API Keys
  - My Client
  - My User Notification Setting
  - My User Alert Addresses
  - Login Token
- name: Vessels
  tags:
  - Vessel Search
  - Vessel Photo
  - Vessel Schedule
  - Next Port / ETA Calculation
  - Vessel History
  - Vessel Positions Only
  - Vessel Identity
  - Vessel Route To Next Port
  - Vessels Nearby
  - Vessels Near Position
  - Historical AIS Static Messages
  - Historical Track API
  - Vessel Positions with Extended Vessel Data
  - Port Calls per Vessel
  - Vessel Coarse Type
  - ETA Reports
  - Basic Vessel Data
  - Non AIS Vessel Particulars
  - Vessel Time to Port
  - Vessel Change Events
  - Voyage Planning
  - Vessel Dynamic AIS
- name: Ports
  tags:
  - Expected Port Arrivals
  - Vessels in Port
  - Port Search
  - Port Calls per Port
- name: Fleets
  tags:
  - Fleet Tracker
  - My Fleet Positions
  - Dry and Bulk Cargo Fleet
- name: Logistics
  tags:
  - Logistics
  - RoRo Ferry Terminal Demo
  - Vessel ETA & Destination Change Events
  - Terminals
  - Estimated Laytime - Specific Vessel
- name: Zone
  tags:
  - Regional AIS
  - Zone Call
  - Zone Information
  - User Zones
- name: Routing
  tags:
  - Route To Port
  - Distance To Port
  - Vessel Route To Next Port
  - Vessel Route From Last Port
- name: Weather & Water
  tags:
  - Weather
  - Water
  - Current