FleetMon Voyage Planning API

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

Operations 1

POST /voyage-planning/ Delivers ETA & distance estimations for a voyage #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fleetmon-voyage-planning-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fleetmon-voyage-planning-api-openapi.yml Raw ↑
openapi: 3.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'
servers:
- url: https://apiv2.fleetmon.com/
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:
      - 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
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Voayage Planning Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/voyage_planning-response'
        '400':
          description: The request body could not be parsed.
          x-example-object:
            code: 400
            description: You sent a request that this server could not understand.
            message: Bad Request
            status: error
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-400
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
        '401':
          description: The server could not verify that you are authorized to access the URL.
          x-example-object:
            code: 401
            description: The server could not verify that you are authorized to access the URL requested.
            message: Unauthorized
            status: error
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-401
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
        '403':
          description: The provided credentials were correct but the API is not yet fully configured.
          x-example-object:
            code: 403
            description: The API is not yet fully configured.
            message: Forbidden
            status: error
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-403
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
        '405':
          description: The used HTTP method is not allowed for this URL.
          x-example-object:
            code: 405
            description: The method is not allowed for the requested URL.
            message: Method Not Allowed
            status: error
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-405
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
        '422':
          description: A required parameter is missing or has a wrong structure.
          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
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-422
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
        '429':
          description: The client requested the resource too many times. (rate limit)
          x-example-object:
            code: 429
            description: Only 200 requests per 30 days are allowed for this endpoint.
            message: Too Many Requests
            status: error
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/error-message-response'
                - title: response-status-429
                xml:
                  name: response
                  namespace: https://apiv2.fleetmon.com
                  x-extra-attributes:
                    timestamp:
                      type: date-time
      security:
      - apikey: []
      - apikey_authorization_header: []
      - apikey_header: []
      summary: Delivers ETA & distance estimations for a voyage
      tags:
      - Voyage Planning
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/voyage_planning-request'
        description: List of port stops for the voyage.
        required: true
components:
  schemas:
    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-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: '#/components/schemas/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:
      properties:
        callsign:
          description: Vessel Callsign
          type:
          - string
          - 'null'
          xml:
            x-add-datatype: true
        imo_number:
          description: Vessel IMO number
          format: int64
          type:
          - integer
          - 'null'
          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
          - 'null'
          xml:
            x-add-datatype: true
        name:
          description: Vessel Name
          type:
          - string
          - 'null'
          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: '#/components/schemas/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-response-stop:
      properties:
        distance:
          description: Travel distance to port in nautical miles
          format: float
          type:
          - number
          - 'null'
          xml:
            x-add-datatype: true
        eta:
          description: Estimated time of arrival at port
          format: date-time
          type:
          - string
          - 'null'
          xml:
            x-add-datatype: true
        etd:
          description: Estimated time of departure from port
          format: date-time
          type:
          - string
          - 'null'
          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
  securitySchemes:
    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