FleetMon Voyage Planning API
Delivers ETA & distance estimations for a route with multiple ports specified by LOCODE.
Delivers ETA & distance estimations for a route with multiple ports specified by LOCODE.
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