openapi: 3.0.3 info: title: Veson Bunker Insights version: '1.0' x-logo: url: data:image/png;base64,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 backgroundColor: '#162944' altText: Veson Bunker Insights description: "Retrieve current and historical bunker price estimates for a global network of ports, across multiple fuel types (HFO, LFO, MDO) and quantities.\n\nBunker price estimates are accompanied by port-level confidence intervals and probability ranges, giving you a calibrated view of both the expected price and the degree of certainty behind it. Retrieve forward-looking price estimates derived from crude oil futures curves and scenario analysis that models port-specific bunker costs at any hypothetical crude price or quantity.\n\n## Authentication\n\nThe API uses Bearer tokens to authenticate requests. For access, please contact your Veson Account Manager or log a ticket at [help.veson.com](http://help.veson.com)\n\n- `Authorization: Bearer `\n\n## Available operations\n\n- [`bunkerInsightsGetEstimates`](#operation/bunkerInsightsGetEstimates) — bunkerInsightsGetEstimates\n- [`bunkerInsightsGetFuturesEstimates`](#operation/bunkerInsightsGetFuturesEstimates) — bunkerInsightsGetFuturesEstimates\n- [`bunkerInsightsGetTimeseriesEstimates`](#operation/bunkerInsightsGetTimeseriesEstimates) — bunkerInsightsGetTimeseriesEstimates\n- [`bunkerInsightsGetScenarioEstimates`](#operation/bunkerInsightsGetScenarioEstimates) — bunkerInsightsGetScenarioEstimates\n\n## When to use\n\nBunker Insights data can be used for voyage planning and validation scenarios, such as:\_\n\n- Produce accurate voyage P&L estimates by incorporating port-level fuel price predictions into cost calculations before fixing\_\n\n- Compare and validate supplier quotes against a data driven benchmark to strengthen negotiations\_\n\n- Quantify fuel cost exposure and model bunker costs across crude price scenarios to support hedging and budget planning\_\n\n- Identify seasonal pricing patterns at ports on regular trade lanes for voyage and supply chain cost planning\n\n## Key concepts\n\n`ports` - the port location that the bunker estimate applies to.\\\n`portUnlocodes` - the official UN/LOCODE of the port location that the bunker estimate applies to.\\\n`fuelType` - the type of fuel for which estimates are requested.\\\n`quantityLevel` - quantity level of fuel (low, average or high), set at different pre-defined quantities depending on the fuelType (100/500/1000 MT for HFO and LFO, 25/100/300 for MDO).\\\n`riskLevel` - float (0.1–0.9) controlling the width of the confidence band returned with each estimate. Higher values produce wider ranges covering more extreme scenarios.\n### Concept tables\n\n- [quantity_level](./concepts/quantity-level.html)\n- [risk_level](./concepts/risk-level.html)\n- [fuel_types](./concepts/fuel-types.html)\n- [ports_unlocode](./concepts/ports-unlocode.html)\n\n## Rate Limits and Errors\n\n### Data latency\n\nBunker price predictions are published daily before 23:59 UTC.\\\nPrices published at 23:59 UTC reflect market knowledge up to 23:00 UTC and are valid\\\nfor the following day. The `predictionGeneratedOn` and `predictionDate` fields in each\\\nresponse indicate the underlying observation date and the date the prediction is valid\\\nfor, respectively.\n\n**Pagination**\n\nOnly `bunkerPricesGetTimeseriesEstimates` is paginated. Control via the\\\n`page` and `pageSize` inputs; navigate using `totalRecords`, `totalPages`, `currentPage`,\\\n`pageSize`, `hasNext`, and `hasPrevious` in the response. The other operations return\\\nthe full filtered result set in a single response.\n\n**On-demand predictions**\n\n`bunkerPricesGetScenarioEstimates` exposes a deep-learning\\\nmodel queryable across a wide range of market scenarios (custom `quantity`,\\\n`crudePriceScenario`, `riskLevel`, port selection). The latest model available on the\\\nsupplied `date` is loaded and cached; loading a fresh model incurs higher latency on\\\nthe first call, after which cached calls are significantly faster.\n\n**Rate Limits**\n\nAccess to the Bunker Insights API is governed by a monthly credit allocation, determined by your subscription tier. Credits are consumed per API response and monitored continuously.\n\nWhen your monthly allocation is exhausted, subsequent requests will be blocked and the API will return the following error:\n\n`API credit limit exceeded. Please contact your Veson account manager to discuss your usage or upgrade your subscription.`\n\n### HTTP Status Code Summary\n\n| 200 | OK | Everything worked as expected. |\n| --- | --- | --- |\n| 400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |\n| 401 | Unauthorized | No valid API key provided. |\n| 402 | Request Failed | The parameters were valid but the request failed. |\n| 403 | Forbidden | The API key doesn’t have permissions to perform the request. |\n| 404 | Not Found | The requested resource doesn’t exist. |\n| 409 | Conflict | The request conflicts with another request (perhaps due to using the same idempotent key). |\n| 424 | External Dependency Failed | The request couldn’t be completed due to a failure in a dependency external to Veson. |\n| 429 | Too Many Requests | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. |\n| 500, 502, 503, 504 | Server Errors | Something went wrong on Veson's end. (These are rare.) |\n" servers: - url: https://shared-dev-noam.dev.veson.cloud/api/connect/graphql description: Development environment - url: https://emea.veslink.com/api/connect/graphql description: Production environment security: - BearerAuth: [] VesonTenantId: [] tags: - name: Veson Bunker Insights description: |- Retrieve current and historical bunker price estimates for a global network of ports, across multiple fuel types (HFO, LFO, MDO) and quantities. Bunker price estimates are accompanied by port-level confidence intervals and probability ranges, giving you a calibrated view of both the expected price and the degree of certainty behind it. Retrieve forward-looking price estimates derived from crude oil futures curves and scenario analysis that models port-specific bunker costs at any hypothetical crude price or quantity. paths: /bunkerInsightsGetEstimates: post: operationId: bunkerInsightsGetEstimates summary: bunkerInsightsGetEstimates description: |- **What this request does:** Asks for today's price estimate for LFO at Singapore, for a typical mid-range (500 MT) stem size at a medium confidence level (0.5). This is the most common starting point - a user wants to know what they should expect to pay at a specific port on a specific date. **What the response shows:** The model estimates LFO at Singapore will cost **$813.38/MT** on 28 May 2026, based on a 500 MT stem. The price range runs from $764.58 to $845.92/MT, reflecting market uncertainty at a medium risk setting. Current market conditions are adding around $5.43/MT of sensitivity, meaning prices are slightly elevated relative to the recent trend. The model assigns a 62% probability that the actual price will come in below this estimate, suggesting a slight lean toward upside risk. Singapore is its own reference hub, so no hub adjustment is applied. ### GraphQL form ```graphql query BunkerInsightsGetEstimates { bunkerInsightsGetEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] riskLevel: "0.5" quantityLevel: "Average" }) } ``` tags: - Veson Bunker Insights x-codeSamples: - lang: graphql label: GraphQL source: |- query BunkerInsightsGetEstimates { bunkerInsightsGetEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] riskLevel: "0.5" quantityLevel: "Average" }) } - lang: shell label: cURL source: |- curl -X POST 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql' \ -H 'Authorization: Bearer ' \ -H 'veson-tenant-id: ' \ -H 'Content-Type: application/json' \ --data-binary @- <<'JSON' { "query": "query BunkerInsightsGetEstimates {\n bunkerInsightsGetEstimates(input: {\n date: \"2026-05-28\"\n fuelType: \"LFO\"\n ports: [\n \"Singapore\"\n ]\n riskLevel: \"0.5\"\n quantityLevel: \"Average\"\n })\n}", "variables": {} } JSON - lang: javascript label: JavaScript source: |- const query = `query BunkerInsightsGetEstimates { bunkerInsightsGetEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] riskLevel: "0.5" quantityLevel: "Average" }) }`; const response = await fetch('https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'veson-tenant-id': tenantId, 'Content-Type': 'application/json', }, body: JSON.stringify({ query }), }); const { data, errors } = await response.json(); - lang: python label: Python source: |- import requests query = """ query BunkerInsightsGetEstimates { bunkerInsightsGetEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] riskLevel: "0.5" quantityLevel: "Average" }) } """ response = requests.post( 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', headers={ 'Authorization': f'Bearer {token}', 'veson-tenant-id': tenant_id, 'Content-Type': 'application/json', }, json={'query': query}, ) data = response.json() requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetEstimatesInput' examples: bunkerPricesGetEstimates: summary: Asks for today's price estimate for LFO at Singapore, for a typical mid-range (500 MT) stem size at a medium confidence level (0.5). This is the most common starting point - a user wants to know what they should expect to pay at a specific port on a specific date. value: query: 'query GetEstimates($input: BunkerInsightsGetEstimatesInput!) { bunkerInsightsGetEstimates(input: $input) }' variables: input: date: '2026-05-28' fuelType: LFO ports: - Singapore riskLevel: '0.5' quantityLevel: Average responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetEstimatesOutput' examples: bunkerPricesGetEstimates: summary: Asks for today's price estimate for LFO at Singapore, for a typical mid-range (500 MT) stem size at a medium confidence level (0.5). This is the most common starting point - a user wants to know what they should expect to pay at a specific port on a specific date. value: data: bunkerInsightsGetEstimates: estimateGeneratedOn: '2026-05-27' estimateDate: '2026-05-28' data: - port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false quantityMT: 500 referenceBunkeringHub: SINGAPORE estimateUSDperMT: 806.77 sensitivityToMarketConditionsUSDperMT: 6.55 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 782.57 highPriceEstimateUSDperMT: 863.24 latitude: 1.2476 longitude: 103.8362 /bunkerInsightsGetFuturesEstimates: post: operationId: bunkerInsightsGetFuturesEstimates summary: bunkerInsightsGetFuturesEstimates description: |- **What this request does:** Asks for a forward price scenario estimate for LFO at Singapore for the 6th nearest futures contract month - in this case, October 2026. This is used for longer-range planning: a user wants to understand where LFO prices are likely to sit several months ahead, based on crude oil futures curves. The `contract` parameter steps monthly from the nearest expiry, so contract 6 looks roughly five months out from the request date. **What the response shows:** The model estimates Singapore LFO will cost **$832.72/MT** for delivery in October 2026. This is slightly higher than the current spot estimate ($813.38/MT from GetEstimates), reflecting the crude futures curve's forward shape at this point in time. The probability split (62% under, 38% over) indicates the model's directional view on whether the actual price will come in above or below this level. Singapore was matched directly with no AI inference required. ### GraphQL form ```graphql query BunkerInsightsGetFuturesEstimates { bunkerInsightsGetFuturesEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] contract: 6 }) } ``` tags: - Veson Bunker Insights x-codeSamples: - lang: graphql label: GraphQL source: |- query BunkerInsightsGetFuturesEstimates { bunkerInsightsGetFuturesEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] contract: 6 }) } - lang: shell label: cURL source: |- curl -X POST 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql' \ -H 'Authorization: Bearer ' \ -H 'veson-tenant-id: ' \ -H 'Content-Type: application/json' \ --data-binary @- <<'JSON' { "query": "query BunkerInsightsGetFuturesEstimates {\n bunkerInsightsGetFuturesEstimates(input: {\n date: \"2026-05-28\"\n fuelType: \"LFO\"\n ports: [\n \"Singapore\"\n ]\n contract: 6\n })\n}", "variables": {} } JSON - lang: javascript label: JavaScript source: |- const query = `query BunkerInsightsGetFuturesEstimates { bunkerInsightsGetFuturesEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] contract: 6 }) }`; const response = await fetch('https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'veson-tenant-id': tenantId, 'Content-Type': 'application/json', }, body: JSON.stringify({ query }), }); const { data, errors } = await response.json(); - lang: python label: Python source: |- import requests query = """ query BunkerInsightsGetFuturesEstimates { bunkerInsightsGetFuturesEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] contract: 6 }) } """ response = requests.post( 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', headers={ 'Authorization': f'Bearer {token}', 'veson-tenant-id': tenant_id, 'Content-Type': 'application/json', }, json={'query': query}, ) data = response.json() requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetFuturesEstimatesInput' examples: default: summary: Auto-generated from introspected types value: query: 'query GetFutures($input: BunkerInsightsGetFuturesEstimatesInput!) { bunkerInsightsGetFuturesEstimates(input: $input) }' variables: input: date: '2026-05-28' fuelType: LFO ports: - Singapore contract: 6 responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetFuturesEstimatesOutput' examples: default: summary: Auto-generated from introspected types value: data: bunkerInsightsGetFuturesEstimates: estimateGeneratedOn: '2026-05-27' estimateDate: '2026-05-28' data: - port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false futuresEstimateUSDperMT: 791.87 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 futuresEstimateMonth: December 2026 latitude: 1.2476 longitude: 103.8362 /bunkerInsightsGetTimeseriesEstimates: post: operationId: bunkerInsightsGetTimeseriesEstimates summary: bunkerInsightsGetTimeseriesEstimates description: |- **What this request does:** Asks for LFO price estimates across all major bunkering hubs for a three-day window (26–28 May 2026), at a medium confidence level. This is used to track how prices have been moving across the global hub network over time — useful for identifying trends, comparing ports, and building price history into planning or reporting workflows. **What the response shows:** The response returns 57 records — 19 hubs × 3 days — giving a day-by-day view of LFO estimates at each hub over the requested period. Each row shows the estimate for that hub on that date, when it was generated, the price range, and how sensitive prices were to recent market conditions. For example, Singapore LFO was estimated at $821.51/MT on 26 May, $822.23/MT on 27 May, and $813.38/MT on 28 May — a slight softening over the period. Higher `sensitivityToMarketConditionsUSDperMT` values (e.g. Long Beach at $15.75 on 28 May) indicate ports where recent crude volatility is having a more pronounced effect on local prices. ### GraphQL form ```graphql query BunkerInsightsGetTimeseriesEstimates { bunkerInsightsGetTimeseriesEstimates(input: { fuelType: "LFO" fromDate: "2026-05-26" toDate: "2026-05-28" riskLevel: "Medium" }) } ``` tags: - Veson Bunker Insights x-codeSamples: - lang: graphql label: GraphQL source: |- query BunkerInsightsGetTimeseriesEstimates { bunkerInsightsGetTimeseriesEstimates(input: { fuelType: "LFO" fromDate: "2026-05-26" toDate: "2026-05-28" riskLevel: "Medium" }) } - lang: shell label: cURL source: |- curl -X POST 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql' \ -H 'Authorization: Bearer ' \ -H 'veson-tenant-id: ' \ -H 'Content-Type: application/json' \ --data-binary @- <<'JSON' { "query": "query BunkerInsightsGetTimeseriesEstimates {\n bunkerInsightsGetTimeseriesEstimates(input: {\n fuelType: \"LFO\"\n fromDate: \"2026-05-26\"\n toDate: \"2026-05-28\"\n riskLevel: \"Medium\"\n })\n}", "variables": {} } JSON - lang: javascript label: JavaScript source: |- const query = `query BunkerInsightsGetTimeseriesEstimates { bunkerInsightsGetTimeseriesEstimates(input: { fuelType: "LFO" fromDate: "2026-05-26" toDate: "2026-05-28" riskLevel: "Medium" }) }`; const response = await fetch('https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'veson-tenant-id': tenantId, 'Content-Type': 'application/json', }, body: JSON.stringify({ query }), }); const { data, errors } = await response.json(); - lang: python label: Python source: |- import requests query = """ query BunkerInsightsGetTimeseriesEstimates { bunkerInsightsGetTimeseriesEstimates(input: { fuelType: "LFO" fromDate: "2026-05-26" toDate: "2026-05-28" riskLevel: "Medium" }) } """ response = requests.post( 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', headers={ 'Authorization': f'Bearer {token}', 'veson-tenant-id': tenant_id, 'Content-Type': 'application/json', }, json={'query': query}, ) data = response.json() requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetTimeseriesEstimatesInput' examples: default: summary: Auto-generated from introspected types value: query: 'query GetTimeseries($input: BunkerInsightsGetTimeseriesEstimatesInput!) { bunkerInsightsGetTimeseriesEstimates(input: $input) }' variables: input: fuelType: LFO fromDate: '2026-05-26' toDate: '2026-05-28' riskLevel: Medium responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetTimeseriesEstimatesOutput' examples: default: summary: Auto-generated from introspected types value: data: bunkerInsightsGetTimeseriesEstimates: totalRecords: 54 totalPages: 1 currentPage: 1 pageSize: 1000 hasNext: false hasPrevious: false data: - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: NEW ORLEANS portUnlocode: USMSY aiInferredUnlocode: false estimateUSDperMT: 825.45 sensitivityToMarketConditionsUSDperMT: 1.92 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 800.69 highPriceEstimateUSDperMT: 883.23 latitude: 30.0554 longitude: -90.0748 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: PANAMA CANAL portUnlocode: PAPCN aiInferredUnlocode: false estimateUSDperMT: 869.17 sensitivityToMarketConditionsUSDperMT: 6.06 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 843.09 highPriceEstimateUSDperMT: 930.01 latitude: 9.3669 longitude: -79.7971 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ROTTERDAM portUnlocode: NLRTM aiInferredUnlocode: false estimateUSDperMT: 735.21 sensitivityToMarketConditionsUSDperMT: 6.85 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 713.15 highPriceEstimateUSDperMT: 786.67 latitude: 52.1294 longitude: 4.276 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: MALTA (COUNTRY) portUnlocode: MTMLA aiInferredUnlocode: true estimateUSDperMT: 757.39 sensitivityToMarketConditionsUSDperMT: 4.92 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 734.67 highPriceEstimateUSDperMT: 810.41 latitude: 35.9182 longitude: 14.5196 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SKAW portUnlocode: DKSKG aiInferredUnlocode: true estimateUSDperMT: 744.37 sensitivityToMarketConditionsUSDperMT: 7.21 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 722.04 highPriceEstimateUSDperMT: 796.48 latitude: 57.7667 longitude: 10.75 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: YOSU portUnlocode: KRYOS aiInferredUnlocode: false estimateUSDperMT: 906.08 sensitivityToMarketConditionsUSDperMT: 12.75 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 878.9 highPriceEstimateUSDperMT: 969.51 latitude: 34.7333 longitude: 127.75 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ZHOUSHAN portUnlocode: CNZOS aiInferredUnlocode: false estimateUSDperMT: 818.96 sensitivityToMarketConditionsUSDperMT: 3.42 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 794.39 highPriceEstimateUSDperMT: 876.29 latitude: 30.0833 longitude: 121.95 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false estimateUSDperMT: 814.48 sensitivityToMarketConditionsUSDperMT: 5.73 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 790.05 highPriceEstimateUSDperMT: 871.49 latitude: 1.2476 longitude: 103.8362 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LONG BEACH portUnlocode: USLGB aiInferredUnlocode: false estimateUSDperMT: 993.41 sensitivityToMarketConditionsUSDperMT: 5.04 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 963.61 highPriceEstimateUSDperMT: 1062.95 latitude: 33.6457 longitude: -118.0178 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: AMSTERDAM portUnlocode: NLAMS aiInferredUnlocode: false estimateUSDperMT: 739.39 sensitivityToMarketConditionsUSDperMT: 6.2 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 717.21 highPriceEstimateUSDperMT: 791.15 latitude: 52.5145 longitude: 4.5807 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HOUSTON portUnlocode: USHOU aiInferredUnlocode: false estimateUSDperMT: 860.31 sensitivityToMarketConditionsUSDperMT: 5.64 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 834.5 highPriceEstimateUSDperMT: 920.53 latitude: 29.7104 longitude: -95.0462 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HONG KONG portUnlocode: HKHKG aiInferredUnlocode: false estimateUSDperMT: 808.02 sensitivityToMarketConditionsUSDperMT: 3.85 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 783.78 highPriceEstimateUSDperMT: 864.58 latitude: 22.2964 longitude: 114.1729 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: GIBRALTAR portUnlocode: GIGIB aiInferredUnlocode: false estimateUSDperMT: 748.73 sensitivityToMarketConditionsUSDperMT: 5.58 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 726.27 highPriceEstimateUSDperMT: 801.14 latitude: 35.95 longitude: -5.7667 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: FUJAIRAH portUnlocode: AEFJR aiInferredUnlocode: false estimateUSDperMT: 842.56 sensitivityToMarketConditionsUSDperMT: 11.13 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 817.28 highPriceEstimateUSDperMT: 901.54 latitude: 25.1658 longitude: 56.3828 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BUSAN portUnlocode: KRPUS aiInferredUnlocode: false estimateUSDperMT: 910.75 sensitivityToMarketConditionsUSDperMT: 13.76 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 883.43 highPriceEstimateUSDperMT: 974.5 latitude: 35.1 longitude: 129.0667 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BOSPORUS portUnlocode: TRIST aiInferredUnlocode: true estimateUSDperMT: 824.45 sensitivityToMarketConditionsUSDperMT: 6.36 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 799.72 highPriceEstimateUSDperMT: 882.16 latitude: 41.0167 longitude: 29 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BALBOA portUnlocode: PABLB aiInferredUnlocode: false estimateUSDperMT: 872.91 sensitivityToMarketConditionsUSDperMT: 5.82 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 846.72 highPriceEstimateUSDperMT: 934.01 latitude: 8.9591 longitude: -79.5476 - estimateDate: '2026-05-26' estimateGeneratedOn: '2026-05-25' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LAS PALMAS portUnlocode: ESLPA aiInferredUnlocode: false estimateUSDperMT: 773.32 sensitivityToMarketConditionsUSDperMT: 3.24 probabilityOfUnderEstimationPct: 51 probabilityOfOverEstimationPct: 49 lowPriceEstimateUSDperMT: 750.12 highPriceEstimateUSDperMT: 827.45 latitude: 28.1384 longitude: -15.3966 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: NEW ORLEANS portUnlocode: USMSY aiInferredUnlocode: false estimateUSDperMT: 827.15 sensitivityToMarketConditionsUSDperMT: 2.21 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 802.34 highPriceEstimateUSDperMT: 885.05 latitude: 30.0554 longitude: -90.0748 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: PANAMA CANAL portUnlocode: PAPCN aiInferredUnlocode: false estimateUSDperMT: 858.97 sensitivityToMarketConditionsUSDperMT: 1.86 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 833.2 highPriceEstimateUSDperMT: 919.1 latitude: 9.3669 longitude: -79.7971 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ZHOUSHAN portUnlocode: CNZOS aiInferredUnlocode: false estimateUSDperMT: 803.04 sensitivityToMarketConditionsUSDperMT: 10.24 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 778.95 highPriceEstimateUSDperMT: 859.25 latitude: 30.0833 longitude: 121.95 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: YOSU portUnlocode: KRYOS aiInferredUnlocode: false estimateUSDperMT: 886.22 sensitivityToMarketConditionsUSDperMT: 9.92 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 859.63 highPriceEstimateUSDperMT: 948.26 latitude: 34.7333 longitude: 127.75 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false estimateUSDperMT: 810.13 sensitivityToMarketConditionsUSDperMT: 4.71 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 785.83 highPriceEstimateUSDperMT: 866.84 latitude: 1.2476 longitude: 103.8362 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SKAW portUnlocode: DKSKG aiInferredUnlocode: true estimateUSDperMT: 736.16 sensitivityToMarketConditionsUSDperMT: 9.04 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 714.08 highPriceEstimateUSDperMT: 787.69 latitude: 57.7667 longitude: 10.75 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: MALTA (COUNTRY) portUnlocode: MTMLA aiInferredUnlocode: true estimateUSDperMT: 788.08 sensitivityToMarketConditionsUSDperMT: 6.19 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 764.44 highPriceEstimateUSDperMT: 843.25 latitude: 35.9182 longitude: 14.5196 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ROTTERDAM portUnlocode: NLRTM aiInferredUnlocode: false estimateUSDperMT: 737.29 sensitivityToMarketConditionsUSDperMT: 8.86 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 715.17 highPriceEstimateUSDperMT: 788.9 latitude: 52.1294 longitude: 4.276 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LONG BEACH portUnlocode: USLGB aiInferredUnlocode: false estimateUSDperMT: 958.26 sensitivityToMarketConditionsUSDperMT: 1.67 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 929.51 highPriceEstimateUSDperMT: 1025.34 latitude: 33.6457 longitude: -118.0178 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: FUJAIRAH portUnlocode: AEFJR aiInferredUnlocode: false estimateUSDperMT: 856.83 sensitivityToMarketConditionsUSDperMT: 3.75 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 831.13 highPriceEstimateUSDperMT: 916.81 latitude: 25.1658 longitude: 56.3828 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HOUSTON portUnlocode: USHOU aiInferredUnlocode: false estimateUSDperMT: 844.84 sensitivityToMarketConditionsUSDperMT: 0.65 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 819.49 highPriceEstimateUSDperMT: 903.98 latitude: 29.7104 longitude: -95.0462 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HONG KONG portUnlocode: HKHKG aiInferredUnlocode: false estimateUSDperMT: 820.46 sensitivityToMarketConditionsUSDperMT: 7.17 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 795.85 highPriceEstimateUSDperMT: 877.89 latitude: 22.2964 longitude: 114.1729 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: GIBRALTAR portUnlocode: GIGIB aiInferredUnlocode: false estimateUSDperMT: 752.09 sensitivityToMarketConditionsUSDperMT: 8.13 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 729.53 highPriceEstimateUSDperMT: 804.74 latitude: 35.95 longitude: -5.7667 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BUSAN portUnlocode: KRPUS aiInferredUnlocode: false estimateUSDperMT: 887.74 sensitivityToMarketConditionsUSDperMT: 10.02 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 861.11 highPriceEstimateUSDperMT: 949.88 latitude: 35.1 longitude: 129.0667 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BOSPORUS portUnlocode: TRIST aiInferredUnlocode: true estimateUSDperMT: 823.36 sensitivityToMarketConditionsUSDperMT: 6.33 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 798.66 highPriceEstimateUSDperMT: 881 latitude: 41.0167 longitude: 29 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BALBOA portUnlocode: PABLB aiInferredUnlocode: false estimateUSDperMT: 860.48 sensitivityToMarketConditionsUSDperMT: 1.9 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 834.67 highPriceEstimateUSDperMT: 920.71 latitude: 8.9591 longitude: -79.5476 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: AMSTERDAM portUnlocode: NLAMS aiInferredUnlocode: false estimateUSDperMT: 739.6 sensitivityToMarketConditionsUSDperMT: 7.9 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 717.41 highPriceEstimateUSDperMT: 791.37 latitude: 52.5145 longitude: 4.5807 - estimateDate: '2026-05-27' estimateGeneratedOn: '2026-05-26' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LAS PALMAS portUnlocode: ESLPA aiInferredUnlocode: false estimateUSDperMT: 775.61 sensitivityToMarketConditionsUSDperMT: 5.1 probabilityOfUnderEstimationPct: 55 probabilityOfOverEstimationPct: 45 lowPriceEstimateUSDperMT: 752.34 highPriceEstimateUSDperMT: 829.9 latitude: 28.1384 longitude: -15.3966 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ZHOUSHAN portUnlocode: CNZOS aiInferredUnlocode: false estimateUSDperMT: 800.9 sensitivityToMarketConditionsUSDperMT: 8.44 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 776.87 highPriceEstimateUSDperMT: 856.96 latitude: 30.0833 longitude: 121.95 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: YOSU portUnlocode: KRYOS aiInferredUnlocode: false estimateUSDperMT: 879.23 sensitivityToMarketConditionsUSDperMT: 12.2 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 852.85 highPriceEstimateUSDperMT: 940.78 latitude: 34.7333 longitude: 127.75 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SKAW portUnlocode: DKSKG aiInferredUnlocode: true estimateUSDperMT: 745.16 sensitivityToMarketConditionsUSDperMT: 6.79 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 722.81 highPriceEstimateUSDperMT: 797.32 latitude: 57.7667 longitude: 10.75 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false estimateUSDperMT: 806.77 sensitivityToMarketConditionsUSDperMT: 6.55 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 782.57 highPriceEstimateUSDperMT: 863.24 latitude: 1.2476 longitude: 103.8362 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: PANAMA CANAL portUnlocode: PAPCN aiInferredUnlocode: false estimateUSDperMT: 846.07 sensitivityToMarketConditionsUSDperMT: 7.49 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 820.69 highPriceEstimateUSDperMT: 905.29 latitude: 9.3669 longitude: -79.7971 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: NEW ORLEANS portUnlocode: USMSY aiInferredUnlocode: false estimateUSDperMT: 812.96 sensitivityToMarketConditionsUSDperMT: 4.79 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 788.57 highPriceEstimateUSDperMT: 869.87 latitude: 30.0554 longitude: -90.0748 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: MALTA (COUNTRY) portUnlocode: MTMLA aiInferredUnlocode: true estimateUSDperMT: 791.05 sensitivityToMarketConditionsUSDperMT: 4.13 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 767.32 highPriceEstimateUSDperMT: 846.42 latitude: 35.9182 longitude: 14.5196 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LONG BEACH portUnlocode: USLGB aiInferredUnlocode: false estimateUSDperMT: 973.66 sensitivityToMarketConditionsUSDperMT: 19.23 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 944.45 highPriceEstimateUSDperMT: 1041.82 latitude: 33.6457 longitude: -118.0178 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: ROTTERDAM portUnlocode: NLRTM aiInferredUnlocode: false estimateUSDperMT: 731.72 sensitivityToMarketConditionsUSDperMT: 7.79 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 709.77 highPriceEstimateUSDperMT: 782.94 latitude: 52.1294 longitude: 4.276 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HOUSTON portUnlocode: USHOU aiInferredUnlocode: false estimateUSDperMT: 847.98 sensitivityToMarketConditionsUSDperMT: 3.68 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 822.54 highPriceEstimateUSDperMT: 907.34 latitude: 29.7104 longitude: -95.0462 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: HONG KONG portUnlocode: HKHKG aiInferredUnlocode: false estimateUSDperMT: 814.36 sensitivityToMarketConditionsUSDperMT: 8.16 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 789.93 highPriceEstimateUSDperMT: 871.37 latitude: 22.2964 longitude: 114.1729 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: GIBRALTAR portUnlocode: GIGIB aiInferredUnlocode: false estimateUSDperMT: 745.92 sensitivityToMarketConditionsUSDperMT: 5.47 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 723.54 highPriceEstimateUSDperMT: 798.13 latitude: 35.95 longitude: -5.7667 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: FUJAIRAH portUnlocode: AEFJR aiInferredUnlocode: false estimateUSDperMT: 874.26 sensitivityToMarketConditionsUSDperMT: 13.29 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 848.03 highPriceEstimateUSDperMT: 935.46 latitude: 25.1658 longitude: 56.3828 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BUSAN portUnlocode: KRPUS aiInferredUnlocode: false estimateUSDperMT: 880.72 sensitivityToMarketConditionsUSDperMT: 12.09 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 854.3 highPriceEstimateUSDperMT: 942.37 latitude: 35.1 longitude: 129.0667 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BOSPORUS portUnlocode: TRIST aiInferredUnlocode: true estimateUSDperMT: 858.53 sensitivityToMarketConditionsUSDperMT: 7.32 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 832.77 highPriceEstimateUSDperMT: 918.63 latitude: 41.0167 longitude: 29 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: BALBOA portUnlocode: PABLB aiInferredUnlocode: false estimateUSDperMT: 849.71 sensitivityToMarketConditionsUSDperMT: 7.93 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 824.22 highPriceEstimateUSDperMT: 909.19 latitude: 8.9591 longitude: -79.5476 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: AMSTERDAM portUnlocode: NLAMS aiInferredUnlocode: false estimateUSDperMT: 736.71 sensitivityToMarketConditionsUSDperMT: 6.96 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 714.61 highPriceEstimateUSDperMT: 788.28 latitude: 52.5145 longitude: 4.5807 - estimateDate: '2026-05-28' estimateGeneratedOn: '2026-05-27' timeseriesAvailableFromUTC: '2026-06-09 04:55:05.353945+00:00' port: LAS PALMAS portUnlocode: ESLPA aiInferredUnlocode: false estimateUSDperMT: 766.25 sensitivityToMarketConditionsUSDperMT: 6.33 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 743.26 highPriceEstimateUSDperMT: 819.89 latitude: 28.1384 longitude: -15.3966 /bunkerInsightsGetScenarioEstimates: post: operationId: bunkerInsightsGetScenarioEstimates summary: bunkerInsightsGetScenarioEstimates description: |- **What this request does:** Asks what LFO would cost at Singapore if crude oil were trading at $75/barrel — regardless of where crude is actually priced today. The user has specified a stem size of 530 MT. This is a "what if" tool: it lets operators model how their bunker costs would change under different crude price assumptions, useful for budget planning, contract negotiations, or stress-testing a voyage P&L. **What the response shows:** Under a $75/barrel crude scenario, the model estimates Singapore LFO at **$896.62/MT** for a 530 MT stem on 29 May 2026. The price range is $842.82–$932.48/MT. The `sensitivityToMarketConditionsUSDperMT` figure of $18.38 is notably higher than in the GetEstimates example ($5.43), reflecting that the $75 crude assumption sits above current market levels and amplifies price sensitivity accordingly. ### GraphQL form ```graphql query BunkerInsightsGetScenarioEstimates { bunkerInsightsGetScenarioEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] crudePriceScenario: 75 quantity: 530 riskLevel: "0.5" }) } ``` tags: - Veson Bunker Insights x-codeSamples: - lang: graphql label: GraphQL source: |- query BunkerInsightsGetScenarioEstimates { bunkerInsightsGetScenarioEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] crudePriceScenario: 75 quantity: 530 riskLevel: "0.5" }) } - lang: shell label: cURL source: |- curl -X POST 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql' \ -H 'Authorization: Bearer ' \ -H 'veson-tenant-id: ' \ -H 'Content-Type: application/json' \ --data-binary @- <<'JSON' { "query": "query BunkerInsightsGetScenarioEstimates {\n bunkerInsightsGetScenarioEstimates(input: {\n date: \"2026-05-28\"\n fuelType: \"LFO\"\n ports: [\n \"Singapore\"\n ]\n crudePriceScenario: 75\n quantity: 530\n riskLevel: \"0.5\"\n })\n}", "variables": {} } JSON - lang: javascript label: JavaScript source: |- const query = `query BunkerInsightsGetScenarioEstimates { bunkerInsightsGetScenarioEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] crudePriceScenario: 75 quantity: 530 riskLevel: "0.5" }) }`; const response = await fetch('https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'veson-tenant-id': tenantId, 'Content-Type': 'application/json', }, body: JSON.stringify({ query }), }); const { data, errors } = await response.json(); - lang: python label: Python source: |- import requests query = """ query BunkerInsightsGetScenarioEstimates { bunkerInsightsGetScenarioEstimates(input: { date: "2026-05-28" fuelType: "LFO" ports: [ "Singapore" ] crudePriceScenario: 75 quantity: 530 riskLevel: "0.5" }) } """ response = requests.post( 'https://shared-dev-noam.dev.veson.cloud/api/connect/graphql', headers={ 'Authorization': f'Bearer {token}', 'veson-tenant-id': tenant_id, 'Content-Type': 'application/json', }, json={'query': query}, ) data = response.json() requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetScenarioEstimatesInput' examples: default: summary: Auto-generated from introspected types value: query: 'query GetScenario($input: BunkerInsightsGetScenarioEstimatesInput!) { bunkerInsightsGetScenarioEstimates(input: $input) }' variables: input: date: '2026-05-28' fuelType: LFO ports: - Singapore crudePriceScenario: 75 quantity: 530 riskLevel: '0.5' responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/BunkerInsightsGetScenarioEstimatesOutput' examples: default: summary: Auto-generated from introspected types value: data: bunkerInsightsGetScenarioEstimates: modelTrainedOn: '2026-05-27' estimateScenarioDate: '2026-05-28' data: - port: SINGAPORE portUnlocode: SGSIN aiInferredUnlocode: false crudePriceScenarioUSDperBarrel: 75 quantityMT: 530 referenceBunkeringHub: SINGAPORE estimateUSDperMT: 787.18 sensitivityToMarketConditionsUSDperMT: 2.46 probabilityOfUnderEstimationPct: 57 probabilityOfOverEstimationPct: 43 lowPriceEstimateUSDperMT: 763.56 highPriceEstimateUSDperMT: 842.28 latitude: 1.2476 longitude: 103.8362 warnings: [] substitutions: [] components: securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer access token from imosx.com. VesonTenantId: type: apiKey in: header name: veson-tenant-id description: Veson tenant identifier the request is scoped to. schemas: BunkerInsightsGetEstimatesInput: type: object required: - fuelType properties: date: type: string format: date-time nullable: true description: |- Target date for the estimate in YYYY-MM-DD format. Must be on or after 2018-01-01. If omitted the model uses its latest available date. fuelType: type: string nullable: true description: Bunker fuel grade to price (e.g. 'HFO', 'LFO', 'MDO'). riskLevel: type: string nullable: true description: |- Confidence quantile encoded as a stringified float between '0.1' and '0.9'. Lower values produce tighter confidence bands. Values with more than one decimal place are rounded to the nearest 0.1. Defaults to '0.5'. ports: type: array items: type: string nullable: true description: |- List of port names. Mutually exclusive with portUnlocodes — provide one or the other. Port names not in the standard port list will not return results. portUnlocodes: type: array items: type: string nullable: true description: |- List of UN/LOCODE port codes. Mutually exclusive with ports — provide one or the other. UN/LOCODEs not in the standard port list will not return results. quantityLevel: $ref: '#/components/schemas/BunkerInsightsQuantityLevelEnum' description: |- Quantity bracket for bulk pricing. The MT bucket varies by fuel type to reflect median stem requests. Defaults to Average when omitted. BunkerInsightsQuantityLevelEnum: type: string description: Quantity level for bunkerInsightsGetEstimates. Defaults to Average when omitted. enum: - Average - High - Low BunkerInsightsGetEstimatesOutput: type: object properties: estimateGeneratedOn: type: string nullable: true description: Date when the model produced this estimate (UTC). estimateDate: type: string nullable: true description: Target date the estimate applies to. data: type: array items: $ref: '#/components/schemas/BunkerInsightsGetEstimatesOutput_Data' description: |- One estimate row per requested port, reflecting the supplied fuel type, date, quantity level, and risk level. BunkerInsightsGetEstimatesOutput_Data: type: object properties: port: type: string nullable: true description: Port name. portUnlocode: type: string nullable: true description: UN/LOCODE for the port. aiInferredUnlocode: type: boolean nullable: true description: |- True if the UN/LOCODE was inferred by AI from a port name rather than supplied directly. quantityMT: type: integer nullable: true description: Bunker quantity (metric tonnes) used by the model for the estimate. referenceBunkeringHub: type: string nullable: true description: Reference bunkering hub used as the price baseline for this port. estimateUSDperMT: type: number format: float nullable: true description: Estimated bunker price in USD per metric tonne. sensitivityToMarketConditionsUSDperMT: type: number format: float nullable: true description: |- Estimated USD/MT change in the estimate due to recent market volatility (both bunker and crude market volatility). probabilityOfUnderEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is lower than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. probabilityOfOverEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is higher than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. lowPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Lower bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. highPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Upper bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. latitude: type: number format: float nullable: true description: Latitude of the port in decimal degrees (WGS84). Positive = north, negative = south. longitude: type: number format: float nullable: true description: Longitude of the port in decimal degrees (WGS84). Positive = east, negative = west. BunkerInsightsGetFuturesEstimatesInput: type: object required: - fuelType - contract properties: date: type: string format: date-time nullable: true description: |- Target date for the estimate in YYYY-MM-DD format. Must be on or after 2018-01-01. If omitted the model uses its latest available date. fuelType: type: string nullable: true description: Bunker fuel grade to price (e.g. 'HFO', 'LFO', 'MDO'). contract: type: integer nullable: true description: |- Futures contract index relative to the requested date (1=nearest expiry month, subsequent values step monthly out to 36). ports: type: array items: type: string nullable: true description: |- List of port names. Mutually exclusive with portUnlocodes — provide one or the other. Port names not in the standard port list will not return results. portUnlocodes: type: array items: type: string nullable: true description: |- List of UN/LOCODE port codes. Mutually exclusive with ports — provide one or the other. UN/LOCODEs not in the standard port list will not return results. BunkerInsightsGetFuturesEstimatesOutput: type: object properties: estimateGeneratedOn: type: string nullable: true description: Date when the model produced this estimate. estimateDate: type: string nullable: true description: Target date the estimate applies to. data: type: array items: $ref: '#/components/schemas/BunkerInsightsGetFuturesEstimatesOutput_Data' description: |- One futures estimate row per requested port, reflecting the supplied fuel type, date, and contract month. BunkerInsightsGetFuturesEstimatesOutput_Data: type: object properties: port: type: string nullable: true description: Port name. portUnlocode: type: string nullable: true description: UN/LOCODE for the port. aiInferredUnlocode: type: boolean nullable: true description: |- True if the UN/LOCODE was inferred by AI from a port name rather than supplied directly. futuresEstimateUSDperMT: type: number format: float nullable: true description: Estimated bunker price in USD per metric tonne for the requested futures contract month. probabilityOfUnderEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is lower than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. probabilityOfOverEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is higher than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. latitude: type: number format: float nullable: true description: Latitude of the port in decimal degrees (WGS84). Positive = north, negative = south. longitude: type: number format: float nullable: true description: Longitude of the port in decimal degrees (WGS84). Positive = east, negative = west. BunkerInsightsGetTimeseriesEstimatesInput: type: object required: - fuelType properties: fromDate: type: string format: date-time nullable: true description: |- Start of the estimate date range in YYYY-MM-DD format (inclusive). Must be on or after 2018-01-01. Defaults to 2018-01-01. toDate: type: string format: date-time nullable: true description: |- End of the estimate date range in YYYY-MM-DD format (inclusive). Must be on or after 2018-01-01 and on or after fromDate. Defaults to today. fuelType: type: string nullable: true description: Bunker fuel grade to price (e.g. 'HFO', 'LFO', 'MDO'). riskLevel: $ref: '#/components/schemas/BunkerInsightsGetTimeseriesEstimatesRiskLevelEnum' description: |- Confidence band; mapped internally to Low=0.1, Medium=0.5, High=0.9. Defaults to Medium when omitted. page: type: integer nullable: true description: 1-based page number for pagination. pageSize: type: integer nullable: true description: Records per page (caps at 10000). BunkerInsightsGetTimeseriesEstimatesRiskLevelEnum: type: string description: |- Risk level for bunkerInsightsGetTimeseriesEstimates; mapped internally to Low=0.1, Medium=0.5, High=0.9. Defaults to Medium when omitted. enum: - High - Low - Medium BunkerInsightsGetTimeseriesEstimatesOutput: type: object properties: totalRecords: type: integer nullable: true description: Total record count across all pages. totalPages: type: integer nullable: true description: Total number of pages across the requested range. currentPage: type: integer nullable: true description: Current page index in this response. pageSize: type: integer nullable: true description: Records per page in this response. hasNext: type: boolean nullable: true description: True if a next page exists after this one. hasPrevious: type: boolean nullable: true description: True if a previous page exists before this one. data: type: array items: $ref: '#/components/schemas/BunkerInsightsGetTimeseriesEstimatesOutput_Data' description: |- One estimate row per port per date within the requested range, reflecting the supplied fuel type, date range, and risk level. BunkerInsightsGetTimeseriesEstimatesOutput_Data: type: object properties: estimateDate: type: string nullable: true description: Date the estimate applies to. estimateGeneratedOn: type: string nullable: true description: Date when this estimate was generated by the model. timeseriesAvailableFromUTC: type: string nullable: true description: UTC timestamp from which this estimate became visible to clients. port: type: string nullable: true description: Port name. portUnlocode: type: string nullable: true description: UN/LOCODE for the port. aiInferredUnlocode: type: boolean nullable: true description: |- True if the UN/LOCODE was inferred by AI from a port name rather than supplied directly. estimateUSDperMT: type: number format: float nullable: true description: Estimated bunker price in USD per metric tonne. sensitivityToMarketConditionsUSDperMT: type: number format: float nullable: true description: |- Estimated USD/MT change in the estimate due to recent market volatility (both bunker and crude market volatility). probabilityOfUnderEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is lower than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. probabilityOfOverEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is higher than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. lowPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Lower bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. highPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Upper bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. latitude: type: number format: float nullable: true description: Latitude of the port in decimal degrees (WGS84). Positive = north, negative = south. longitude: type: number format: float nullable: true description: Longitude of the port in decimal degrees (WGS84). Positive = east, negative = west. BunkerInsightsGetScenarioEstimatesInput: type: object required: - fuelType properties: date: type: string format: date-time nullable: true description: |- Target date for the estimated price in YYYY-MM-DD format. Must be on or after 2018-01-01. If omitted, estimates are produced for today using the latest trained model. fuelType: type: string nullable: true description: Bunker fuel grade to price (e.g. 'HFO', 'LFO', 'MDO'). riskLevel: type: string nullable: true description: |- Confidence quantile encoded as a stringified float between '0.1' and '0.9'. Lower values produce tighter confidence bands. Accepts any in-range value without rounding. Defaults to '0.5'. crudePriceScenario: type: number format: float nullable: true description: |- Hypothetical crude oil price (USD/bbl) used as what-if scenario. If omitted the model uses its default crude scenario. Must be greater than 0 and less than 500 (USD/bbl) ports: type: array items: type: string nullable: true description: |- List of port names. Mutually exclusive with portUnlocodes — provide one or the other. Port names not in the standard port list are resolved by an AI agent; substitutions appear in the response's substitutions array. portUnlocodes: type: array items: type: string nullable: true description: |- List of UN/LOCODE port codes. Mutually exclusive with ports — provide one or the other. UN/LOCODEs not in the standard port list are resolved by an AI agent; substitutions appear in the response's substitutions array. quantity: type: number format: float nullable: true description: |- Bunker quantity override in metric tonnes. Must be greater than 0 and less than 5000. If omitted the model selects a default based on fuel type. BunkerInsightsGetScenarioEstimatesOutput: type: object properties: modelTrainedOn: type: string nullable: true description: Date the underlying model was last trained (UTC). estimateScenarioDate: type: string nullable: true description: Target date of the estimated price. data: type: array items: $ref: '#/components/schemas/BunkerInsightsGetScenarioEstimatesOutput_Data' description: |- One scenario estimate row per requested port, reflecting the supplied fuel type, date, quantity, crude price scenario, and risk level. warnings: type: array items: type: string nullable: true description: |- Free-text warnings from the model. Empty unless the AI agent was triggered to resolve unrecognized ports or portUnlocodes. substitutions: type: array items: $ref: '#/components/schemas/BunkerInsightsGetScenarioEstimatesOutput_Substitution' description: |- Port substitutions applied by the AI agent. Populated only when the AI agent is triggered to resolve unrecognized ports or portUnlocodes. BunkerInsightsGetScenarioEstimatesOutput_Data: type: object properties: port: type: string nullable: true description: Port name. portUnlocode: type: string nullable: true description: UN/LOCODE for the port. aiInferredUnlocode: type: boolean nullable: true description: |- True if the UN/LOCODE was inferred by AI from a port name rather than supplied directly. crudePriceScenarioUSDperBarrel: type: number format: float nullable: true description: Crude oil price (USD/bbl) used as input for this scenario. quantityMT: type: number format: float nullable: true description: Bunker quantity (metric tonnes) used in this scenario. referenceBunkeringHub: type: string nullable: true description: Reference bunkering hub used as the price baseline. estimateUSDperMT: type: number format: float nullable: true description: Estimated bunker price in USD per metric tonne under this scenario. sensitivityToMarketConditionsUSDperMT: type: number format: float nullable: true description: |- Estimated USD/MT change in the estimate due to recent market volatility (both bunker and crude market volatility). probabilityOfUnderEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is lower than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. probabilityOfOverEstimationPct: type: integer nullable: true description: |- Probability (%) that the estimate is higher than the realised price. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. lowPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Lower bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. highPriceEstimateUSDperMT: type: number format: float nullable: true description: |- Upper bound of the estimate band in USD/MT. Null for dates near 2018-01-01 where observed data was statistically insufficient to characterize confidence. BunkerInsightsGetScenarioEstimatesOutput_Substitution: type: object properties: originalPort: type: string nullable: true description: |- The port name (or UN/LOCODE) the caller requested. It was not in the standard port list, so the AI agent remapped it to one or more known ports (see suggestedPorts). suggestedPorts: type: array items: type: string nullable: true description: Known port(s) the AI agent used to compute the estimate in place of originalPort.