Skip to content

Hubs LNG Cargo ​

The Hubs LNG Cargo endpoints allow you to pull active and inactive LNG cargo posts from the Spark Hubs platform, including outright, outright strip, swap and tender posts across multiple regions.

Looking to pull Hubs data?

Visit our Python Code Examples section to download our Hubs code sample, the quickest way to start pulling Hubs data.

Hubs API Subscription Required

Contact us to discuss our Premium plans at commercial@sparkcommodities.com

For a full definition of all response data fields, see Response Fields below.

Active Posts ​

/v1.0/lng/hubs/cargo/active/

Call this endpoint to retrieve active Hubs posts, including outright, outright strip, swap and tender posts.

Parameters ​

  • incoterm (optional)
    • Filter posts by incoterm.
    • Available values: fob, des
  • region (optional)
    • Filter posts by region.
    • See the Reference Data endpoint for available values.

Data can be retrieved in JSON or CSV format, although metadata is only available in the JSON response.

Inactive Posts ​

/v1.0/lng/hubs/cargo/inactive/

Call this endpoint to retrieve all inactive (expired) Hubs posts, including outright, outright strip, swap and tender posts. Active posts are not included in this response - use the Active Posts endpoint to retrieve those.

Parameters ​

  • incoterm (optional)
    • Filter posts by incoterm.
    • Available values: fob, des
  • region (optional)
    • Filter posts by region.
    • See the Reference Data endpoint for available values.

Data can be retrieved in JSON or CSV format, although metadata is only available in the JSON response.

Reference Data ​

/v1.0/lng/hubs/cargo/reference-data/

Call this endpoint to retrieve reference data for the Hubs platform, including available regions, incoterms, and slot types.

Parameters ​

This endpoint has no parameters to specify.

Data can be retrieved in JSON or CSV format, although metadata is only available in the JSON response.

Response Fields ​

The Active and Inactive Posts endpoints return the same fields. CSV headers are the JSON field names with the first letter capitalised and acronyms in upper case (e.g. postedAtUtc becomes PostedAtUTC). Fields that don't apply to a post type are empty.

JSON fieldCSV column(s)Description
postIdPostIDUnique post ID, e.g. LNG-NWE-O-0001
incotermIncotermfob or des
hubRegionsHubRegionsRegion(s) of the post's terminals
interestTypeInterestTypeoutright, outright_strip (a series of outright cargoes over several windows), swap or tender
orderTypeOrderTypebid or offer for outright and outright strip posts, offered or requested for each leg of a swap, buy or sell for tenders
statusStatusactive or expired
tenderPhaseTenderPhaseTenders only: published, live or end
posterOrgNamePosterOrgNameThe poster's organisation, or Anonymous
posterUserNamePosterUserNameThe poster's user name. Only populated for posts made by your own organisation, otherwise empty
connectionsCountConnectionCountNumber of counterparties that have responded to the post
terminalsTerminalNamesThe post's terminals or loading ports. In JSON, a UUID to name map. In the CSV, a comma-separated list of names
terminalsAreHiddenTerminalsAreHiddentrue if the poster has hidden the terminals
windows[].startDate, windows[].endDateWindowStartDate, WindowEndDateFirst and last date of the loading or delivery window. Both are always provided. For a single date, the end date equals the start date
windows[].outrightCargoCountWindowOutrightCargoCountNumber of cargoes in the window (outright and outright strip posts)
windows[].dateTypeWindowDateTypeHow the window was entered: single (one date), range, window-1h (1st to 15th of the month), window-2h (16th to month end) or month
windowsAreHiddenWindowsAreHiddentrue if the poster has hidden the windows
windowsAreFlexibleWindowsAreFlexibletrue if the poster is flexible on the dates
quantityValueQuantityValueCargo size
quantityUnitQuantityUnitmmbtu, tbtu or m3
quantityTolerancePercentQuantityTolerancePercentAccepted tolerance on the cargo size, in %
quantityIsHidden, quantityIsFlexibleQuantityIsHidden, QuantityIsFlexibleWhether the quantity is hidden, and whether the poster is flexible on it
swapPaymentIndicationPreferenceSwapPaymentIndicationPreferenceSwaps only: none, willing-to-pay or desire-to-be-paid
swapPaymentIndicationPreferenceIsHiddenSwapPaymentIndicationPreferenceIsHiddenSwaps only: true if the payment preference is hidden
indicativePriceStructureIndicativePriceStructurefixed or indexed
indicativePriceFixedValueIndicativePriceFixedValueThe price, when the structure is fixed
indicativePriceIndexIndicativePriceIndexThe index, when the structure is indexed (e.g. TTF, HH)
indicativePriceIndexedMonthIndicativePriceIndexedMonthThe index contract month relative to the cargo's window month (0 = same month, 1 = the following month)
indicativePriceIndexPercentageIndicativePriceIndexPercentagePercentage of the index, e.g. 100.000 for 100%
indicativePriceIndexConstantIndicativePriceIndexConstantConstant added to the index, e.g. -0.500. An indexed price is percentage × index + constant
indicativePriceIsHiddenIndicativePriceIsHiddentrue if the poster has hidden the price
otherInfo, otherInfoIsHiddenOtherInfo, OtherInfoIsHiddenFree-text notes from the poster, and whether they are hidden
postedAtUtcPostedAtUTCWhen the post was created (UTC)
postValidUntilUtcPostValidUntilUTCOutright and swap posts: when the post expires. Tenders: when the tender closes to new counter-offers (UTC)
postLastUpdatedAtUtcPostLastUpdatedAtUTCWhen the post was last updated (UTC)
tenderLiveAtUtcTenderLiveAtUTCTenders only: when the tender went live (UTC)

A few things to note when working with the data:

  • Swaps are returned as two records. Each swap post appears twice with the same postId: once for the cargo offered (orderType = offered) and once for the cargo requested (requested). Each leg has its own incoterm, regions, terminals and windows.
  • One CSV row per window. A post with several windows (e.g. an outright strip) has one CSV row per window, with the post's other fields repeated. In JSON, the windows are a list within the post.
  • Numbers are returned as strings in JSON (e.g. "3.600000") to preserve their precision. Convert them before doing calculations.
  • Hidden fields are empty. When the poster hides a field, its value is empty (null in JSON) and the matching ...IsHidden field is true.
  • Metadata. The JSON metaData includes asOf (the time of your request, UTC), any filters you applied, and terminals, the UUID to name lookup for all Hubs terminals and loading ports.