Voyage Configuration API (1.646)

Download OpenAPI specification:Download

Introduction

By using Voyage configuration API, user can access the voyage optimization services offered by ABB.

Rate Limiting

This API implements rate limiting to ensure fair usage and optimal performance for all users.

  • Rate Limit: 20 requests per second per endpoint
  • Rate Limit Headers: Each response includes headers indicating your current rate limit status

When you approach or exceed the rate limit, you'll receive appropriate HTTP status codes and should implement exponential backoff in your retry logic.

Postman Collection

To help you get started quickly with the API, we provide a ready-to-use Postman collection that includes all endpoints with sample requests.

Download: Voyage Configuration API Postman Collection

The collection includes:

  • Pre-configured authentication setup
  • Sample requests for all endpoints (including Product API)

Authentication

Get a token

Get token for use in HTTP requests.

Request Body schema: application/x-www-form-urlencoded
client_id
required
string

Client ID as provided by ABB

client_secret
required
string

Client secret as provided by ABB

scope
required
string
Default: "https://genb2crs03euwprod.onmicrosoft.com/rs.iam/region"

The scope the credentials should belong to.

grant_type
required
string
Default: "client_credentials"

The type of token request

Responses

Response Schema: application/json
access_token
required
string

The token used for authentication in API requests

expires_in
required
integer

The duration (in seconds) for which the token remains valid

token_type
required
string
Default: "Bearer"

The type of token

scope
required
string

A space-delimited list of the scopes of the token

resource
string

Resource associated to the token

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "expires_in": 0,
  • "token_type": "Bearer",
  • "scope": "string",
  • "resource": "string"
}

Route Calculation Schedule

Using this endpoint, user can subscribe a voyage for proactive route calculations.

Various types of route calculations are supported by voyage configuration API:

  • Any combination of below shown options can be chosen by the user making the request.

    • Routing type:
      • Instructed set speed routing
      • ETA routing
      • Optimal Speed Routing
      • Recommended Speed Routing
    • Optimization type:
      • time
      • fuel
      • fuel cost
      • cost
  • Typical combinations used by customers (all can be with basic or detailed route template and with followShortestNavigableRoute parameter set to true or false):

    • CP routing 1: [Instructed set speed routing + time optimization]
    • CP routing 2: [Instructed set speed routing + cost optimization]
    • ETA routing: [ETA routing + fuel cost optimization]
    • Full speed routing: [Instructed set speed routing + time optimization]
    • Slow as possible routing: [Optimum Speed routing + Fuel cost Optimization]
    • Lowest Cost routing: [Optimum speed routing + Cost Optimization]
  • All requests can contain either only a basic route template (i.e. only with departure, destination and intermediate stops) or a detailed route template (representing masters intended route or preferred route).

  • Also, all route calculations can be fully weather optimized (both speed and track can be optimized when followShortestNavigableRoute = false) or only speed optimized (when followShortestNavigableRoute = true).

Create Route Calculation Schedule

User can use the correlation IDs of routes calculated by the Routing API to schedule route calculations or they can provide the full route calculation request body (exactly same as vessel routing api) to do the same. The route calculation results will be announced on the WebSocket connection of the notification API and made available on the product API .

Notes:

  • The authentication token's scopes must match the selected route request type.
  • A warning message will be sent (via notification API) to the user if remaining days less than 10 days.
Authorizations:
(BearerABBIdentity)
Request Body schema: application/json
required
required
object (VoyageInfo)

Information about the voyage this route is for.

required
object (SchedulerConfig)

Configuration about scheduling.

required
object (OptimizationInfo)

Information about the optimization.

required
object

Route request details.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

Array of objects (AlternativeOptimization)

Optinal list of alternative optimizations for the route.

Responses

Response Headers
X-RateLimit-Limit
number
Example: "20"

The maximum number of requests that is allowed to make in the current time window.

X-RateLimit-Remaining
number
Example: "19"

The number of requests remaining in the current time window.

X-RateLimit-Reset
string <RFC3339 (UTC)>
Example: "2024-02-05T00:00:00Z"

The time at which the current rate limit window resets.

Response Schema: application/json
required
object (VoyageInfo)

Information about the voyage this route is for.

required
object (SchedulerResponse)

Scheduler configuration returned in GET responses.

routeCalculationScheduleId
required
string (RouteCalculationScheduleId)

Route calculation schedule unique identifier. This id is generated by ABB and normally will be associated with a unique voyage on the customer side. User can use this ID to filter products generated for a voyage when calling Product API.

required
object (OnDemandRouteRequest)
version
required
number (Version)

Refers to the version or update number of the schedule. It indicates the sequential order of changes.

status
required
string (Status)
Enum: "Active" "Inactive"

Current status of the route calculation schedule.

  • Active: The schedule is available and will be used for scheduling.
  • Inactive: The schedule is disabled and will not be used for scheduling.
createdAt
required
string <RFC3339 (UTC)>

The date and time when the configuration was created.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

Array of objects (AlternativeOptimization)

Optinal list of alternative optimizations for the route.

updatedAt
string <RFC3339 (UTC)>

The date and time when the configuration was last modified.

Request samples

Content type
application/json
{
  • "customerReferenceId": "123456789",
  • "optimizationInfo": {
    },
  • "voyageInfo": {
    },
  • "scheduler": {
    },
  • "routeRequest": {
    },
  • "alternativeOptimizations": [
    ]
}

Response samples

Content type
application/json
{
  • "customerReferenceId": "123456789",
  • "voyageInfo": {
    },
  • "scheduler": {
    },
  • "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
  • "routeRequest": {
    },
  • "alternativeOptimizations": [
    ],
  • "version": 1,
  • "status": "Active",
  • "createdAt": "2025-10-01T12:00:00Z",
  • "updatedAt": "2025-10-01T12:00:00Z"
}

Get Route Calculation Schedule

If a revision is not specified, the endpoint will return the most recent revision of the Route Calculation Schedule. To retrieve a specific revision, include the revision as a query parameter.

Authorizations:
(BearerABBIdentity)
path Parameters
routeCalculationScheduleId
required
string

Unique identifier of the route calculation schedule.

query Parameters
revision
string

Route calculation schedule config revision.

Responses

Response Headers
X-RateLimit-Limit
number
Example: "20"

The maximum number of requests that is allowed to make in the current time window.

X-RateLimit-Remaining
number
Example: "19"

The number of requests remaining in the current time window.

X-RateLimit-Reset
string <RFC3339 (UTC)>
Example: "2024-02-05T00:00:00Z"

The time at which the current rate limit window resets.

Response Schema: application/json
required
object (VoyageInfo)

Information about the voyage this route is for.

required
object (SchedulerResponse)

Scheduler configuration returned in GET responses.

routeCalculationScheduleId
required
string (RouteCalculationScheduleId)

Route calculation schedule unique identifier. This id is generated by ABB and normally will be associated with a unique voyage on the customer side. User can use this ID to filter products generated for a voyage when calling Product API.

required
object (OnDemandRouteRequest)
version
required
number (Version)

Refers to the version or update number of the schedule. It indicates the sequential order of changes.

status
required
string (Status)
Enum: "Active" "Inactive"

Current status of the route calculation schedule.

  • Active: The schedule is available and will be used for scheduling.
  • Inactive: The schedule is disabled and will not be used for scheduling.
createdAt
required
string <RFC3339 (UTC)>

The date and time when the configuration was created.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

Array of objects (AlternativeOptimization)

Optinal list of alternative optimizations for the route.

updatedAt
string <RFC3339 (UTC)>

The date and time when the configuration was last modified.

Response samples

Content type
application/json
{
  • "customerReferenceId": "123456789",
  • "voyageInfo": {
    },
  • "scheduler": {
    },
  • "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
  • "routeRequest": {
    },
  • "alternativeOptimizations": [
    ],
  • "version": 1,
  • "status": "Active",
  • "createdAt": "2025-10-01T12:00:00Z",
  • "updatedAt": "2025-10-01T12:00:00Z"
}

Update Route Calculation Schedule

Allows users to update a Route Calculation Schedule. A new revision will be created upon update, and it will be reflected immediately in the Get Route Calculation Schedule.
Note: The authentication token's scopes must match the selected route request type.

Authorizations:
(BearerABBIdentity)
path Parameters
routeCalculationScheduleId
required
string

Unique identifier of the route schedule.

Request Body schema: application/json
required
customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

object (OptimizationInfo)

Information about the optimization.

object (VoyageInfo)

Information about the voyage this route is for.

object (SchedulerConfig)

Configuration about scheduling.

object

Route request details.

Array of objects (AlternativeOptimization)

Optinal list of alternative optimizations for the route.

status
string (Status)
Enum: "Active" "Inactive"

Current status of the route calculation schedule.

  • Active: The schedule is available and will be used for scheduling.
  • Inactive: The schedule is disabled and will not be used for scheduling.

Responses

Response Headers
X-RateLimit-Limit
number
Example: "20"

The maximum number of requests that is allowed to make in the current time window.

X-RateLimit-Remaining
number
Example: "19"

The number of requests remaining in the current time window.

X-RateLimit-Reset
string <RFC3339 (UTC)>
Example: "2024-02-05T00:00:00Z"

The time at which the current rate limit window resets.

Response Schema: application/json
required
object (VoyageInfo)

Information about the voyage this route is for.

required
object (SchedulerResponse)

Scheduler configuration returned in GET responses.

routeCalculationScheduleId
required
string (RouteCalculationScheduleId)

Route calculation schedule unique identifier. This id is generated by ABB and normally will be associated with a unique voyage on the customer side. User can use this ID to filter products generated for a voyage when calling Product API.

required
object (OnDemandRouteRequest)
version
required
number (Version)

Refers to the version or update number of the schedule. It indicates the sequential order of changes.

status
required
string (Status)
Enum: "Active" "Inactive"

Current status of the route calculation schedule.

  • Active: The schedule is available and will be used for scheduling.
  • Inactive: The schedule is disabled and will not be used for scheduling.
createdAt
required
string <RFC3339 (UTC)>

The date and time when the configuration was created.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

Array of objects (AlternativeOptimization)

Optinal list of alternative optimizations for the route.

updatedAt
string <RFC3339 (UTC)>

The date and time when the configuration was last modified.

Request samples

Content type
application/json
{
  • "customerReferenceId": "123456789",
  • "optimizationInfo": {
    },
  • "voyageInfo": {
    },
  • "scheduler": {
    },
  • "routeRequest": {
    },
  • "alternativeOptimizations": [
    ],
  • "status": "Active"
}

Response samples

Content type
application/json
{
  • "customerReferenceId": "123456789",
  • "voyageInfo": {
    },
  • "scheduler": {
    },
  • "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
  • "routeRequest": {
    },
  • "alternativeOptimizations": [
    ],
  • "version": 1,
  • "status": "Active",
  • "createdAt": "2025-10-01T12:00:00Z",
  • "updatedAt": "2025-10-01T12:00:00Z"
}

Search Route Calculation Schedule

Allows clients to retrieve multiple Route Calculation Schedules using the provided filters.

Authorizations:
(BearerABBIdentity)
query Parameters
imo
number
Example: imo=1234567

The vessel's imo associated to the route calculation. Required if routeCalculationScheduleId is not provided.

from
string <date (YYYY-MM-DDThh:mm:ss.sssZ or YYYY-MM-DDThh:mm:ssZ)>
Example: from=2024-02-05T00:00:00Z

The starting ETD (Estimated Time of Departure) date & time from which the data is requested. Filters records where ETD is on or after this date. Required if routeCalculationScheduleId is not provided.

to
string <date (YYYY-MM-DDThh:mm:ss.sssZ or YYYY-MM-DDThh:mm:ssZ)>
Example: to=2024-02-05T00:00:00Z

The ending ETD (Estimated Time of Departure) date & time until which the data is requested. Filters records where ETD is on or before this date. Required if routeCalculationScheduleId is not provided.

status
string
Default: "Active"
Enum: "All" "Active" "Inactive"
Example: status=Active

Filter route calculation schedule by status:

  • Active: The latest revision of calculation schedule. When a new revision is created or updated successfully, it automatically becomes active and is used by default. Only one revision can be active at a time.

  • Inactive: Previous revisions that have been superseded by a newer active revision. Inactive revisions remain available by specifying the revision number, but are not used by default.

  • All: Returns both active and inactive schedules.

customerReferenceId
string <= 20 characters ^[a-zA-Z0-9]+$
Example: customerReferenceId=123456789

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

routeCalculationScheduleId
string
Example: routeCalculationScheduleId=b7f43e1a-076a-4e46-a6a8-04ff46f11d70

Route calculation schedule unique identifier.

Responses

Response Headers
X-RateLimit-Limit
number
Example: "20"

The maximum number of requests that is allowed to make in the current time window.

X-RateLimit-Remaining
number
Example: "19"

The number of requests remaining in the current time window.

X-RateLimit-Reset
string <RFC3339 (UTC)>
Example: "2024-02-05T00:00:00Z"

The time at which the current rate limit window resets.

Response Schema: application/json
Array
routeCalculationScheduleId
required
string (RouteCalculationScheduleId)

Route calculation schedule unique identifier. This id is generated by ABB and normally will be associated with a unique voyage on the customer side. User can use this ID to filter products generated for a voyage when calling Product API.

required
object (VoyageInfo)

Information about the voyage this route is for.

etd
required
string <date-time>

The estimated time of departure.

version
required
number (Version)

Refers to the version or update number of the schedule. It indicates the sequential order of changes.

status
required
string (Status)
Enum: "Active" "Inactive"

Current status of the route calculation schedule.

  • Active: The schedule is available and will be used for scheduling.
  • Inactive: The schedule is disabled and will not be used for scheduling.
createdAt
required
string <RFC3339 (UTC)>

The date and time when the configuration was created.

object (OptimizationInfo)

Information about the optimization.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

updatedAt
string <RFC3339 (UTC)>

The date and time when the configuration was last modified.

Response samples

Content type
application/json
[
  • {
    }
]

Route Advice Report

This endpoint can be used to convert a precalculated route into route advice. Using this endpoint, it is possible to generate route advices in PDF, RTZ and CSV format which can easily be shared with the crew and other stakeholders. The route advice PDF is created in standard ABB designed format, is always less than 2MB in file size, is always white-labeled and contain the logo provided to ABB during on-boarding of the user. User needs to provide the logo during onboarding. Sample payload and output files can be downloaded from here: PDF | RTZ | CSV

This endpoint uses the correlation IDs of routes calculated by the Routing API to generate reports. The reports will be announced on the WebSocket connection of the Notification API and made available on the Product API.

Route Calculation Requirements:

To successfully generate route advice PDFs, the following parameters must be provided during the route calculation request sent to the Vessel Routing API:

  • Provide vessel name (vesselParameters.vesselName) in the route calculation request
  • Provide cargo load condition (vesselParameters.cargo.loadCondition) in the route calculation request
  • If these parameters are missing, the report generation will fail and the status will be marked as Failed (in Product API). Error messages will be included in the response from the Get Product Status endpoint of Product API. Alternatively, if connected to the Notification API websocket, error messages will be included in the notification message received once the report generation has failed

Image Generation Requirements:

  • Provide meaningful waypoint names (points[i].properties.name) in the route calculation request. At least waypoint names should be provided for departure, destination and any intermediate stops.
  • Waypoint names will be truncated in the generated images if they are too long
  • If no waypoint names are provided or if images cannot be generated for any reason, warning messages will be included in the response from the Get Product Status endpoint of Product API. Alternatively, if connected to the Notification API websocket, warnings will be included in the notification message received once the report has been generated

Text Display Guidelines for PDF Reports:

To ensure optimal PDF report generation and quality, the following text fields are truncated in PDF reports when they exceed the display limit:

  • Voyage names (if longer than 2 lines)
  • Destination and port names provided during route calculation (if longer than 60 characters)

Note: Additional display guidelines for specific fields (such as voyage name, comments, etc.) are documented in the individual field descriptions.

Create route advice report

Allows clients to create a new route advice report.

Authorizations:
(BearerABBIdentity)
Request Body schema: application/json
required
routingCorrelationId
required
string

The identifier that will be used to fetch the result of the pre-calculated route from the Vessel Routing API

updateType
required
string
Enum: "RouteAdvice" "InitialAdvice" "DailyAdvice"

Type of route advice. Indicates the category of routing advice being generated. This value determines the title displayed in the report to identify whether the advice is one-off, initial, or part of a recurring daily update.

Update Type Report Header Title Description
RouteAdvice Route Advice Can be used for one-off route advice recommendation.
InitialAdvice Initial Route Advice Can be used for the first route advice created for a voyage.
DailyAdvice Daily Route Advice Can be used for creating daily route advice updates for a voyage.
required
object (VoyageInfo)

Information about the voyage this route is for.

routeSourceType
required
string
Value: "PreCalculated"

Used to indicate that the route has already been calculated.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

previousReportCorrelationId
string

The identifier of the previous route advice report. This can be used to reference the older report and its contents.

Usage Guidelines:

  • When previousReportCorrelationId is provided, the system calculates relevant changes from the older advice
  • Changes (such as change in ETA) are included in the new route advice report
  • If the provided ID is invalid, warning messages will be included in the response from the Get Product Status endpoint of Product API. Alternatively, if connected to the Notification API websocket, warnings will be included in the notification message received once the report has been generated

Responses

Request samples

Content type
application/json
{
  • "routingCorrelationId": "K4w-THf4DoEERsg=",
  • "customerReferenceId": "123456789",
  • "routeSourceType": "PreCalculated",
  • "updateType": "RouteAdvice",
  • "previousReportCorrelationId": "055ee7a9-b24c-4f09-9be3-6d09291a6814",
  • "voyageInfo": {
    }
}

Response samples

Content type
application/json
{
  • "correlationId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70"
}

Route Comparison Report

This endpoint can be used to convert up to 3 precalculated routes into route comparison PDF. Using this endpoint, it is possible to generate route comparison reports in PDF format which can easily be shared with the crew and other stakeholders. The route comparison PDF is created in standard ABB designed format, is always less than 2MB in file size, is always white-labeled and contain the logo provided to ABB during on-boarding of the user. User needs to provide the logo during onboarding. Sample payload and output files can be downloaded from here: PDF

This endpoint uses the correlation IDs of routes calculated by the Routing API to generate reports. The reports will be announced on the WebSocket connection of the Notification API and made available on the Product API.

Route Calculation Requirements:

To successfully generate route comparison PDFs, the following parameters must be provided during the route calculation request sent to the Vessel Routing API:

  • Provide vessel name (vesselParameters.vesselName) in the route calculation request
  • Provide cargo load condition (vesselParameters.cargo.loadCondition) in the route calculation request
  • If these parameters are missing, the report generation will fail and the status will be marked as Failed (in Product API). Error messages will be included in the response from the Get Product Status endpoint of Product API. Alternatively, if connected to the Notification API websocket, error messages will be included in the notification message received once the report generation has failed

Image Generation Requirements:

  • Provide meaningful waypoint names (points[i].properties.name) in the route calculation request. At least waypoint names should be provided for departure, destination and any intermediate stops.
  • Waypoint names will be truncated in the generated images if they are too long
  • If no waypoint names are provided or if images cannot be generated for any reason, warning messages will be included in the response from the Get Product Status endpoint of Product API. Alternatively, if connected to the Notification API websocket, warnings will be included in the notification message received once the report has been generated

Text Display Guidelines for PDF Reports:

To ensure optimal PDF report generation and quality, the following text fields are truncated in PDF reports when they exceed the display limit:

  • Voyage names and route names (if longer than 2 lines)
  • Destination and port names provided during route calculation (if longer than 2 lines)

Note: Additional display guidelines for specific fields (such as comments, route names, etc.) are documented in the individual field descriptions.

Create route comparison report

Allows clients to create a new route comparison report.

Authorizations:
(BearerABBIdentity)
Request Body schema: application/json
required
required
Array of objects (RouteItem) [ 1 .. 3 ] items

Information about the routes to compare.

required
object (schemas-VoyageInfo)

Information about the voyage this route is for.

customerReferenceId
string (CustomerReferenceId) <= 20 characters ^[a-zA-Z0-9]+$

This field can be used to separate products. For example, integrators might use this to separate their customers. User can use this ID to filter products when calling Product API.

includeCosts
boolean
Default: true

Determines if costs are added to the report tables.

includeFuelConsumption
boolean
Default: true

Determines if fuel consumption values are added to the report tables.

keyWeatherEvents
Array of strings <RFC 3339 (UTC)> <= 2 items unique [ items <RFC 3339 (UTC) > ]

Timestamps for key weather events to include in the report.

Usage Guidelines:

  • These timestamps will generate weather images in the PDF, including vessel positions at those moments
  • Time range: Weather images can be plotted from 1 year ago up to 7 days in the future

Responses

Request samples

Content type
application/json
{
  • "routes": [
    ],
  • "customerReferenceId": "123456789",
  • "includeCosts": true,
  • "includeFuelConsumption": true,
  • "keyWeatherEvents": [
    ],
  • "voyageInfo": {
    }
}

Response samples

Content type
application/json
{
  • "correlationId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70"
}

Notification API

The Notification API is used to get immediate notifications when product and reports from the Voyage Configuration API have been created.

Product API

The Product API is used to download the products and reports generated by the Voyage Configuration API.