Download OpenAPI specification:Download
By using Voyage configuration API, user can access the voyage optimization services offered by ABB.
This API implements rate limiting to ensure fair usage and optimal performance for all users.
When you approach or exceed the rate limit, you'll receive appropriate HTTP status codes and should implement exponential backoff in your retry logic.
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:
Get token for use in HTTP requests.
| 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 |
| 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 |
{- "access_token": "string",
- "expires_in": 0,
- "token_type": "Bearer",
- "scope": "string",
- "resource": "string"
}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.
Typical combinations used by customers (all can be with basic or detailed route template and with followShortestNavigableRoute parameter set to true or false):
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).
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:
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. |
| 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. |
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.
|
| 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. |
{- "customerReferenceId": "123456789",
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "scheduler": {
- "schedule": "0 0,6,12,18 * * *",
- "activeDays": 60,
- "deactivationDistanceNm": 10
}, - "routeRequest": {
- "routeSourceType": "PreCalculated",
- "routingCorrelationId": "K4w-THf4DoEERsg="
}, - "alternativeOptimizations": [
- {
- "type": "RecommendedSpeed",
- "speed": 10,
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "points": [
- {
- "type": "Feature",
- "properties": {
- "name": "Houston, TX",
- "port": "USHOU-2380"
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- -95.2641144,
- 29.7262421
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}
]
}{- "customerReferenceId": "123456789",
- "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "scheduler": {
- "schedule": "0 0,6,12,18 * * *",
- "remainingActiveDays": 45,
- "deactivationDistanceNm": 10,
- "activatedAt": "2025-10-01T12:00:00Z"
}, - "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
- "routeRequest": {
- "type": "InstructedSpeed",
- "points": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.085,
- 51.96
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "etd": "2020-09-20T19:20:30.45Z",
- "restrictions": {
- "northVertex": 80,
- "southVertex": 80,
- "conditionalAreas": {
- "defaultAreas": [
- "SpeedLimit",
- "EmissionControl"
], - "areaOverrides": [
- {
- "enabled": true,
- "areaId": "nogo-4"
}
], - "customAreas": [
- {
- "type": "Feature",
- "properties": {
- "condition": {
- "type": "NoGo"
}, - "name": "string"
}, - "geometry": {
- "type": "Polygon",
- "coordinates": [
- [
- [
- 112.19238281249999,
- 21.207458730482642
], - [
- 111.302490234375,
- 20.2725032501349
], - [
- 112.08251953125,
- 18.323240460443397
], - [
- 114.3896484375,
- 19.321511226817176
], - [
- 114.840087890625,
- 21.34054846908118
], - [
- 112.19238281249999,
- 21.207458730482642
]
]
]
}
}
]
}, - "weatherLimits": [
- {
- "name": "HurricaneDistance",
- "minimum": 500,
- "action": {
- "actionType": "Warn",
- "warningSeverity": "Moderate"
}
}
]
}, - "vesselParameters": {
- "vesselName": "Sedna Ocean",
- "imo": "8814275",
- "vesselType": "DryBulkCarrier",
- "cargo": {
- "loadCondition": "Loaded",
- "loadState": "Packaged",
- "dangerousCargo": [
- "DangerousGoods"
]
}, - "measurements": {
- "lengthOverall": 100,
- "beam": 20,
- "draft": {
- "aft": 10,
- "fore": 10
}, - "airDraft": 10,
- "grossTonnage": 100000,
- "deadweight": 250000
}, - "fuelCurve": {
- "otherFuelConsumption": 1,
- "values": [
- {
- "speed": 8,
- "fuelUsage": 2.6
}, - {
- "speed": 12,
- "fuelUsage": 9.2
}
]
}, - "rpmCurve": {
- "values": [
- {
- "speed": 0,
- "rpm": 0
}, - {
- "speed": 10,
- "rpm": 1000
}
]
}, - "powerCurve": {
- "values": [
- {
- "speed": 0,
- "maxContinuousRating": 0
}, - {
- "speed": 10,
- "maxContinuousRating": 0.9
}
]
}, - "customModel": {
- "wind": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "speed": {
- "min": 0,
- "max": 60,
- "steps": 7
}
}, - "values": [
- [
- 0,
- 0,
- 0,
- 0,
- 0
], - [
- 0.0432,
- 0.0345,
- 0.0094,
- -0.0143,
- -0.0222
], - [
- 0.1065,
- 0.0926,
- 0.0207,
- -0.0263,
- -0.0267
], - [
- 0.189,
- 0.1623,
- 0.0279,
- -0.0432,
- -0.0394
], - [
- 0.2894,
- 0.2447,
- 0.0322,
- -0.0683,
- -0.0647
], - [
- 0.4064,
- 0.3412,
- 0.0344,
- -0.1105,
- -0.1024
], - [
- 0.5392,
- 0.451,
- 0.032,
- -0.1636,
- -0.1523
]
]
}, - "waves": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "height": {
- "min": 0,
- "max": 12,
- "steps": 7
}, - "period": {
- "min": 4,
- "max": 13,
- "steps": 4
}
}, - "values": [
- [
- [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
]
], - [
- [
- 0.0479,
- 0.0525,
- 0.0692,
- 0.0543
], - [
- 0.071,
- 0.0833,
- 0.0811,
- 0.0467
], - [
- 0.0455,
- 0.0071,
- 0.0018,
- 0.0006
], - [
- 0.0414,
- 0.0412,
- 0.0344,
- 0.0209
], - [
- 0.0164,
- 0.0146,
- 0.0095,
- 0.006
]
], - [
- [
- 0.1915,
- 0.2098,
- 0.2686,
- 0.2086
], - [
- 0.2837,
- 0.33,
- 0.3079,
- 0.1792
], - [
- 0.1776,
- 0.0282,
- 0.0071,
- 0.0025
], - [
- 0.1673,
- 0.165,
- 0.1347,
- 0.0817
], - [
- 0.0659,
- 0.0587,
- 0.038,
- 0.0239
]
], - [
- [
- 0.4296,
- 0.4702,
- 0.5705,
- 0.4375
], - [
- 0.6361,
- 0.7235,
- 0.6317,
- 0.3764
], - [
- 0.3829,
- 0.063,
- 0.0159,
- 0.0056
], - [
- 0.3828,
- 0.371,
- 0.2924,
- 0.1772
], - [
- 0.1501,
- 0.1333,
- 0.0854,
- 0.0536
]
], - [
- [
- 0.7596,
- 0.8268,
- 0.9285,
- 0.7069
], - [
- 1.1225,
- 1.2095,
- 0.9901,
- 0.6103
], - [
- 0.641,
- 0.1106,
- 0.0281,
- 0.01
], - [
- 0.6971,
- 0.6562,
- 0.4927,
- 0.2998
], - [
- 0.2715,
- 0.2401,
- 0.1519,
- 0.0946
]
], - [
- [
- 1.1743,
- 1.2526,
- 1.273,
- 0.9841
], - [
- 1.7332,
- 1.7534,
- 1.3065,
- 0.8556
], - [
- 0.9284,
- 0.1701,
- 0.0438,
- 0.0156
], - [
- 1.1237,
- 1.0103,
- 0.7191,
- 0.4401
], - [
- 0.4343,
- 0.3817,
- 0.2371,
- 0.1466
]
], - [
- [
- 1.6624,
- 1.7345,
- 1.6187,
- 1.2345
], - [
- 2.4958,
- 2.525,
- 1.6609,
- 1.0909
], - [
- 1.2156,
- 0.2403,
- 0.0627,
- 0.0224
], - [
- 1.6664,
- 1.3838,
- 0.9546,
- 0.5905
], - [
- 0.6435,
- 0.5612,
- 0.341,
- 0.2088
]
]
]
}, - "speedLossCurve": {
- "values": [
- {
- "resistance": 1.3788,
- "speedFraction": 0.05
}, - {
- "resistance": 1.3606,
- "speedFraction": 0.1
}, - {
- "resistance": 1.3315,
- "speedFraction": 0.15
}, - {
- "resistance": 1.2934,
- "speedFraction": 0.2
}, - {
- "resistance": 1.248,
- "speedFraction": 0.25
}, - {
- "resistance": 1.1948,
- "speedFraction": 0.3
}, - {
- "resistance": 1.1359,
- "speedFraction": 0.35
}, - {
- "resistance": 1.0702,
- "speedFraction": 0.4
}, - {
- "resistance": 1.0009,
- "speedFraction": 0.45
}, - {
- "resistance": 0.9265,
- "speedFraction": 0.5
}, - {
- "resistance": 0.8492,
- "speedFraction": 0.55
}, - {
- "resistance": 0.7683,
- "speedFraction": 0.6
}, - {
- "resistance": 0.6858,
- "speedFraction": 0.65
}, - {
- "resistance": 0.6001,
- "speedFraction": 0.7
}, - {
- "resistance": 0.5114,
- "speedFraction": 0.75
}, - {
- "resistance": 0.4194,
- "speedFraction": 0.8
}, - {
- "resistance": 0.3249,
- "speedFraction": 0.85
}, - {
- "resistance": 0.2248,
- "speedFraction": 0.9
}, - {
- "resistance": 0.1164,
- "speedFraction": 0.95
}, - {
- "resistance": -0.0009,
- "speedFraction": 1
}
]
}
}, - "safetyMargins": {
- "port": 0,
- "starboard": 0,
- "underKeel": 0,
- "air": 0,
- "aft": 0,
- "forward": 0
}, - "cii": {
- "yearToDateDistance": 10,
- "yearToDateCo2Emissions": 0
}
}, - "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "weatherSource": {
- "type": "Forecast",
- "version": "2020-09-20T00:00:00Z"
}, - "voyage": {
- "ports": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 8.577543,
- 53.535847
]
}
}, - {
- "portId": "NLRTM-2745"
}
]
}, - "routeSourceType": "OnDemand",
- "speed": 10,
- "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}, - "alternativeOptimizations": [
- {
- "type": "RecommendedSpeed",
- "speed": 10,
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "points": [
- {
- "type": "Feature",
- "properties": {
- "name": "Houston, TX",
- "port": "USHOU-2380"
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- -95.2641144,
- 29.7262421
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}
], - "version": 1,
- "status": "Active",
- "createdAt": "2025-10-01T12:00:00Z",
- "updatedAt": "2025-10-01T12:00:00Z"
}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.
| routeCalculationScheduleId required | string Unique identifier of the route calculation schedule. |
| revision | string Route calculation schedule config revision. |
| 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. |
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.
|
| 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. |
{- "customerReferenceId": "123456789",
- "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "scheduler": {
- "schedule": "0 0,6,12,18 * * *",
- "remainingActiveDays": 45,
- "deactivationDistanceNm": 10,
- "activatedAt": "2025-10-01T12:00:00Z"
}, - "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
- "routeRequest": {
- "type": "InstructedSpeed",
- "points": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.085,
- 51.96
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "etd": "2020-09-20T19:20:30.45Z",
- "restrictions": {
- "northVertex": 80,
- "southVertex": 80,
- "conditionalAreas": {
- "defaultAreas": [
- "SpeedLimit",
- "EmissionControl"
], - "areaOverrides": [
- {
- "enabled": true,
- "areaId": "nogo-4"
}
], - "customAreas": [
- {
- "type": "Feature",
- "properties": {
- "condition": {
- "type": "NoGo"
}, - "name": "string"
}, - "geometry": {
- "type": "Polygon",
- "coordinates": [
- [
- [
- 112.19238281249999,
- 21.207458730482642
], - [
- 111.302490234375,
- 20.2725032501349
], - [
- 112.08251953125,
- 18.323240460443397
], - [
- 114.3896484375,
- 19.321511226817176
], - [
- 114.840087890625,
- 21.34054846908118
], - [
- 112.19238281249999,
- 21.207458730482642
]
]
]
}
}
]
}, - "weatherLimits": [
- {
- "name": "HurricaneDistance",
- "minimum": 500,
- "action": {
- "actionType": "Warn",
- "warningSeverity": "Moderate"
}
}
]
}, - "vesselParameters": {
- "vesselName": "Sedna Ocean",
- "imo": "8814275",
- "vesselType": "DryBulkCarrier",
- "cargo": {
- "loadCondition": "Loaded",
- "loadState": "Packaged",
- "dangerousCargo": [
- "DangerousGoods"
]
}, - "measurements": {
- "lengthOverall": 100,
- "beam": 20,
- "draft": {
- "aft": 10,
- "fore": 10
}, - "airDraft": 10,
- "grossTonnage": 100000,
- "deadweight": 250000
}, - "fuelCurve": {
- "otherFuelConsumption": 1,
- "values": [
- {
- "speed": 8,
- "fuelUsage": 2.6
}, - {
- "speed": 12,
- "fuelUsage": 9.2
}
]
}, - "rpmCurve": {
- "values": [
- {
- "speed": 0,
- "rpm": 0
}, - {
- "speed": 10,
- "rpm": 1000
}
]
}, - "powerCurve": {
- "values": [
- {
- "speed": 0,
- "maxContinuousRating": 0
}, - {
- "speed": 10,
- "maxContinuousRating": 0.9
}
]
}, - "customModel": {
- "wind": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "speed": {
- "min": 0,
- "max": 60,
- "steps": 7
}
}, - "values": [
- [
- 0,
- 0,
- 0,
- 0,
- 0
], - [
- 0.0432,
- 0.0345,
- 0.0094,
- -0.0143,
- -0.0222
], - [
- 0.1065,
- 0.0926,
- 0.0207,
- -0.0263,
- -0.0267
], - [
- 0.189,
- 0.1623,
- 0.0279,
- -0.0432,
- -0.0394
], - [
- 0.2894,
- 0.2447,
- 0.0322,
- -0.0683,
- -0.0647
], - [
- 0.4064,
- 0.3412,
- 0.0344,
- -0.1105,
- -0.1024
], - [
- 0.5392,
- 0.451,
- 0.032,
- -0.1636,
- -0.1523
]
]
}, - "waves": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "height": {
- "min": 0,
- "max": 12,
- "steps": 7
}, - "period": {
- "min": 4,
- "max": 13,
- "steps": 4
}
}, - "values": [
- [
- [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
]
], - [
- [
- 0.0479,
- 0.0525,
- 0.0692,
- 0.0543
], - [
- 0.071,
- 0.0833,
- 0.0811,
- 0.0467
], - [
- 0.0455,
- 0.0071,
- 0.0018,
- 0.0006
], - [
- 0.0414,
- 0.0412,
- 0.0344,
- 0.0209
], - [
- 0.0164,
- 0.0146,
- 0.0095,
- 0.006
]
], - [
- [
- 0.1915,
- 0.2098,
- 0.2686,
- 0.2086
], - [
- 0.2837,
- 0.33,
- 0.3079,
- 0.1792
], - [
- 0.1776,
- 0.0282,
- 0.0071,
- 0.0025
], - [
- 0.1673,
- 0.165,
- 0.1347,
- 0.0817
], - [
- 0.0659,
- 0.0587,
- 0.038,
- 0.0239
]
], - [
- [
- 0.4296,
- 0.4702,
- 0.5705,
- 0.4375
], - [
- 0.6361,
- 0.7235,
- 0.6317,
- 0.3764
], - [
- 0.3829,
- 0.063,
- 0.0159,
- 0.0056
], - [
- 0.3828,
- 0.371,
- 0.2924,
- 0.1772
], - [
- 0.1501,
- 0.1333,
- 0.0854,
- 0.0536
]
], - [
- [
- 0.7596,
- 0.8268,
- 0.9285,
- 0.7069
], - [
- 1.1225,
- 1.2095,
- 0.9901,
- 0.6103
], - [
- 0.641,
- 0.1106,
- 0.0281,
- 0.01
], - [
- 0.6971,
- 0.6562,
- 0.4927,
- 0.2998
], - [
- 0.2715,
- 0.2401,
- 0.1519,
- 0.0946
]
], - [
- [
- 1.1743,
- 1.2526,
- 1.273,
- 0.9841
], - [
- 1.7332,
- 1.7534,
- 1.3065,
- 0.8556
], - [
- 0.9284,
- 0.1701,
- 0.0438,
- 0.0156
], - [
- 1.1237,
- 1.0103,
- 0.7191,
- 0.4401
], - [
- 0.4343,
- 0.3817,
- 0.2371,
- 0.1466
]
], - [
- [
- 1.6624,
- 1.7345,
- 1.6187,
- 1.2345
], - [
- 2.4958,
- 2.525,
- 1.6609,
- 1.0909
], - [
- 1.2156,
- 0.2403,
- 0.0627,
- 0.0224
], - [
- 1.6664,
- 1.3838,
- 0.9546,
- 0.5905
], - [
- 0.6435,
- 0.5612,
- 0.341,
- 0.2088
]
]
]
}, - "speedLossCurve": {
- "values": [
- {
- "resistance": 1.3788,
- "speedFraction": 0.05
}, - {
- "resistance": 1.3606,
- "speedFraction": 0.1
}, - {
- "resistance": 1.3315,
- "speedFraction": 0.15
}, - {
- "resistance": 1.2934,
- "speedFraction": 0.2
}, - {
- "resistance": 1.248,
- "speedFraction": 0.25
}, - {
- "resistance": 1.1948,
- "speedFraction": 0.3
}, - {
- "resistance": 1.1359,
- "speedFraction": 0.35
}, - {
- "resistance": 1.0702,
- "speedFraction": 0.4
}, - {
- "resistance": 1.0009,
- "speedFraction": 0.45
}, - {
- "resistance": 0.9265,
- "speedFraction": 0.5
}, - {
- "resistance": 0.8492,
- "speedFraction": 0.55
}, - {
- "resistance": 0.7683,
- "speedFraction": 0.6
}, - {
- "resistance": 0.6858,
- "speedFraction": 0.65
}, - {
- "resistance": 0.6001,
- "speedFraction": 0.7
}, - {
- "resistance": 0.5114,
- "speedFraction": 0.75
}, - {
- "resistance": 0.4194,
- "speedFraction": 0.8
}, - {
- "resistance": 0.3249,
- "speedFraction": 0.85
}, - {
- "resistance": 0.2248,
- "speedFraction": 0.9
}, - {
- "resistance": 0.1164,
- "speedFraction": 0.95
}, - {
- "resistance": -0.0009,
- "speedFraction": 1
}
]
}
}, - "safetyMargins": {
- "port": 0,
- "starboard": 0,
- "underKeel": 0,
- "air": 0,
- "aft": 0,
- "forward": 0
}, - "cii": {
- "yearToDateDistance": 10,
- "yearToDateCo2Emissions": 0
}
}, - "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "weatherSource": {
- "type": "Forecast",
- "version": "2020-09-20T00:00:00Z"
}, - "voyage": {
- "ports": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 8.577543,
- 53.535847
]
}
}, - {
- "portId": "NLRTM-2745"
}
]
}, - "routeSourceType": "OnDemand",
- "speed": 10,
- "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}, - "alternativeOptimizations": [
- {
- "type": "RecommendedSpeed",
- "speed": 10,
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "points": [
- {
- "type": "Feature",
- "properties": {
- "name": "Houston, TX",
- "port": "USHOU-2380"
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- -95.2641144,
- 29.7262421
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}
], - "version": 1,
- "status": "Active",
- "createdAt": "2025-10-01T12:00:00Z",
- "updatedAt": "2025-10-01T12:00:00Z"
}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.
| routeCalculationScheduleId required | string Unique identifier of the route schedule. |
| 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.
|
| 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. |
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.
|
| 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. |
{- "customerReferenceId": "123456789",
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "scheduler": {
- "schedule": "0 0,6,12,18 * * *",
- "activeDays": 60,
- "deactivationDistanceNm": 10
}, - "routeRequest": {
- "routeSourceType": "PreCalculated",
- "routingCorrelationId": "K4w-THf4DoEERsg="
}, - "alternativeOptimizations": [
- {
- "type": "RecommendedSpeed",
- "speed": 10,
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "points": [
- {
- "type": "Feature",
- "properties": {
- "name": "Houston, TX",
- "port": "USHOU-2380"
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- -95.2641144,
- 29.7262421
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}
], - "status": "Active"
}{- "customerReferenceId": "123456789",
- "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "scheduler": {
- "schedule": "0 0,6,12,18 * * *",
- "remainingActiveDays": 45,
- "deactivationDistanceNm": 10,
- "activatedAt": "2025-10-01T12:00:00Z"
}, - "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
- "routeRequest": {
- "type": "InstructedSpeed",
- "points": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 4.085,
- 51.96
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "etd": "2020-09-20T19:20:30.45Z",
- "restrictions": {
- "northVertex": 80,
- "southVertex": 80,
- "conditionalAreas": {
- "defaultAreas": [
- "SpeedLimit",
- "EmissionControl"
], - "areaOverrides": [
- {
- "enabled": true,
- "areaId": "nogo-4"
}
], - "customAreas": [
- {
- "type": "Feature",
- "properties": {
- "condition": {
- "type": "NoGo"
}, - "name": "string"
}, - "geometry": {
- "type": "Polygon",
- "coordinates": [
- [
- [
- 112.19238281249999,
- 21.207458730482642
], - [
- 111.302490234375,
- 20.2725032501349
], - [
- 112.08251953125,
- 18.323240460443397
], - [
- 114.3896484375,
- 19.321511226817176
], - [
- 114.840087890625,
- 21.34054846908118
], - [
- 112.19238281249999,
- 21.207458730482642
]
]
]
}
}
]
}, - "weatherLimits": [
- {
- "name": "HurricaneDistance",
- "minimum": 500,
- "action": {
- "actionType": "Warn",
- "warningSeverity": "Moderate"
}
}
]
}, - "vesselParameters": {
- "vesselName": "Sedna Ocean",
- "imo": "8814275",
- "vesselType": "DryBulkCarrier",
- "cargo": {
- "loadCondition": "Loaded",
- "loadState": "Packaged",
- "dangerousCargo": [
- "DangerousGoods"
]
}, - "measurements": {
- "lengthOverall": 100,
- "beam": 20,
- "draft": {
- "aft": 10,
- "fore": 10
}, - "airDraft": 10,
- "grossTonnage": 100000,
- "deadweight": 250000
}, - "fuelCurve": {
- "otherFuelConsumption": 1,
- "values": [
- {
- "speed": 8,
- "fuelUsage": 2.6
}, - {
- "speed": 12,
- "fuelUsage": 9.2
}
]
}, - "rpmCurve": {
- "values": [
- {
- "speed": 0,
- "rpm": 0
}, - {
- "speed": 10,
- "rpm": 1000
}
]
}, - "powerCurve": {
- "values": [
- {
- "speed": 0,
- "maxContinuousRating": 0
}, - {
- "speed": 10,
- "maxContinuousRating": 0.9
}
]
}, - "customModel": {
- "wind": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "speed": {
- "min": 0,
- "max": 60,
- "steps": 7
}
}, - "values": [
- [
- 0,
- 0,
- 0,
- 0,
- 0
], - [
- 0.0432,
- 0.0345,
- 0.0094,
- -0.0143,
- -0.0222
], - [
- 0.1065,
- 0.0926,
- 0.0207,
- -0.0263,
- -0.0267
], - [
- 0.189,
- 0.1623,
- 0.0279,
- -0.0432,
- -0.0394
], - [
- 0.2894,
- 0.2447,
- 0.0322,
- -0.0683,
- -0.0647
], - [
- 0.4064,
- 0.3412,
- 0.0344,
- -0.1105,
- -0.1024
], - [
- 0.5392,
- 0.451,
- 0.032,
- -0.1636,
- -0.1523
]
]
}, - "waves": {
- "domains": {
- "angle": {
- "min": 0,
- "max": 180,
- "steps": 5
}, - "height": {
- "min": 0,
- "max": 12,
- "steps": 7
}, - "period": {
- "min": 4,
- "max": 13,
- "steps": 4
}
}, - "values": [
- [
- [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
], - [
- 0,
- 0,
- 0,
- 0
]
], - [
- [
- 0.0479,
- 0.0525,
- 0.0692,
- 0.0543
], - [
- 0.071,
- 0.0833,
- 0.0811,
- 0.0467
], - [
- 0.0455,
- 0.0071,
- 0.0018,
- 0.0006
], - [
- 0.0414,
- 0.0412,
- 0.0344,
- 0.0209
], - [
- 0.0164,
- 0.0146,
- 0.0095,
- 0.006
]
], - [
- [
- 0.1915,
- 0.2098,
- 0.2686,
- 0.2086
], - [
- 0.2837,
- 0.33,
- 0.3079,
- 0.1792
], - [
- 0.1776,
- 0.0282,
- 0.0071,
- 0.0025
], - [
- 0.1673,
- 0.165,
- 0.1347,
- 0.0817
], - [
- 0.0659,
- 0.0587,
- 0.038,
- 0.0239
]
], - [
- [
- 0.4296,
- 0.4702,
- 0.5705,
- 0.4375
], - [
- 0.6361,
- 0.7235,
- 0.6317,
- 0.3764
], - [
- 0.3829,
- 0.063,
- 0.0159,
- 0.0056
], - [
- 0.3828,
- 0.371,
- 0.2924,
- 0.1772
], - [
- 0.1501,
- 0.1333,
- 0.0854,
- 0.0536
]
], - [
- [
- 0.7596,
- 0.8268,
- 0.9285,
- 0.7069
], - [
- 1.1225,
- 1.2095,
- 0.9901,
- 0.6103
], - [
- 0.641,
- 0.1106,
- 0.0281,
- 0.01
], - [
- 0.6971,
- 0.6562,
- 0.4927,
- 0.2998
], - [
- 0.2715,
- 0.2401,
- 0.1519,
- 0.0946
]
], - [
- [
- 1.1743,
- 1.2526,
- 1.273,
- 0.9841
], - [
- 1.7332,
- 1.7534,
- 1.3065,
- 0.8556
], - [
- 0.9284,
- 0.1701,
- 0.0438,
- 0.0156
], - [
- 1.1237,
- 1.0103,
- 0.7191,
- 0.4401
], - [
- 0.4343,
- 0.3817,
- 0.2371,
- 0.1466
]
], - [
- [
- 1.6624,
- 1.7345,
- 1.6187,
- 1.2345
], - [
- 2.4958,
- 2.525,
- 1.6609,
- 1.0909
], - [
- 1.2156,
- 0.2403,
- 0.0627,
- 0.0224
], - [
- 1.6664,
- 1.3838,
- 0.9546,
- 0.5905
], - [
- 0.6435,
- 0.5612,
- 0.341,
- 0.2088
]
]
]
}, - "speedLossCurve": {
- "values": [
- {
- "resistance": 1.3788,
- "speedFraction": 0.05
}, - {
- "resistance": 1.3606,
- "speedFraction": 0.1
}, - {
- "resistance": 1.3315,
- "speedFraction": 0.15
}, - {
- "resistance": 1.2934,
- "speedFraction": 0.2
}, - {
- "resistance": 1.248,
- "speedFraction": 0.25
}, - {
- "resistance": 1.1948,
- "speedFraction": 0.3
}, - {
- "resistance": 1.1359,
- "speedFraction": 0.35
}, - {
- "resistance": 1.0702,
- "speedFraction": 0.4
}, - {
- "resistance": 1.0009,
- "speedFraction": 0.45
}, - {
- "resistance": 0.9265,
- "speedFraction": 0.5
}, - {
- "resistance": 0.8492,
- "speedFraction": 0.55
}, - {
- "resistance": 0.7683,
- "speedFraction": 0.6
}, - {
- "resistance": 0.6858,
- "speedFraction": 0.65
}, - {
- "resistance": 0.6001,
- "speedFraction": 0.7
}, - {
- "resistance": 0.5114,
- "speedFraction": 0.75
}, - {
- "resistance": 0.4194,
- "speedFraction": 0.8
}, - {
- "resistance": 0.3249,
- "speedFraction": 0.85
}, - {
- "resistance": 0.2248,
- "speedFraction": 0.9
}, - {
- "resistance": 0.1164,
- "speedFraction": 0.95
}, - {
- "resistance": -0.0009,
- "speedFraction": 1
}
]
}
}, - "safetyMargins": {
- "port": 0,
- "starboard": 0,
- "underKeel": 0,
- "air": 0,
- "aft": 0,
- "forward": 0
}, - "cii": {
- "yearToDateDistance": 10,
- "yearToDateCo2Emissions": 0
}
}, - "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "weatherSource": {
- "type": "Forecast",
- "version": "2020-09-20T00:00:00Z"
}, - "voyage": {
- "ports": [
- {
- "type": "Feature",
- "properties": null,
- "geometry": {
- "type": "Point",
- "coordinates": [
- 8.577543,
- 53.535847
]
}
}, - {
- "portId": "NLRTM-2745"
}
]
}, - "routeSourceType": "OnDemand",
- "speed": 10,
- "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}, - "alternativeOptimizations": [
- {
- "type": "RecommendedSpeed",
- "speed": 10,
- "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "points": [
- {
- "type": "Feature",
- "properties": {
- "name": "Houston, TX",
- "port": "USHOU-2380"
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- -95.2641144,
- 29.7262421
]
}
}, - {
- "type": "Feature",
- "properties": {
- "name": "Rotterdam (NLRTM)",
- "port": "NLRTM-2745",
- "forceRhumbLine": false
}, - "geometry": {
- "type": "Point",
- "coordinates": [
- 4.0710449,
- 51.9672394
]
}
}
], - "optimizationType": "Fuel",
- "costs": {
- "vesselCosts": 25000,
- "fuelCosts": 700,
- "ecaFuelCosts": 800,
- "otherFuelCosts": 700
}, - "config": {
- "hoursBetweenRouteWaypoints": 6,
- "avoidCoastalAreas": true,
- "followShortestNavigableRoute": false
}
}
], - "version": 1,
- "status": "Active",
- "createdAt": "2025-10-01T12:00:00Z",
- "updatedAt": "2025-10-01T12:00:00Z"
}Allows clients to retrieve multiple Route Calculation Schedules using the provided filters.
| imo | number Example: imo=1234567 The vessel's imo associated to the route calculation. Required if |
| 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 |
| 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 |
| status | string Default: "Active" Enum: "All" "Active" "Inactive" Example: status=Active Filter route calculation schedule by status:
|
| 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. |
| 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. |
| 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.
|
| 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. |
[- {
- "routeCalculationScheduleId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70",
- "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}, - "optimizationInfo": {
- "id": "opt-123",
- "name": "Fuel Efficient Route",
- "comments": "Optimized for minimal fuel consumption"
}, - "etd": "2024-02-10T15:30:00Z",
- "customerReferenceId": "123456789",
- "version": 1,
- "status": "Active",
- "createdAt": "2025-10-01T12:00:00Z",
- "updatedAt": "2025-10-01T12:00:00Z"
}
]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:
vesselParameters.vesselName) in the route calculation requestvesselParameters.cargo.loadCondition) in the route calculation requestFailed (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 failedImage Generation Requirements:
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:
Note: Additional display guidelines for specific fields (such as voyage name, comments, etc.) are documented in the individual field descriptions.
Allows clients to create a new route advice report.
| 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.
| ||||||||||||
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:
|
{- "routingCorrelationId": "K4w-THf4DoEERsg=",
- "customerReferenceId": "123456789",
- "routeSourceType": "PreCalculated",
- "updateType": "RouteAdvice",
- "previousReportCorrelationId": "055ee7a9-b24c-4f09-9be3-6d09291a6814",
- "voyageInfo": {
- "id": "ABC-123",
- "name": "San Antonio - Recalada, via Cape Horn",
- "comments": "Route advice unchanged. No significant changes in the weather forecast."
}
}{- "correlationId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70"
}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:
vesselParameters.vesselName) in the route calculation requestvesselParameters.cargo.loadCondition) in the route calculation requestFailed (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 failedImage Generation Requirements:
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:
Note: Additional display guidelines for specific fields (such as comments, route names, etc.) are documented in the individual field descriptions.
Allows clients to create a new route comparison report.
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:
|
{- "routes": [
- {
- "routingCorrelationId": "K4w-THf4DoEERsg=",
- "name": "Route 1"
}, - {
- "routingCorrelationId": "K4w-THf4DoEERsf=",
- "name": "Route 2"
}
], - "customerReferenceId": "123456789",
- "includeCosts": true,
- "includeFuelConsumption": true,
- "keyWeatherEvents": [
- "2020-09-20T19:00:00.00Z"
], - "voyageInfo": {
- "id": "ABC-123",
- "name": "Same Route",
- "comments": "This is the comparison of route advices for your voyage. We wish you a good voyage!"
}
}{- "correlationId": "b7f43e1a-076a-4e46-a6a8-04ff46f11d70"
}The Notification API is used to get immediate notifications when product and reports from the Voyage Configuration API have been created.
The Product API is used to download the products and reports generated by the Voyage Configuration API.