Getting Started

Sections

Theme switcher

Voyage

The Voyage API provides comprehensive tracking and analysis of vessel voyages, enabling users to query a paginated list of voyages with a rich set of filters. This API supports tracking of both current and historical voyages, including predicted voyages, with detailed vessel specifications, commodity information, and port call data.

A voyage represents a complete journey undertaken by a vessel, including loading and discharge operations, port calls, and associated commodities. Each voyage contains detailed information about the vessel, its route, operational metrics, and cargo details.

Key Features

🆔 Consistent Voyage Identifier – Every voyage now includes a persistent and unique voyageId field, allowing you to reliably track voyage updates over time. This means you no longer need to pull the entire dataset each time you want to analyze or sync voyage data.

🚢 Comprehensive Voyage Data – Access detailed voyage information, including vessel specifications, commodities, port calls, and operational metrics such as speed, duration, and draft measurements.

📍 Port Call Tracking – Track loading and discharge operations with detailed location information, including zones, ports, berths, and anchorage data.

📦 Commodity Management – Retrieve comprehensive commodity information, including intake volumes (metric tonnes, cubic metres, barrels), boil-off volumes, and charterer details.

Operational Metrics – Analyze voyage performance with metrics such as average speed, top speed, duration, sea duration, and draft ratios.

🎯 Flexible Filtering – Apply filters by:

  • Voyage type (laden, ballast)
  • Current voyages only
  • Cabotage exclusion
  • Commodities (names, IDs, or groups)
  • Date ranges (start, end, last updated)
  • Load and discharge areas (IDs, names, UNLOCODEs)
  • Vessel specifications (IMO, DWT, LOA, beam, draft, TEU, cubic capacity)
  • Vessel segments, types, and sub-types
  • Fleet names
  • Load/discharge status flags
  • Predicted voyages inclusion

📊 Pagination & Query Control – Handle large datasets efficiently with cursor-based pagination for structured data retrieval.

🔮 Predicted Voyages – Include predicted voyages in your queries to track future vessel movements and planned operations.

The GraphQL endpoint provides enhanced filtering capabilities and returns a richer dataset compared to its RESTful counterparts, albeit with an increase in complexity. Below, we provide illustrative examples to facilitate your utilization of this API.

Our REST endpoint Dry or Tanker offers a simpler way to get what you need. It is perfect for customers who value ease of use over advanced querying capabilities.

The purpose of this API is to provide a unified response across all vertical markets that we serve. Two points need to be taken into consideration:

  • Geographic location: While most geographic locations are common across all verticals (e.g., the Port of Rotterdam is identical for dry and tanker vessels), this is not the case for zone locations, which are market-dependent areas and are not shared across verticals.
  • Segments filtering: This API offers greater granularity than REST APIs, which are decoupled by main verticals (dry / tanker). In contrast, this API provides a more detailed list of segments, as shown below:
REST Endpoint equivalent
Segments

Dry Voyages

["dry", "mpp", "obo"]

Tanker Voyages

["tanker", "chemoil", "chemical", "lpg", "lng", "fso", "obo"]

Default Values

The voyages query has the following default values:

  • onlyCurrent: false – Returns both current and historical voyages by default
  • excludeCabotage: false – Includes cabotage voyages by default
  • includePredicted: false – Excludes predicted voyages by default

Example Queries

Basic Voyage Query

GraphQL
query GetVoyages { voyages(first: 50) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id type lastUpdated vessel { imo name dwt type } commodities { name group intakeMt } load { port { name } entryDate outDate } disch { port { name } entryDate outDate } } } } }

Current Voyages Only

GraphQL
query GetCurrentVoyages { voyages( first: 100 onlyCurrent: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id type vessel { imo name } load { port { name } } disch { port { name } } } } } }

Filter by Vessel Specifications and Date Range

GraphQL
query GetVoyagesByVesselSpecs { voyages( first: 50 vesselDwt: { from: 50000, to: 100000 } vesselSegments: ["tanker"] start: { from: "2024-01-01", to: "2024-12-31" } ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id vessel { imo name dwt segment } avgSpeed duration load { port { name } } disch { port { name } } } } } }

Filter by Commodities and Load Areas

GraphQL
query GetVoyagesByCommodity { voyages( first: 50 commodities: ["Crude Oil", "Clean"] loadAreas: ["NLRTM", "USNYC"] excludeCabotage: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id commodities { name group intakeMt charterer } load { port { name } zone { name } } vessel { imo name } } } } }

Include Predicted Voyages

GraphQL
query GetVoyagesIncludingPredicted { voyages( first: 50 includePredicted: true onlyCurrent: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id isPredicted type vessel { imo name } load { port { name } } disch { port { name } } } } } }

This API is handling large datasets. Please refer to the Pagination documentation for more information. Results are limited to 10,000 voyages per page.

A voyage represents a complete journey undertaken by a vessel, including loading and discharge operations, port calls, and associated commodities. Each voyage contains detailed information about the vessel, its route, operational metrics, and cargo details.

Key Features

🆔 Consistent Voyage Identifier – Every voyage now includes a persistent and unique voyageId field, allowing you to reliably track voyage updates over time. This means you no longer need to pull the entire dataset each time you want to analyze or sync voyage data.

🚢 Comprehensive Voyage Data – Access detailed voyage information, including vessel specifications, commodities, port calls, and operational metrics such as speed, duration, and draft measurements.

📍 Port Call Tracking – Track loading and discharge operations with detailed location information, including zones, ports, berths, and anchorage data.

📦 Commodity Management – Retrieve comprehensive commodity information, including intake volumes (metric tonnes, cubic metres, barrels), boil-off volumes, and charterer details.

Operational Metrics – Analyze voyage performance with metrics such as average speed, top speed, duration, sea duration, and draft ratios.

🎯 Flexible Filtering – Apply filters by:

  • Voyage type (laden, ballast)
  • Current voyages only
  • Cabotage exclusion
  • Commodities (names, IDs, or groups)
  • Date ranges (start, end, last updated)
  • Load and discharge areas (IDs, names, UNLOCODEs)
  • Vessel specifications (IMO, DWT, LOA, beam, draft, TEU, cubic capacity)
  • Vessel segments, types, and sub-types
  • Fleet names
  • Load/discharge status flags
  • Predicted voyages inclusion

📊 Pagination & Query Control – Handle large datasets efficiently with cursor-based pagination for structured data retrieval.

🔮 Predicted Voyages – Include predicted voyages in your queries to track future vessel movements and planned operations.

The GraphQL endpoint provides enhanced filtering capabilities and returns a richer dataset compared to its RESTful counterparts, albeit with an increase in complexity. Below, we provide illustrative examples to facilitate your utilization of this API.

Our REST endpoint Dry or Tanker offers a simpler way to get what you need. It is perfect for customers who value ease of use over advanced querying capabilities.

The purpose of this API is to provide a unified response across all vertical markets that we serve. Two points need to be taken into consideration:

  • Geographic location: While most geographic locations are common across all verticals (e.g., the Port of Rotterdam is identical for dry and tanker vessels), this is not the case for zone locations, which are market-dependent areas and are not shared across verticals.
  • Segments filtering: This API offers greater granularity than REST APIs, which are decoupled by main verticals (dry / tanker). In contrast, this API provides a more detailed list of segments, as shown below:
REST Endpoint equivalent
Segments

Dry Voyages

["dry", "mpp", "obo"]

Tanker Voyages

["tanker", "chemoil", "chemical", "lpg", "lng", "fso", "obo"]

Default Values

The voyages query has the following default values:

  • onlyCurrent: false – Returns both current and historical voyages by default
  • excludeCabotage: false – Includes cabotage voyages by default
  • includePredicted: false – Excludes predicted voyages by default

Example Queries

Basic Voyage Query

GraphQL
query GetVoyages { voyages(first: 50) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id type lastUpdated vessel { imo name dwt type } commodities { name group intakeMt } load { port { name } entryDate outDate } disch { port { name } entryDate outDate } } } } }

Current Voyages Only

GraphQL
query GetCurrentVoyages { voyages( first: 100 onlyCurrent: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id type vessel { imo name } load { port { name } } disch { port { name } } } } } }

Filter by Vessel Specifications and Date Range

GraphQL
query GetVoyagesByVesselSpecs { voyages( first: 50 vesselDwt: { from: 50000, to: 100000 } vesselSegments: ["tanker"] start: { from: "2024-01-01", to: "2024-12-31" } ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id vessel { imo name dwt segment } avgSpeed duration load { port { name } } disch { port { name } } } } } }

Filter by Commodities and Load Areas

GraphQL
query GetVoyagesByCommodity { voyages( first: 50 commodities: ["Crude Oil", "Clean"] loadAreas: ["NLRTM", "USNYC"] excludeCabotage: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id commodities { name group intakeMt charterer } load { port { name } zone { name } } vessel { imo name } } } } }

Include Predicted Voyages

GraphQL
query GetVoyagesIncludingPredicted { voyages( first: 50 includePredicted: true onlyCurrent: true ) { pageInfo { hasNextPage endCursor } totalCount edges { node { _id isPredicted type vessel { imo name } load { port { name } } disch { port { name } } } } } }

This API is handling large datasets. Please refer to the Pagination documentation for more information. Results are limited to 10,000 voyages per page.

Header Parameters

Authorizationstring Required

Bearer token used for authentication.

Body Parameters

firstint

Maximum number of items to return from the start of the list.

lastint

Maximum number of items to return from the end of the list.

beforestring

Return items that come before the specified cursor.

afterstring

Return items that come after the specified cursor.

typestring

Filter by the type of voyage (e.g. 'laden', 'ballast').

onlyCurrentboolean

Filter to include only current voyages. Default: false

excludeCabotageboolean

Filter to exclude cabotage voyages. Default: false

commoditiesarray

List of commodity names, IDs or groups to filter the voyages.

startobject

Filter by the start date/time.

Show child attributes

endobject

Filter by the end date/time.

Show child attributes

loadStsboolean

Include only voyages that have a loaded status.

dischStsboolean

Include only voyages that have a discharged status.

includePredictedboolean

Filter to include predicted voyages. Default: false

loadAreasarray

Filter by the IDs, names, or UNLOCODEs of the load areas.

dischAreasarray

Filter by the IDs, names, or UNLOCODEs of the discharge areas.

lastUpdatedobject

Filter by the last updated date/time.

Show child attributes

vesselBuiltobject

Filter by the year the vessel was built (inclusive).

Show child attributes

vesselBeamobject

Filter by the beam of the vessel.

Show child attributes

vesselLoaobject

Filter by the length overall (LOA) of the vessel.

Show child attributes

vesselDraftobject

Filter by the draft of the vessel.

Show child attributes

vesselDwtobject

Filter by the deadweight tonnage of the vessel.

Show child attributes

vesselTeuobject

Filter by the TEU capacity of the vessel.

Show child attributes

vesselCubicobject

Filter by the cubic capacity of the vessel.

Show child attributes

vesselFleetsarray

Filter by the fleet names the vessel belongs to.

vesselIdsarray

Filter by the vessel IDs.

vesselImosarray

Filter by the IMO numbers of the vessels.

vesselSegmentsarray

Filter by the vessel segments (e.g. 'dry', 'tanker', 'lng', 'chemical').

vesselTypesarray

Filter by the vessel types (e.g. 'Bulk carrier', 'Tanker').

vesselSubtypesarray

Filter by the vessel sub‑types

Response

200
Object

Response Attributes

dataobject

Show child attributes

POST

/

Select
1

Response