Vessel Performance Model API (1.274)

Download OpenAPI specification:

Introduction

Using this API, customers can submit vessel performance models to ABB. These models can then be used to perform route calculations for the specific vessel via the ABB Vessel Routing API.

Async Processing

Performance model creation and updates are processed asynchronously. When a model is submitted, it is queued for processing. Use the Get performance model status endpoint to track progress.

Model Lifecycle

  1. Submit — Upload model configuration and STW data via POST or PUT
  2. Pending — Model is queued for processing (returned immediately as 202 Accepted). Processing typically completes within a minute but may take longer for large STW files.
  3. Active — Processing succeeded; model is available for usage (e.g., Vessel Routing API), search, download, and testing
  4. Rejected — Processing failed; check the status endpoint for the rejection reason, then use the Update performance model endpoint with the existing modelId to correct and resubmit
  5. Inactive — A previously active revision that has been superseded by a newer active revision

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"
}

Performance Models

A performance model defines how a vessel behaves under varying speeds and environmental conditions. It consists of:

  • sicw — Speed in Calm Water: the vessel's reference speed range under ideal conditions, used as the primary axis. Ideally this should cover calm water speed range upto 100% MCR.
  • domains — Ordered environmental condition dimensions (wind, waves, swell). See list of available domains below.
  • calmWaterPerformanceCurves — ME consumption, MCR & RPM curves as function of SICW (indicating calm water performance of the vessel).
  • otherFuelConsumption — Should capture all non ME related consumption that are dependent on time or speed. User can provide fixed consumption value per day or speed dependent consumption (for example to account for high aux engine consumption at low engine load in scenarios when the auxiliary blower kicks in to deliver fresh air to the main engine).
  • stw (file) — Speed Through Water values across the full SICW × domain grid.
  • metadata — Vessel identification and physical characteristics (IMO number, name, dimensions, draft).

Model Assumptions

  • Wind speed domain represents true wind speed (not relative to the vessel)
  • Wind and wave directions are true ship-fixed directions relative to heading: coming from bow, 180° coming from stern.
  • Ocean current effects are applied after STW lookup to calculate Speed Over Ground (SOG).
  • It is currently not possible to include the impact of water density and sea temperature in the performance models. These weather domains are not available for now.

Multiple Models per Vessel

A single IMO number can have multiple active performance models (e.g., for various drafts). In the future, SPOS captains will be able to fetch all active models for a vessel and select the one to use for their voyage. To avoid confusion, ensure that each vessel has only a small number of active models and that each model has a clear, human-readable description so captains can easily identify the right one.

SICW Configuration

You can provide a model for just 1 SICW which is sufficient for doing instructed speed routing (the SICW in route request should be the same as SICW for which the model is provided), or models with an SICW range which is needed for variable speed / optimal speed routing (SICW range in route request should be a subset of the SICW range for which the model is provided).

Recommended range: Vessel's set speed at 10% MCR to the vessel's set speed at 100% MCR. Atleast cover the full SICW range in which the crew is willing to operate in.

Examples:

  • Sample range 1: { min: 0, max: 14, step: 1 } → 15 steps (0, 1, 2, …, 14 kn)
  • Sample range 2: { min: 0, max: 20, step: 2 } → 11 steps (0, 2, 4, …, 20 kn)
  • Sample range 3: { min: 14, max: 14, step: 0 } → 1 step (14 kn only)

Other Fuel Consumption Configuration

Single-SICW models (sicw.min = sicw.max): provide exactly 1 entry where speedFrom = speedTo = sicw.min = sicw.max.

Multi-SICW models: provide one or more contiguous entries that together span the full SICW range:

  • The first entry's speedFrom must equal sicw.min
  • The last entry's speedTo must equal sicw.max
  • Consecutive entries must share the same boundary — each entry's speedTo must equal the next entry's speedFrom (when sorted by speedFrom)

Validation rules:

  • speedFrom must be ≥ sicw.min
  • speedTo must be ≤ sicw.max
  • Multi-SICW: speedFrom must be < speedTo
  • Multi-SICW: entries must cover the full SICW range — first speedFrom = sicw.min, last speedTo = sicw.max
  • Multi-SICW: entries must be contiguous — each entry's speedTo must equal the next entry's speedFrom (sorted by speedFrom)
  • Single-SICW: speedFrom must be = speedTo, and array must have exactly 1 entry

✅Example 1 — Single-SICW (sicw.min = sicw.max = 14):

{ speedFrom: 14, speedTo: 14, otherFuel: 2.0 }

✅Example 2 — Multi-SICW, two contiguous entries (sicw.min = 1, sicw.max = 2):

{ speedFrom: 1, speedTo: 1.5, otherFuel: 2.5 }
{ speedFrom: 1.5, speedTo: 2, otherFuel: 3.0 }

❌ Example 3 — Invalid: gap between entries (sicw.min = 1, sicw.max = 2):

{ speedFrom: 1, speedTo: 1.5, otherFuel: 2.5 }
{ speedFrom: 1.6, speedTo: 2, otherFuel: 3.0 }

Domains Reference

WIND_SPEED

True wind speed domain - the speed of wind at 10 m above sea level, observed from a fixed reference frame (not relative to the vessel).

Recommended range: 0-60 kn in steps of 10 kn

Note for WASP vessels: Finer steps may be needed

WIND_WAVE_DIRECTION

Wind and wind-sea direction domain - ship-fixed directions, coming from and according to the nautical convention (0° = head wind/waves).

Recommended range: 0-180° in steps of 30°

Due to port/starboard symmetry assumed by the model, directions only span 0°-180°.

Note for WASP vessels: Finer direction steps may improve accuracy.

WAVE_HEIGHT

Significant wave height of wind sea domain, in meters.

Recommended range: 0-12 m in steps of 1 m

WAVE_PERIOD

Mean absolute wave period of wind sea (Tmm10) domain, in seconds.

This model requires Tm-1,0 (also written as Tmm10, T_{m-1,0}, or the "wave energy period").

Recommended range: 4-16 s in steps of 3 s (giving 5 points: 4, 7, 10, 13, 16 s)

SWELL_HEIGHT

Significant wave height of swell domain, in meters.

Recommended range: 0-12 m in steps of 1 m

SWELL_DIRECTION

Swell direction domain - ship-fixed directions, coming from and according to the nautical convention (0° = head wind/waves).

Recommended range: 0-180° in steps of 30°

SWELL_PERIOD

Mean absolute wave period of swell (Tmm10) domain, in seconds.

Use the mean wave energy period Tm-1,0 (also written as Tmm10).

Recommended range: 4-16 s in steps of 3 s

TOTAL_WAVE_HEIGHT

Total significant wave height domain - the combined significant height of all wave components (wind waves + swell), representing the overall sea state.

Recommended range: 0-12 m in steps of 1 m

TOTAL_WAVE_DIRECTION

Total wave direction domain - the dominant direction of the combined wave field (wind waves + swell), relative to vessel heading. means waves from the bow; 180° means from the stern.

Recommended range: 0-180° in steps of 30°

Note
Recommended ranges and steps are guidelines based on research done by ABB for typical vessels. Adjust them to minimize error between your original model results and the results from the testing endpoint. Changing ranges and steps for weather domains can significantly increase STW file size — ensure it stays under 150 MB.

STW Configuration

STW is a plain text file with one numeric value per line, mapping each sicw × domains grid point to the resulting Speed Through Water.

The total number of required STW values is the product of all step counts:

total = sicw_steps × domain[0]_steps × domain[1]_steps × ... × domain[N]_steps

Step count example:

  • sicw: min=8, max=16, step=4 → 3 steps
  • domains[0] (WIND_SPEED): min=0, max=60, step=30 → 3 steps
  • domains[1] (WIND_WAVE_DIRECTION): min=0, max=180, step=90 → 3 steps
  • Total STW values: 3 × 3 × 3 = 27

STW content example (27 lines):

11
11.8
11.6
11.7
11.5
11.3
11.4
11.2
11
13
12.8
12.6
12.7
12.5
12.3
12.4
12.2
12
14
13.8
13.6
13.7
13.5
13.3
13.4
13.2
13
Rule Detail
Range -5 to 50 knots (inclusive)
Decimal places 2 decimal places or fewer recommended. Additional decimals are rounded when the model is used
Empty lines Not allowed — every line must contain a value
Accepted MIME types text/plain or application/octet-stream
Compression Gzip supported — detected automatically
Max values 25,000,000
Max file size 150 MB

Values must follow the nested loop order: sicw (outer) → domains[0] → ... → domains[N] (inner)

Validation errors are grouped by type and reported with line numbers, e.g.: Lines 1-10: Value exceeds maximum (50 knots), Line 15: Invalid speed value 'abc'

Model ID Format

Every model is assigned a unique identifier with the format: {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}

Segment Description Example
IMO 7-digit IMO number 1234567
MeanDraft Mean draft in meters — decimal point replaced by underscore 12_50 (= 12.5 m), 09_00 (= 9.0 m)
WASPStatus Wind-Assisted Ship Propulsion status: E = Enabled, D = Disabled, N = Not Available E
UniqueID Unique identifier 4fc2c963f66afa6b7e2d3c4a5f8e9b0

Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Submit performance model

Submit a new performance model for asynchronous processing by uploading a performance model configuration and STW data file.

The model is uploaded and queued for processing. The response returns immediately with a 202 Accepted status and includes the assigned modelId along with a Pending status.

  • performanceModel: JSON configuration defining vessel reference speed, environmental domains, fuel consumption curves and metadata.
  • stw: Plain text file containing Speed Through Water values.

Important: See the examples for recommended domain combinations. In the examples, stw is shown as a placeholder and must be uploaded as an actual file in the multipart form request.

Use the Get performance model status endpoint to poll for results.

Once processing completes successfully, the model becomes Active and is available for usage (e.g., Vessel Routing API), search, download, and testing. If processing fails, the model status becomes Rejected with a reason describing the failure. Use the Update performance model endpoint with the modelId returned in this response to correct and resubmit.

Authorizations:
(BearerABBIdentity)
Request Body schema: multipart/form-data
required
required
object (CreatePerformanceModel)

Performance model configuration for a vessel, including speed range, environmental domains, performance curves, and metadata.

stw
required
string <binary> (SpeedThruWaterFile)

Plain text file containing Speed Through Water (STW) values mapping each sicw × domains grid point to the resulting vessel speed. One numeric value per line (-5 to 50 kn), max 25,000,000 values, max 150 MB. Gzip compression is supported.

See the STW File Format section in the Performance Models overview for the full file format, value ordering rules, and error examples.

Responses

Request samples

Content type
multipart/form-data
Example
{
  "performanceModel": {
    "sicw": {
      "min": 10,
      "max": 27,
      "step": 1
    },
    "domains": [
      {
        "axis": "WIND_SPEED",
        "min": 0,
        "max": 60,
        "step": 10
      },
      {
        "axis": "WIND_WAVE_DIRECTION",
        "min": 0,
        "max": 180,
        "step": 30
      },
      {
        "axis": "WAVE_HEIGHT",
        "min": 0,
        "max": 12,
        "step": 1
      },
      {
        "axis": "WAVE_PERIOD",
        "min": 4,
        "max": 16,
        "step": 3
      },
      {
        "axis": "SWELL_HEIGHT",
        "min": 0,
        "max": 12,
        "step": 1
      },
      {
        "axis": "SWELL_PERIOD",
        "min": 4,
        "max": 16,
        "step": 3
      },
      {
        "axis": "SWELL_DIRECTION",
        "min": 0,
        "max": 180,
        "step": 30
      }
    ],
    "calmWaterPerformanceCurves": [
      {
        "fuelConsumption": 14.25,
        "mcr": 0.05,
        "rpm": 36.1
      },
      {
        "fuelConsumption": 18.9,
        "mcr": 0.06,
        "rpm": 39.5
      },
      {
        "fuelConsumption": 24.1,
        "mcr": 0.08,
        "rpm": 42.9
      },
      {
        "fuelConsumption": 30.05,
        "mcr": 0.1,
        "rpm": 46.4
      },
      {
        "fuelConsumption": 36.9,
        "mcr": 0.12,
        "rpm": 49.9
      },
      {
        "fuelConsumption": 45,
        "mcr": 0.14,
        "rpm": 53.4
      },
      {
        "fuelConsumption": 54.2,
        "mcr": 0.17,
        "rpm": 57
      },
      {
        "fuelConsumption": 64.8,
        "mcr": 0.2,
        "rpm": 60.6
      },
      {
        "fuelConsumption": 77.1,
        "mcr": 0.24,
        "rpm": 64.3
      },
      {
        "fuelConsumption": 91.4,
        "mcr": 0.28,
        "rpm": 68.1
      },
      {
        "fuelConsumption": 108.2,
        "mcr": 0.33,
        "rpm": 72
      },
      {
        "fuelConsumption": 127.6,
        "mcr": 0.39,
        "rpm": 76
      },
      {
        "fuelConsumption": 150.1,
        "mcr": 0.46,
        "rpm": 80.1
      },
      {
        "fuelConsumption": 176.3,
        "mcr": 0.54,
        "rpm": 84.3
      },
      {
        "fuelConsumption": 206.7,
        "mcr": 0.63,
        "rpm": 88.6
      },
      {
        "fuelConsumption": 241.8,
        "mcr": 0.74,
        "rpm": 93.1
      },
      {
        "fuelConsumption": 283.4,
        "mcr": 0.86,
        "rpm": 97.8
      },
      {
        "fuelConsumption": 332.2,
        "mcr": 1,
        "rpm": 102.7
      }
    ],
    "otherFuelConsumption": [
      {
        "speedFrom": 8,
        "speedTo": 9,
        "otherFuel": 4.3
      },
      {
        "speedFrom": 9,
        "speedTo": 10,
        "otherFuel": 4.22
      },
      {
        "speedFrom": 10,
        "speedTo": 11,
        "otherFuel": 4.15
      },
      {
        "speedFrom": 11,
        "speedTo": 12,
        "otherFuel": 4.08
      },
      {
        "speedFrom": 12,
        "speedTo": 13,
        "otherFuel": 4
      },
      {
        "speedFrom": 13,
        "speedTo": 14,
        "otherFuel": 3.93
      },
      {
        "speedFrom": 14,
        "speedTo": 15,
        "otherFuel": 3.86
      },
      {
        "speedFrom": 15,
        "speedTo": 16,
        "otherFuel": 3.79
      },
      {
        "speedFrom": 16,
        "speedTo": 17,
        "otherFuel": 3.72
      },
      {
        "speedFrom": 17,
        "speedTo": 18,
        "otherFuel": 3.65
      },
      {
        "speedFrom": 18,
        "speedTo": 19,
        "otherFuel": 3.58
      },
      {
        "speedFrom": 19,
        "speedTo": 20,
        "otherFuel": 3.5
      },
      {
        "speedFrom": 20,
        "speedTo": 21,
        "otherFuel": 3.43
      },
      {
        "speedFrom": 21,
        "speedTo": 22,
        "otherFuel": 3.36
      },
      {
        "speedFrom": 22,
        "speedTo": 23,
        "otherFuel": 3.29
      },
      {
        "speedFrom": 23,
        "speedTo": 24,
        "otherFuel": 3.22
      },
      {
        "speedFrom": 24,
        "speedTo": 25,
        "otherFuel": 3.15
      },
      {
        "speedFrom": 25,
        "speedTo": 26,
        "otherFuel": 3.08
      },
      {
        "speedFrom": 26,
        "speedTo": 27,
        "otherFuel": 3
      }
    ],
    "metadata": {
      "imo": "1234567",
      "vesselType": "ContainerVessel",
      "lengthOverall": 345,
      "beam": 45.6,
      "draft": {
        "fore": 9,
        "aft": 10
      },
      "waspStatus": "Disabled",
      "description": "Container - 3450x456x95dm"
    }
  },
  "stw": "<upload stw.txt file>"
}

Response samples

Content type
application/json
{
  • "modelId": "1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0",
  • "status": "Pending"
}

Search performance models (metadata)

Search and retrieve performance model metadata.

This endpoint only returns models that have been successfully processed. Models that are still being processed (Pending) or that were rejected (Rejected) are excluded from search results. Use the Get performance model status endpoint to track models in those states.

Provide either imo to search by vessel, or modelId to check a specific model, but not both.

Authorizations:
(BearerABBIdentity)
query Parameters
imo
string <IMO> (Imo)
Example: imo=8814275

The IMO of the vessel.

modelId
string (ModelId)
Example: modelId=1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

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

Filter models by their revision status:

  • Active: The latest successfully processed revision of each performance model. When a new revision is processed successfully, it automatically becomes active and is used by default for downloads and testing. 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 for download and testing by specifying the revision number, but are not used by default.

  • All: Return models in all revision states (both Active and Inactive).

Note: This filter only applies to successfully processed models. Models with Pending or Rejected status are not included in search results. Use the Get performance model status endpoint instead.

Responses

Response Schema: application/json
Array
imo
required
string <IMO> (Imo)

The IMO of the vessel.

vesselType
required
string (VesselType)
Enum: "DryBulkCarrier" "CombinationCarrier" "RoRoVehiclesCarrier" "ChemicalTanker" "ContainerVessel" "CruiseVessel" "RoRoCargoShip" "RoRoPassengerShip" "ReeferShip" "GeneralCargoShip" "DredgingVessel" "LNGTanker" "LPGTanker" "OilProductsTanker" "CrudeOilTanker" "OtherTanker" "Tug" "Yacht"

The specific type of the vessel

lengthOverall
required
number <meters (m)> [ 0 .. 450 ]

The overall length of the vessel.

beam
required
number <meters (m)> [ 0 .. 75 ]

The maximum width of the vessel.

required
object

The draft of the vessel for which the model is made.

waspStatus
required
string
Enum: "Enabled" "Disabled" "NotAvailable"

WASP (Wind Assisted Ship Propulsion) status:

  • Enabled: The model is created with WASP enabled
  • Disabled: The model is created with WASP disabled
  • NotAvailable: The model is created for a vessel that does not have any WASP installation
description
required
string (ModelDescription) <= 200 characters

Human readable description about the model.

customerReferenceId
string (CustomerReferenceId) <= 20 characters

Customer's internal reference ID for this performance model. This field can be used to organize and categorize models internally. For example, integrators might use this to separate models by their customers, or to group models by project or vessel fleet.

modelId
string (ModelId)

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

createdAt
string <RFC3339 (UTC)>

Timestamp when the performance model was first created.

revision
number

The revision of the performance model.

updatedAt
string <RFC3339 (UTC)>

Timestamp when the performance model was last updated.

status
string
Enum: "Active" "Inactive"

The revision status of the performance model:

  • Active: The latest successfully processed revision, used by default for downloads and testing
  • Inactive: A previous revision that has been superseded by a newer active revision

Response samples

Content type
application/json
[
  • {
    }
]

Update performance model

Submit an updated performance model for asynchronous processing by uploading new configuration and STW data files.

The update is queued for processing. The response returns immediately with a 202 Accepted status. While the new submission is being processed, the currently active revision remains available for download, search, and testing.

Use the Get performance model status endpoint to poll for results.

  • performanceModel: Updated JSON configuration with vessel reference speed, environmental domains, fuel consumption curves, and metadata
  • stw: Updated plain text file containing Speed Through Water values

Optional: The user can include a metadata object with a description field in the performance model configuration to update the model description. If not provided, the description from the previous revision is retained.

Note: The user cannot submit an update while a previous submission is still Pending. Wait for the current submission to complete (become Active or Rejected) before submitting a new update.

The user can use this endpoint to resubmit a rejected model after fixing the identified issues.

Authorizations:
(BearerABBIdentity)
path Parameters
modelId
required
string (ModelId)
Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

Request Body schema: multipart/form-data
required
required
object (UpdatePerformanceModel)

Performance model configuration for a vessel, including speed range, environmental domains, performance curves, and metadata.

stw
required
string <binary> (SpeedThruWaterFile)

Plain text file containing Speed Through Water (STW) values mapping each sicw × domains grid point to the resulting vessel speed. One numeric value per line (-5 to 50 kn), max 25,000,000 values, max 150 MB. Gzip compression is supported.

See the STW File Format section in the Performance Models overview for the full file format, value ordering rules, and error examples.

Responses

Response samples

Content type
application/json
{
  • "modelId": "1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0",
  • "status": "Pending"
}

Get performance model details

Retrieve details about a specific performance model, including its domains, fuel consumption curves and metadata.

Returns the active (latest) revision by default. Use the revision query parameter to retrieve a specific revision.

Note: This endpoint only returns successfully processed revisions. If the model has no completed revisions yet (status is Pending), a 404 response is returned. Use the Get performance model status endpoint to check progress.

Authorizations:
(BearerABBIdentity)
path Parameters
modelId
required
string (ModelId)
Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

query Parameters
revision
number
Example: revision=1

Specific revision to retrieve. If not provided, retrieves the active (latest) revision.

Responses

Response Schema: application/json
required
object (Sicw)

Speed in Calm Water (SICW) — the vessel's reference speed range under ideal sea conditions, in knots. This is the primary axis of the performance model.

(max - min) must be exactly divisible by step.

For SICW configuration modes (single value vs. range), recommended ranges, and examples, see the SICW Configuration and Routing Modes section in the Performance Models overview.

required
Array of objects unique

Ordered list of environmental condition domains that, together with sicw, define the dimensions of the stw file. An empty array ([]) is valid — the model will only contain calm water performance data indexed by SICW.

For available domain types, recommended ranges, step count formulas, STW size impact, ordering rules, and out-of-domain behavior — see the Domains Reference and STW File Format sections in the Performance Models overview.

required
Array of objects (CalmWaterPerformanceCurves) non-empty

Fuel consumption curve indexed by SICW step. Each data point represents a single operational state at a specific vessel speed (SICW), including fuel consumption (t/day), engine load (MCR %) and engine speed (RPM).

Array length must equal the number of SICW steps: 1 for single-value SICW (min = max), or (max - min) / step + 1 for multi-value SICW.

Monotonicity: fuelConsumption, mcr, and rpm must be non-decreasing as SICW increases. Each value must be greater than or equal to the previous entry. As the vessel speed increases, it requires more engine power, resulting in higher fuel consumption, MCR, and RPM.

Array of objects or null (OtherFuelConsumption) non-empty

Optional non-ME fuel consumption that depends on time or vessel speed. If provided, must contain at least 1 entry.

For validation rules, single-SICW vs. multi-SICW behaviour, and examples, see the Other Fuel Consumption section in the Performance Models overview.

stwDownloadUrl
string <uri>

Presigned URL to download the performance model STW file.

The URL is valid for a limited time (1 hour). Use this URL directly in a browser or HTTP client to download the file. No additional authentication headers are required when using the presigned URL.

object (GetMetadataResponse)

Metadata for a vessel performance model

Response samples

Content type
application/json
{
  • "sicw": {
    },
  • "domains": [
    ],
  • "calmWaterPerformanceCurves": [
    ],
  • "otherFuelConsumption": [
    ],
  • "metadata": {
    }
}

Delete performance model

This endpoint can be used by users to keep the number of active models in check per vessel and to delete any irrelevant or wrong or outdated models.

Note: Only models with Active status can be deleted. Models that are Pending or Rejected cannot be deleted. Wait for processing to complete or resubmit before deleting.

Authorizations:
(BearerABBIdentity)
path Parameters
modelId
required
string (ModelId)
Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

Responses

Response samples

Content type
application/json
null

Get performance model status

Retrieve the current processing status of a performance model.

Use this endpoint to track the progress of submitted models.

The response shape varies depending on the status:

Status Description
Pending Model is queued for processing. Poll this endpoint to check for completion.
Active Processing succeeded. The model is available for usage (e.g., Vessel Routing API), search, download, and testing.
Rejected Processing failed. Fix the issues and resubmit.

Polling Recommendations

  • Poll every 5-10 seconds after submission
  • Processing typically completes within 30 seconds but may take longer for large STW files
Authorizations:
(BearerABBIdentity)
path Parameters
modelId
required
string (ModelId)
Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

Responses

Response Schema: application/json
One of
modelId
required
string (ModelId)

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

status
required
string
Value: "Pending"

Response samples

Content type
application/json
Example
{
  • "modelId": "1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0",
  • "status": "Pending"
}

Performance Model Testing

Test performance model

This endpoint can be used to test if ABB's interpretation of the models is aligned with user's interpretation of the models. It can also be used to assess the if there is any undesired behaviour introduced due to translation of model format from user's internal format to ABB required format and due to the used step sizes and min and max values of various domains.

This allows the user to:

  • Verify the uploaded model files produce expected results
  • Compare performance against known voyage data
  • Iterate on model parameters before production use

Note: Only successfully processed revisions can be tested. If the model is still Pending, this endpoint returns 404. Use the Get performance model status endpoint to check progress.

Authorizations:
(BearerABBIdentity)
path Parameters
modelId
required
string (ModelId)
Example: 1234567-12_50-E-4fc2c963f66afa6b7e2d3c4a5f8e9b0

Unique model identifier in the format {IMO}-{MeanDraft}-{WASPStatus}-{UniqueID}. See the Model ID Format section in the Performance Models overview.

query Parameters
revision
number
Example: revision=1

Specific revision of the model to test. If not provided, tests the active revision.

Request Body schema: application/json
required
inputType
string
Enum: "MCR" "RPM" "SICW"

Model test input type. Must match the provided input data.

inputValue
number

Value corresponding to the specified inputType (MCR, RPM, or SICW).

currentSpeed
number <knots (kn)> >= 0

Current speed in knots. Used to calculate current effect (cx). Together with currentDirection, it is used to calculate Speed Over Ground (SOG) from Speed Through Water (STW). If not provided, current speed is assumed to be 0.

currentDirection
number <degrees> [ 0 .. 180 ]

Current direction in degrees relative to vessel heading. means current from the bow; 180° means current from the stern. Together with currentSpeed, it is used to calculate Speed Over Ground (SOG) from Speed Through Water (STW). If not provided, current direction is assumed to be 0.

Array of objects (Conditions) unique

Environmental domain conditions to apply during the model test. The submitted conditions must exactly match the configured domains in the target performance model revision: same set of axes, one value per axis, with no missing or extra axes. If the model has an empty domains array, submit an empty conditions array. Invalid, duplicate, missing, or extra condition axes are rejected.

Responses

Response Schema: application/json
sicw
number <knots (kn)>

Speed in Calm Water (SICW)

rpm
number <revolutions per minute (rpm)>

Propeller RPM.

mcr
number <% maximum continuous rating in decimal format>

MCR as a decimal fraction. Example: 0.85 = 85% MCR. Must be between 0 and 1.0.

object

Results calculated in calm-water conditions (no environmental domain effects).

object

Results calculated with the submitted environmental domain conditions applied.

object

Performance model configuration for a vessel, including speed range, environmental domains, performance curves, and metadata.

Request samples

Content type
application/json
{
  • "inputType": "MCR",
  • "inputValue": 0,
  • "currentSpeed": 1.5,
  • "currentDirection": 45,
  • "conditions": [
    ]
}

Response samples

Content type
application/json
{
  • "sicw": 15.2,
  • "rpm": 0,
  • "mcr": 0.25,
  • "resultUnderCalmWater": {
    },
  • "resultsUnderSpecifiedConditions": {
    },
  • "performanceModel": {
    }
}