API Reference
VesselFront's REST API gives you programmatic access to maritime route optimization, vessel management, and telemetry. Embed AI-powered voyage intelligence directly into your fleet management system, ERP, or custom workflows. No installation required..
Organization
1 endpointRetrieve the organization record tied to your API key. The returned record confirms key validity and provides the orgId required when creating vessels and chartings.
/organization Get the organization associated with the API key
Responses
Vessel
6 endpoint sManage the vessels in your fleet. Physical parameters — DWT, LBP, service speed, and propeller pitch — are stored here and fed directly into the routing engine to produce accurate fuel and ETA predictions.
/vessel List vessels (paginated)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | optional | — |
pageSize | query | integer | optional | — |
Responses
/vessel Create a new vessel
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | optional | nullable |
image | string | optional | nullable |
dateConstructed | string | required | — |
captain | string | optional | nullable |
dwt | number | required | — |
loa | number | required | — |
lbp | number | required | — |
breadth | number | required | — |
depth | number | required | — |
draftDesign | number | required | — |
serviceSpeed | number | required | — |
draftScant | number | required | — |
pitch | number | required | — |
imo | string | optional | — |
orgId | string | optional | — |
type | number | optional | — |
registrarId | string | optional | — |
owner | string | optional | — |
Responses
/vessel/{vesselId} Get a vessel by ID
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
Responses
/vessel/{vesselId} Update a vessel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | optional | nullable |
image | string | optional | nullable |
dateConstructed | string | required | — |
captain | string | optional | nullable |
dwt | number | required | — |
loa | number | required | — |
lbp | number | required | — |
breadth | number | required | — |
depth | number | required | — |
draftDesign | number | required | — |
serviceSpeed | number | required | — |
draftScant | number | required | — |
pitch | number | required | — |
imo | string | optional | — |
orgId | string | optional | — |
type | number | optional | — |
registrarId | string | optional | — |
owner | string | optional | — |
Responses
/vessel/{vesselId} Delete a vessel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
Responses
/vessel/{vesselId}/stats Get statistics for a vessel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
Responses
Charting
11 endpoint sThe core resource. A charting is a route optimization request between two ports. Once created, the engine applies weather forecasts, ECA zones, piracy avoidance, and your vessel's performance curve, then returns a set of waypoints. Poll the record or use webhooks to detect completion. Export routes as CSV or RTZ for direct ECDIS upload.
/charting List chartings (paginated)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | optional | — |
pageSize | query | integer | optional | — |
search | query | string | optional | — |
Responses
/charting Create a new charting (route optimization request)
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
latFrom | number | required | — |
lngFrom | number | required | — |
nidFrom | string | optional | — |
portFromName | string | required | — |
latTo | number | required | — |
lngTo | number | required | — |
nidTo | string | optional | — |
portToName | string | required | — |
startDate | string (date-time) | required | — |
endDate | string (date-time) | optional | — |
vesselId | string | required | — |
speedRangeMin | number | required | — |
speedRangeMax | number | required | — |
draft | number | required | — |
trim | number | required | — |
rpm | number | required | — |
dwt | number | required | — |
lbp | number | required | — |
pitch | number | required | — |
optimizationType | string | required | — |
routeType | string | required | — |
maxWaveHeight | number | optional | — |
maxWindBf | number | optional | — |
maxNorthLat | number | optional | — |
waveUnit | string | optional | One of: meters, douglas |
windUnit | string | optional | One of: m/s, bf |
noGoAreas | array | optional | — |
avoidEca | boolean | optional | Default: false |
avoidPiracyAreas | boolean | optional | Default: true |
avoidWarZones | boolean | optional | Default: true |
importedData | array | optional | — |
owner | string | optional | — |
triggeredBy | string | optional | — |
onboardingUploadedFileKey | string | optional | — |
isAlterFrom | boolean | optional | — |
Responses
/charting/active Get all active chartings
Responses
/charting/{chartingId} Get a charting by ID
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
addCharting | query | boolean | optional | — |
Responses
/charting/{chartingId} Update a charting
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
latFrom | number | required | — |
lngFrom | number | required | — |
nidFrom | string | optional | — |
portFromName | string | required | — |
latTo | number | required | — |
lngTo | number | required | — |
nidTo | string | optional | — |
portToName | string | required | — |
startDate | string (date-time) | required | — |
endDate | string (date-time) | optional | — |
vesselId | string | required | — |
speedRangeMin | number | required | — |
speedRangeMax | number | required | — |
draft | number | required | — |
trim | number | required | — |
rpm | number | required | — |
dwt | number | required | — |
lbp | number | required | — |
pitch | number | required | — |
optimizationType | string | required | — |
routeType | string | required | — |
maxWaveHeight | number | optional | — |
maxWindBf | number | optional | — |
maxNorthLat | number | optional | — |
waveUnit | string | optional | One of: meters, douglas |
windUnit | string | optional | One of: m/s, bf |
noGoAreas | array | optional | — |
avoidEca | boolean | optional | Default: false |
avoidPiracyAreas | boolean | optional | Default: true |
avoidWarZones | boolean | optional | Default: true |
importedData | array | optional | — |
owner | string | optional | — |
triggeredBy | string | optional | — |
onboardingUploadedFileKey | string | optional | — |
isAlterFrom | boolean | optional | — |
Responses
/charting/{chartingId}/segments/compute Compute route segments for a charting
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
splitIndices | array | optional | — |
Responses
/charting/{chartingId}/critical-points Get critical points for a charting
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Responses
/charting/{chartingId}/foc Get fuel oil consumption (FOC) estimation for a charting
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Responses
/charting/{chartingId}/csv Download route as CSV with integrity hash
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Responses
/charting/{chartingId}/rtz Download route in RTZ format
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Responses
/charting/{chartingId}/explanation Get a natural-language explanation of the route (rate-limited to 10 requests/hour)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chartingId | path | string | required | — |
Responses
Constraints
3 endpoint sDefine geographic polygons the engine must avoid. Constraints can be scoped globally, per organization, or by vessel type. Common use cases: war zones, piracy hotspots, ECA boundaries, and draft-restricted passages.
/constraints List all navigation constraints
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
level | query | string | optional | Filter by constraint level |
vesselTypeId | query | string | optional | Filter by vessel type ID |
Responses
/constraints Create a navigation constraint
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | required | — |
geometry | object | required | — |
type | string | required | One of: USER_DEFINED, PREDEFINED, MILITARY, HIGH_RISK |
level | string | required | One of: GLOBAL, ORGANIZATION, VESSEL_TYPE |
start_date | string (date) | optional | — |
end_date | string (date) | optional | — |
is_active | boolean | optional | Default: true |
description | string | optional | — |
orgIds | array | optional | Required when level is ORGANIZATION |
vesselTypeIds | array | optional | Required when level is VESSEL_TYPE |
Responses
/constraints/{constraintId} Delete a navigation constraint
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
constraintId | path | string | required | — |
Responses
Client Data
4 endpoint sStore and manage client-specific configuration data linked to constraints. Useful when running a multi-tenant integration and needing per-customer routing rules.
/client-data Get client-specific data
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselTypeId | query | string | optional | Filter by vessel type ID |
Responses
/client-data Create a client data entry
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | required | — |
geometry | object | required | — |
type | string | required | One of: USER_DEFINED, PREDEFINED, MILITARY, HIGH_RISK |
level | string | required | One of: GLOBAL, ORGANIZATION, VESSEL_TYPE |
start_date | string (date) | optional | — |
end_date | string (date) | optional | — |
is_active | boolean | optional | Default: true |
description | string | optional | — |
orgIds | array | optional | Required when level is ORGANIZATION |
vesselTypeIds | array | optional | Required when level is VESSEL_TYPE |
Responses
/client-data/{constraintId} Update a client data entry
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
constraintId | path | string | required | — |
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | required | — |
geometry | object | required | — |
type | string | required | One of: USER_DEFINED, PREDEFINED, MILITARY, HIGH_RISK |
level | string | required | One of: GLOBAL, ORGANIZATION, VESSEL_TYPE |
start_date | string (date) | optional | — |
end_date | string (date) | optional | — |
is_active | boolean | optional | Default: true |
description | string | optional | — |
orgIds | array | optional | Required when level is ORGANIZATION |
vesselTypeIds | array | optional | Required when level is VESSEL_TYPE |
Responses
/client-data/{constraintId} Delete a client data entry
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
constraintId | path | string | required | — |
Responses
Telemetry
2 endpoint sPush real-time vessel position and engine performance data to VesselFront. Telemetry feeds the voyage analytics dashboard, improves fuel consumption models, and enables live deviation tracking against the planned route.
/telemetry/{vesselId} Get telemetry records for a vessel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
from | query | string | optional | Start of time range (inclusive) |
to | query | string | optional | End of time range (inclusive) |
page | query | integer | optional | Page number (used with pageSize for pagination) |
pageSize | query | integer | optional | Number of records per page |
Responses
/telemetry/{vesselId} Create a telemetry record for a vessel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vesselId | path | string | required | — |
Request Body
| Field | Type | Required | Notes |
|---|---|---|---|
timestamp | string (date-time) | required | — |
latitude | number | required | Min: -90 · Max: 90 |
longitude | number | required | Min: -180 · Max: 180 |
speed | number | required | Min: 0 |
heading | number | required | Min: 0 · Max: 360 |
rpm | number | required | Min: 0 |
fuelConsumption | number | required | Min: 0 |
draft | number | required | Min: 0 |
engineLoad | number | required | Min: 0 · Max: 100 |
windSpeed | number | optional | Min: 0 |
windDirection | number | optional | Min: 0 · Max: 360 |
seaState | number | optional | Min: 0 · Max: 9 |
waterDepth | number | optional | Min: 0 |
trimFore | number | optional | — |
trimAft | number | optional | — |
mePower | number | optional | Min: 0 |