Introduction
Last updated: August 2026
Welcome to the General Index documentation site. This site contains the information required to submit and extract data from the General Index system, including file formats and API specifications.
For questions regarding integrating GX data into your systems and submitting data, please contact support@general-index.com.
Methodology Framework
GX generates pricing assessments under a standard set of procedures that is mathematical, consistent and fully transparent. This is defined in the GX Methodology Framework, available online.
This documentation does not take precedence over the Methodology Framework or any contractual agreements in place.
Data Notices
GX sends out ad-hoc data notices containing information on new data series, updates to metadata and corrections that apply to data more than 30 days old. We encourage all users of GX data to sign-up to receive these notices. New users can sign-up here:
https://pages.general-index.com/datanotices
Index Modules
Index Series are grouped for licensing and access via Index Modules. Index Modules correspond to trading hubs and/or commodities.
Example Index Modules:
GlobalIndexes
NorthAmericaCrude
EuropeanCrude
EuropeanGasoline
EuropeanJet
There are currently around 60 Index Modules covering crude, refined products, marine fuels, natural gas, biofuels, carbon and power markets.
All data within a single Index Module is available to licensed users including all GX index series, index types, forward periods and timestamps for that Module.
Individual Index Series may be contained within multiple Index Modules.
The mapping of Index Series to Index Modules is published in the IndexModule column of the Data Catalogue. A series that belongs to more than one Module appears once per Module.
Time zones
Please note: All times and dates associated with Index Series are subject to time zones. Time zones are specified in metadata and are as provided in the IANA Time Zone Database (so, for example Europe/London)
Index Series Format
Last updated: August 2026
This section describes how GX Index Series are defined. It outlines standard data fields and file structures that are available across GX systems.
GX Index Codes
GX assigns a unique identifier to each Index Series – each identifier consists of the letters ‘GX’ followed by 7 digits (e.g. GX0000001), along with a title describing the content of the series (e.g. Global Crude Index (GCX) London Assessments).
Index Methodology Factsheets
A full definition of each index series is documented within the relevant factsheet. Factsheets include time zone, units of measure, location, pricing basis and calculation methodology.
Factsheet access
PDF versions of the factsheets are available from the factsheet server via this URL
https://factsheets.g-x.co/[GX_CODE].pdf
So, for example, the factsheet for Global Crude Index (GCX) London Assessments can be obtained from https://factsheets.g-x.co/GX0000001.pdf
Factsheet content is also available as JSON, for integrations that need it programmatically.
# List factsheets for a module
curl "https://api.g-x.co/factsheets?module=EuropeanGasoline" \
-H 'Authorization: ApiKey [YourGXApiKey]'
# Full factsheet detail for one or more codes
curl "https://api.g-x.co/factsheets/details?code=GX0000004" \
-H 'Authorization: ApiKey [YourGXApiKey]'
GET https://api.g-x.co/factsheets
| Parameter | Required | Description |
|---|---|---|
| module | Optional | Index Module name. Returns code, title, status and group for each series |
GET https://api.g-x.co/factsheets/details
| Parameter | Required | Description |
|---|---|---|
| code | Optional | One or more GX codes |
| title | Optional | Filter by title |
| status | Optional | Filter by status, e.g. Live |
Returns the full factsheet record including aliases, description, methodology and metadata.
Index Keys
Each series has several time series associated with it. Individual time series are defined by the following keys. All keys are stored as text fields.
| Key | Description | Type | Examples |
|---|---|---|---|
| Code | Index Series code. GX followed by 7 digits |
Text | GX0000001 |
| TimeRef | The timestamp of the assessment, always 4 digits. Note the time zone of the timestamp is defined in the Factsheet and metadata | HHMM | 1630, 0700, 0000 |
| PeriodType | Granularity of the assessment period. | Text | Month, Prompt |
| Period | Name of the period. This field is 1 when Period Type is Prompt. |
Text | 1, 2 |
Index Types
For a specific key combination (Index code at a particular TimeRef, Period, PeriodType), GX produces values for Index Types as defined by the factsheet, for example to denote Mid, High and Low.
Decimal places and precision of numerical fields are defined in the factsheet.
| Index Type | Description | Type |
|---|---|---|
| Mid | n/a | Double |
| High | n/a | Double |
| Low | n/a | Double |
| Index | This index type can appear | Double |
| Close | n/a | Double |
| Explanation | Assessment explanation / rationale | Text |
Additional Columns & Metadata
All GX codes carry the following columns:
| Column | Description | Type | Example(s) |
|---|---|---|---|
| FactsheetVersion | Version number of the Factsheet used to generate the assessment value. | Double | 1.0 |
| PeriodAbs | Absolute period which the assessment value relates to. | String | 2020-04 |
| PeriodRel | Relative period which the assessment value relates to. For most series, this reflects a future delivery period. In some markets, negative values may be published to reflect historic periods The granularity applicable to each series is defined by the relevant Factsheet and available in metadata. | Integer | 1, 2 |
| PeriodStart | The start date of the delivery window. Defined in ISO8601 format with option for time zone to be defined in the column header. | Text | 2020-07-01T00:00:00 |
| PeriodEnd | The end date of the delivery window. Defined in ISO8601 format with option for time zone to be defined in the column header. | Text | 2020-07-31T23:59:59 |
| RecordStatus | Column deprecated. N in all cases |
Text | N |
In addition to the value columns, metadata from the factsheet is provided to aid the consumption of the Index Series:
| Column | Description | Type | Example(s) |
|---|---|---|---|
| Alias | Text ‘short hand’ descriptor relating to a particular TimeRef, PeriodType and Period | Text | GCXC |
| Title | Text description of the data series. | Text | Eurobob Oxy Gasoline NWE FOB Barges |
| Timezone | The timezone of the timestamp (TimeRef). Time zones are as defined in the IANA Time Zone Database | Text | Europe/London |
| Units | Units of measure | Text | BBL NULL |
| Currency | Currency | Text | USD NULL |
| HolidayCalendar | The holiday calendar that defines when the Index Series is not published | Text | Holidays_GX_Europe |
| Source | This will be GX unless the data is reproduced from a third party |
Text | GX |
| DeliveryBasis | Freight and delivery information | Text | FOB Barges |
| PricingBasis | Flat or difference to another market | Text | Flat, Diff |
| TradingHub | The physical location | Text | NWE, Global |
| Commodity | Underlying commodity | Text | Crude |
| Frequency | Assessment frequency | Text | Daily, Monthly |
Holiday Calendars
curl "https://api.g-x.co/index?group=Meta_Holiday_Calendars&from=all&metadata=true" \
-H 'Authorization: Bearer [YourGXAccessToken]'
GX maintains a list of holiday calendars for GX Index Series and third-party timeseries. Calendar files have the following format:
| Field Name | Description | Type | Example(s) |
|---|---|---|---|
| Calendar | The name of the calendar. Where relevant this will appear in the Factsheet. | Text | Holidays_GCX Holidays_CME |
| Date | Date specified without a time zone. | YYYY-MM-DD | 2020-12-25 |
| Value(S) | Holiday name or Yes. |
Text | Christmas |
Holiday calendars can be queried through the API. Please see example. The holiday calendar should be queried in UTC time zone and the time component of the Date field ignored in the response.
Absolute Period Format
The granularity of absolute assessment periods (and held in PeriodAbs) is defined by the factsheet. Absolute assessment periods are published in the following format:
Granularity / PeriodType |
Description | Format | Example |
|---|---|---|---|
| n/a | No delivery period applies | Null | Null |
| Prompt | Prompt delivery period | Prompt | Prompt |
| 12Hour | 12 hour period. Shown as start of period | YYYY-MM-DDTHH:MM | 2020-03-22T12:00 |
| Day | Calendar day | YYYY-MM-DD | 2020-04-01 |
| Week | ISO week number | YYYY W[01-53] | 2020 W04 |
| HalfMonth | First or second half of a calendar month. Shown as start date of period | YYYY-MM-DD | 2020-04-16 |
| Weekend | Weekend period. Shown as start date of period | YYYY-MM-DD | 2026-08-15 |
| Month | Calendar month | YYYY-MM | 2020-04 |
| Quarter | Quarter of a calendar year | YYYY Q[1-4] | 2020 Q1 |
| Season | Calendar season | YYYY [SUM/WIN] | 2020 WIN |
| HalfYear | First or second half of a calendar year | YYYY H[1-2] | 2020 H2 |
| GasYear | Gas Year | YYYY | 2020 |
| Year | Calendar year | YYYY | 2020 |
| Cycle | Pipeline cycle number | C[0-9][0-9] | C03 |
API Specification
Authorisation
Last updated: August 2026
General Index provides multiple ways to authenticate:
- API key in the
Authorizationheader (preferred) - API key passed as URL parameter
- Basic token passed as URL parameter
- Basic token in Header
- JWT bearer access token in Header (legacy)
API key
GX Go users can generate their own API keys:
- Sign in to GX Go at https://go.g-x.co
- Click your name at the bottom of the left sidebar, then Settings
- Go to the Token Generation section and generate a new key
The name you give a key is for your own reference. Existing keys are listed with a copy button, so a key can be retrieved at any time. Keys can also be removed from the same screen.
If you do not have access to GX Go, contact GX Support for an API key.
Header authentication
# API key in the Authorization header - works on every endpoint
curl "https://api.g-x.co/index?code=GX0000004&from=5d" \
-H 'Authorization: ApiKey [YourGXApiKey]'
| Parameter | Required | |
|---|---|---|
| Authorization | Optional | ApiKey yourGXApiKey, Bearer yourGXAccessToken or Basic base64(user:password) |
Authorization: ApiKey is the recommended scheme. It works on every endpoint.
URL authentication
| Parameter | Required | Description |
|---|---|---|
| token | Optional | Either API key or basic token |
Basic token
# Basic token passed in url
# The token used in the example was generated for user@user.com:password
curl "https://api.g-x.co/index?token=dXNlckB1c2VyLmNvbTpwYXNzd29yZA=="
A basic token is generated from the username and password, Base64 encoded separated by a colon.
It can be generated from command line, for example in macOS / Linux:
echo -n "username:password" | base64
Username and password
When an account is created, GX sends an invitation email to the address provided. Follow the link in that email to set your password. Contact GX Support if you need it reset.
Legacy JWT authentication
Log in
This endpoint returns a jwt access token and a refresh token. When access token is expired, refresh token can be used to generate a new one.
curl -u 'login:password'
https://api.g-x.co/auth/login
If successful, the above command returns a status code 200 and token, otherwise please check Errors section.
{
"token": "YourGXAccessToken",
"refreshToken": "your refresh token"
}
HTTP Request
GET https://api.g-x.co/auth/login
Request Body
| Parameter | Description |
|---|---|
| username | username of account |
| password | password of account |
Refresh Access Token
This endpoint returns a new access token.
curl -X POST
https://api.g-x.co/auth/refresh
-d '{
"refreshToken": "your refresh token"
}'
If successful, the above command returns a status code 200 and token, otherwise please check Errors section.
{
"token": "YourGXAccessToken",
"refreshToken": "your refresh token"
}
HTTP Request
POST https://api.g-x.co/auth/refresh
Request Body
your refresh token
Log out
Log out the user by invalidating the refresh token.
curl -X POST
https://api.g-x.co/auth/logout
-H "Authorization: Bearer YourGXAccessToken"
-d '{
"refreshToken": "your refresh token"
}'
If successful, the above command returns status code 200, otherwise please check Errors section.
HTTP Request
POST https://api.g-x.co/auth/logout
Data Catalogue
Last updated: August 2026
Catalogue Endpoint
curl "https://api.g-x.co/catalogue?module=EuropeanGasoline \
-H 'Authorization: Bearer [YourGXAccessToken]'
The above command returns a CSV response
Code,PeriodType,TimeRef,IndexModule,Alias,Bid,Commodity,Currency,DeliveryBasis,EndDate,FactsheetVersion,Frequency,Group,High,HolidayCalendar,Increment,Index,InterAffiliateDataAccepted,LastTradeDateCalendar,LaunchDate,Low,MapLocation,MapZoom,Method,Mid,Offer,ParentCodes,PeriodMax,PeriodMin,PermissionLatestStatus,Precision,PricingBasis,PriorityToTransactions,SoleSourcedDataAccepted,Source,StartDate,Status,ThirdPartyMappings,TimeRefDetails,TimeZone,Title,TradingHub,Units
GX0000614,Month,1630,EuropeanGasoline,EBOB1V6M,,Gasoline,USD,FOB Barges,,1.0,Daily,Prod_Indexes,,Holidays_GX_Europe,0.25,Y,N,CalendarMonth,2021-06-11,,51.9244 4.4778,7,,,,GX0000002 GX0000002,1,1,PRIMARY,2,Diff,N,N,GX,2021-02-25,Live,LSEG:GX0000614L1630c1 Bloomberg:GIOS0614 Index,London Close,Europe/London,Eurobob Oxy Gasoline NWE FOB Barges (E5) M1 vs M6,NWE,MT
GX0000472,Prompt,1630,EuropeanGasoline,,,Gasoline,USD,CIF Cargoes,,1.0,Monthly,Prod_Indexes,Y,Holidays_GX_Europe,0.0001,,N,Null,2021-06-11,Y,,,,Y,,,1,1,PRIMARY,4,Flat,N,N,GX,2008-01-31,Live,LSEG:GX0000472L1630P Platts:AAWZB03 Bloomberg:GIOS0472 Index,London Close,Europe/London,Gasoline 95 RON MED CIF Cargoes Monthly Average (MAVG),MED,MT
HTTP Request
GET https://api.g-x.co/catalogue
The endpoint returns a list of all available Index data series. URL parameters allows filtering data by Module.
URL Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
| module | Optional | None |
Module name, if not provided all indexes are returned |
| token | Optional | None |
If Authorization header is missing, Basic Auth Token can be passed as a parameter |
Response Columns
| Column | Description |
|---|---|
| Code | GX Index Series code |
| PeriodType | Granularity of the assessment period |
| TimeRef | Assessment timestamp, 4 digits |
| IndexModule | Module the series is licensed under. A series in multiple Modules appears once per Module |
| Alias | Short-form descriptor for this TimeRef / PeriodType / Period |
| Bid, Offer, High, Low, Mid, Index | Y where the series publishes that Index Type |
| Commodity | Underlying commodity |
| Currency | Currency |
| DeliveryBasis | Freight and delivery information |
| StartDate | First date of published history |
| EndDate | Last date of published history. Blank while the series is live |
| LaunchDate | Date the series was launched |
| FactsheetVersion | Current factsheet version |
| Frequency | Assessment frequency |
| Group | Data group. Prod_Indexes for published index data |
| HolidayCalendar | Calendar defining when the series is not published |
| Increment | Minimum price increment (tick size) |
| InterAffiliateDataAccepted | Whether inter-affiliate transactions are accepted |
| LastTradeDateCalendar | Trade calendar used to determine contract expiry. See Trade Calendars |
| MapLocation, MapZoom | Latitude / longitude and zoom level used for map display |
| Method | Reserved. Currently unpopulated |
| ParentCodes | Codes this series is derived from |
| PeriodMin, PeriodMax | Lowest and highest relative period published |
| PermissionLatestStatus | PRIMARY or SECONDARY |
| Precision | Decimal places |
| PricingBasis | Flat or Diff |
| PriorityToTransactions | Whether transactions take priority in the assessment |
| SoleSourcedDataAccepted | Whether sole-sourced data is accepted |
| Source | GX unless reproduced from a third party |
| Status | Live, Dev or Archive |
| ThirdPartyMappings | Identifiers on third-party distribution platforms. Informational only — not a statement of where the series is distributed |
| TimeRefDetails | Human-readable description of the TimeRef |
| TimeZone | IANA time zone of the TimeRef |
| Title | Full series title |
| TradingHub | Physical location |
| Units | Units of measure |
Trade Calendars
Last updated: August 2026
Trade calendars define contract expiry for index series that reference a forward contract. The calendar applicable to a series is published in the LastTradeDateCalendar column of the Data Catalogue.
# List available trade calendars
curl "https://api.g-x.co/trade/calendars" \
-H 'Authorization: ApiKey [YourGXApiKey]'
# Which contract is live on a given date
curl "https://api.g-x.co/trade/calendars/CalendarMonth/contract?date=2026-08-21" \
-H 'Authorization: ApiKey [YourGXApiKey]'
The above returns a JSON response
{
"validUntil": "2026-08-31T00:00:00",
"contract": "2026-09",
"calendarName": "CalendarMonth"
}
List trade calendars
GET https://api.g-x.co/trade/calendars
Returns the name of every available trade calendar.
Preview a trade calendar
GET https://api.g-x.co/trade/calendars/[tradeCalendarName]
Returns every contract in the calendar with the date it is valid until.
Get contract date
GET https://api.g-x.co/trade/calendars/[tradeCalendarName]/contract
Returns the contract live on a given date.
| Parameter | Required | Description |
|---|---|---|
| date | Required | Date in YYYY-MM-DD format |
Data Structure
Indexes are stored as timeseries data with associated symbols, metadata and values
Symbols
Individual time series are accessible through the following keys. A combination of symbols uniquely defines a time series. Symbol fields are case sensitive and are returned as text strings.
| Field | explanation | example |
|---|---|---|
| Code | GX Index Series code | GX0000001 |
| TimeRef (nb: Case sensitive) | Timestamp, expressed as 4 digits. Timezone of timestamp is defined in metadata | 1630 0700 |
| PeriodType (nb: Case sensitive) | Granularity of the assessment period | Month Prompt |
| Period | Name of the Period | 1 |
Metadata
The Fields listed below represent the standard metadata published for all Index Series. Additional Metadata is available for individual Index Series where appropriate. Note Field names are case sensitive.
| Field | explanation | example |
|---|---|---|
| Title | Long-form name | Global Crude Index |
| Alias | Short-form name | GCXC |
| TimeZone (nb: Case sensitive) | Timezone that the Index Series is published in | Europe/London America/New_York |
| Currency | Currency | USD |
| Units | Units | BBL |
| HolidayCalendar (nb: Case sensitive) | Relevant holiday calendar | Holidays_GCX |
| Source | This will be GX unless the data is reproduced from a third party |
GX |
| DeliveryBasis | Freight and delivery information | FOB Barges |
| PricingBasis | Flat or difference to another market | Flat, Diff |
| TradingHub | The physical location | NWE, Global |
| Commodity | Underlying commodity | Crude |
| Frequency | Assessment frequency | Daily, Monthly |
Values
The Fields listed below represent the standard timeseries values associated with each Index Series. Additional Value series are available where appropriate – in particular reflecting multiple Index Value series. All field names are case sensitive.
| Field | explanation | example |
|---|---|---|
| FactsheetVersion | Integer value of relevant Factsheet methodology | 1 |
| PeriodAbs | Absolute period the assessment value relates to | 2020-07 |
| PeriodRel | Relative period the assessment value relates to. For most series this is a forward delivery period | 1 |
| PeriodStart | ISO8601 format. Returned in timezone the Index Series is published in | |
| PeriodEnd | ISO8601 format. Returned in timezone the Index Series is published in | |
| RecordStatus | Currently unsupported. Default N |
N |
| [Index Values] | Values as defined in the Index Types | Index High Volume |
Pull Index Data Series
Index Endpoint
The endpoint retrieves index timeseries data in the provided time range. URL parameters allows filtering data by Code or metadata fields, and selecting specific columns to return in the response.
HTTP Request
curl "https://api.g-x.co/index?code=GX0000004&metadata=true" \
-H 'Authorization: Bearer [YourGXAccessToken]'
The above command returns a CSV response
Code,Period,PeriodType,TimeRef,Date(UTC),FactsheetVersion,High,Low,Mid,PeriodAbs(S),PeriodEnd(D),PeriodRel(S),PeriodStart(D),RecordStatus(S),Alias(MD-S),Commodity(MD-S),Currency(MD-S),DeliveryBasis(MD-S),Frequency(MD-S),HolidayCalendar(MD-S),PricingBasis(MD-S),Source(MD-S),TimeZone(MD-S),Title(MD-S),TradingHub(MD-S),Units(MD-S)
GX0000004,1,Prompt,1730,2022-11-29T17:30:00,2,774.75,774.25,774.5,Prompt,2022-12-07T23:59:59,1,2022-12-01T00:00:00,N,EUROBOBNONC,Gasoline,USD,FOB Barges,Daily,Holidays_GX_Europe,Flat,GX,Europe/London,Eurobob Non Oxy Gasoline NWE FOB Barges,NWE,MT
GX0000004,1,Prompt,1630,2022-11-29T16:30:00,1,774.75,774.25,774.5,Prompt,2022-12-07T23:59:59,1,2022-12-01T00:00:00,N,,Gasoline,USD,FOB Barges,Daily,Holidays_GX_Europe,Flat,GX,Europe/London,Eurobob Non Oxy Gasoline NWE FOB Barges,NWE,MT
GX0000004,1,Prompt,1730,2022-11-28T17:30:00,2,732.25,731.75,732,Prompt,2022-12-06T23:59:59,1,2022-11-30T00:00:00,N,EUROBOBNONC,Gasoline,USD,FOB Barges,Daily,Holidays_GX_Europe,Flat,GX,Europe/London,Eurobob Non Oxy Gasoline NWE FOB Barges,NWE,MT
GX0000004,1,Prompt,1630,2022-11-28T16:30:00,1,732.25,731.75,732,Prompt,2022-12-06T23:59:59,1,2022-11-30T00:00:00,N,,Gasoline,USD,FOB Barges,Daily,Holidays_GX_Europe,Flat,GX,Europe/London,Eurobob Non Oxy Gasoline NWE FOB Barges,NWE,MT
# All indexes published today (by London timezone) with username / password authorization:
curl -u 'username:password' https://api.g-x.co/index?timezone=Europe/London
# All indexes published today (UTC timezone) with metadata:
curl -u 'username:password' https://api.g-x.co/index?metadata=true
# Last 10 days data of code GX0000002:
curl -u 'username:password' https://api.g-x.co/index?code=GX0000002&from=10d
# All Diesel indexes for last 5 days:
curl -u 'username:password' https://api.g-x.co/index?metadata.Commodity=Diesel&from=5d
# Select specific columns - only High, Low, Mid (Code, Period, PeriodType, TimeRef always included):
curl -u 'username:password' https://api.g-x.co/index?code=GX0000004&columns.values=High,Low,Mid
# Select only metadata columns with Period wildcard:
curl -u 'username:password' https://api.g-x.co/index?code=GX0000004&metadata=true&columns.metadata=Commodity,Currency,Period*
# Authorization token passed in url
# The token used in the example was generated for user@user.com:password
curl "https://api.g-x.co/index?from=5d&token=dXNlckB1c2VyLmNvbTpwYXNzd29yZA=="
GET https://api.g-x.co/index
URL Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
| code | Optional | None |
Comma separated list of GX codes. If not provided all indexes are returned |
| period | Optional | None |
Comma separated list of period values. If not provided all periods are returned |
| periodtype | Optional | None |
Comma separated list of periodtype values. If not provided all periodtypes are returned |
| timeref | Optional | None |
Comma separated list of timeref values. If not provided all timerefs are returned |
| module | Optional | None |
Index module to return, ex. module=NorthAmericaCrude. If not provided all modules are returned. Cannot be used in conjunction with the code, period, or periodtype parameters |
| group | Optional | Prod_Indexes |
Use default value unless advised otherwise by GX Support. Note: This is case sensitive. |
| from | Optional | today |
Start date, accepted values:
|
| to | Optional | today |
End date, accepted values:
|
| metadata.field | Optional | None |
Filter indexes by field value, ex. metadata.Commodity=Diesel |
| metadata | Optional | false |
Controls whether returns metadata, accepted values: true / false / only |
| columns.metadata | Optional | None |
Comma separated list of metadata column names to return. Column names must match exact names in the response. Supports wildcard (*) to select multiple columns with same substring, ex. Period* selects all columns starting with "Period". Only applicable when metadata is enabled. Note: Code, Period, PeriodType, TimeRef are always returned. |
| columns.values | Optional | None |
Comma separated list of value column names to return. Column names must match exact names in the response. Supports wildcard (*) to select multiple columns with same substring, ex. Period* selects all columns starting with "Period". Note: Code, Period, PeriodType, TimeRef are always returned. |
| order | Optional | desc |
Sort order of results by date. Accepted values: desc (most recent first, default) / asc |
| ValueField | Optional | None |
Filter by the value of any value column, ex. FactsheetVersion=1. Works the same way as metadata.field, but applies to value columns rather than metadata |
| delta | Optional | false |
Whether use time range against transaction time or insertion time. Accepted values: true / false. This can be used to run queries showing what has changed in the database in the requested date range. |
| timezone | Optional | UTC |
A timezone name for requested time range and returned data. Time zones are as defined in the IANA Time Zone Database. |
| token | Optional | None |
If Authorization header is missing, Basic Token can be passed as a parameter. See url authentication above. |
Header Parameters
See header authentication above.
| Parameter | Required | |
|---|---|---|
| Authorization | Optional | Bearer yourGXAccessToken or Basic base64(user:password) |
| Accept | Optional | text/csv (default) or application/json |
Column Selection Notes
- Required columns: The columns
Code,Period,PeriodType, andTimeRefare always returned regardless of column selection parameters - Column name matching: Column names must match exactly as they appear in the default response
- Wildcard support: Use
*to select multiple columns sharing a common prefix (e.g.,Period*matchesPeriod,PeriodAbs(S),PeriodEnd(D), etc.) - Response format compatibility: Column selection works with both CSV and JSON response formats specified via the
Acceptheader - Metadata dependency: The
columns.metadataparameter only applies whenmetadata=trueormetadata=onlyis set - Default behavior: If no column selection parameters are provided, all available columns are returned according to the
metadataparameter setting
# Select only essential price columns (required columns automatically included):
curl -u 'username:password' "https://api.g-x.co/index?code=GX0000004&columns.values=High,Low,Mid,Date(UTC)"
# Select specific metadata columns using wildcard:
curl -u 'username:password' "https://api.g-x.co/index?code=GX0000004&metadata=true&columns.metadata=Commodity,Currency,Period*"
# Combine value and metadata column selection:
curl -u 'username:password' "https://api.g-x.co/index?code=GX0000004&metadata=true&columns.values=High,Low&columns.metadata=Commodity,Currency"
# JSON response with selected fields:
curl -H 'Accept: application/json' -u 'username:password' "https://api.g-x.co/index?code=GX0000004&columns.values=High,Low,Mid"
Submit Data
Last updated: August 2026
GX accepts data submissions via file uploads to the GX data lake. File uploading has two steps
- First step is file meta data posting
- Second step is file uploading
File Metadata Posting
First step:
curl -X POST
https://api.g-x.co/file
-d '{
"groupName":"group01",
"fileName":"test.csv",
"fileType":"SOURCE",
"fields":[
{
"name":"String field",
"value":"test"
},
{
"name":"Integer field",
"value":"1"
},
{
"name":"Float field",
"value":"1.1"},
{
"name":"Date field",
"value":"2017-09-05"
}
...
]
}'
-H "Authorization: ApiKey [YourGXApiKey]"
If successful, the above command returns status code 201, otherwise please check Errors section.
This endpoint stores the file metadata and returns a location to PUT the file content. If the file group requires metadata for the uploaded file, you can override default values and provide values for metadata fields that require values. On creation the call returns a 'location', you must PUT the file content to this location.
HTTP Request
POST https://api.g-x.co/file
Request Body
| Data | Notes |
|---|---|
| groupName | Provided by GX Support and unique to your upload, for example Input_AcmeTrading_PushAPI) |
| fileName | File name should not be blank, must be unique for each file upload |
| fileType | type of the file, available types are: SOURCE (Default. Use this unless advised otherwise by GX Support) and NCSV |
| fields | Optional Meta data |
| * name | field name |
| * value | field value |
HTTP Response
Response:
{
"location": "https://fileUploadURL",
"fileId": "file id"
}
A JSON object is returned with an url to upload a file content.
File Uploading
This endpoint saves the file content into the GX Input Data Repository. You should use the 'location' link for the file from the first step response body.
Second step:
curl -X PUT --data-binary @"file-name.csv"
"https://fileUploadURL"
If successful, the above command returns status code 200.
HTTP Request
Use --data-binary body option to select file from your local machine.
PUT https://fileUploadURL
Download PDF Reports
Last updated: August 2026
## FILES
curl "https://api.g-x.co/file/search?size=1000&from=0&query=groupName%3DProd_Reports" \
-H 'Authorization: Bearer [yourGXAccessToken]'
The above returns a JSON response
{
"from": 0,
"totalSize": 100,
"items": [
{
"fileName": "GX_MiddleEastCrude_Benchmark_210324.pdf",
"fileType": "SOURCE",
"groupName": "Prod_Reports",
"fid": "c6da572e-d71f-4bdb-8394-a31396cf7c7a",
"fields": {
"SKIP_METADATA": "false"
},
"arrivalTime": "2021-03-24T14:47:08.399",
"owner": "system",
"size": 122903,
"checkSum": "300ffa79f079f365006e9f1c85b3dcae",
"zipped": false,
"shared": false,
"removed": false,
"version": 1,
"rootId": "c6da572e-d71f-4bdb-8394-a31396cf7c7a"
},
{
"fileName": "GX_MiddleEastCrude_Benchmark_210323.pdf",
"fileType": "SOURCE",
"groupName": "Prod_Reports",
"fid": "2b490176-b385-49cc-9453-bf25fe39c969",
"fields": {
"SKIP_METADATA": "false"
},
"arrivalTime": "2021-03-23T14:40:57.861",
"owner": "system",
"size": 134910,
"checkSum": "2cac31e0c971600f336c69b32b399665",
"zipped": false,
"shared": false,
"removed": false,
"version": 1,
"rootId": "2b490176-b385-49cc-9453-bf25fe39c969"
}
]
}
Second step:
curl -v "https://api.g-x.co/file/c6da572e-d71f-4bdb-8394-a31396cf7c7a/download"
-H 'Authorization: Bearer [yourGXAccessToken]'
The above returns the file as the response.
For certain Index Modules, General Index publishes PDFs on a regular (daily or weekly) basis. If you have been permissioned, reports are available using the same credentials.
There are two steps to downloading PDFs:
- First step is retrieve file IDs
- Second step is to retrieve the specific file based on the ID obtained.
Both steps authenticate with the Authorization header. The token URL parameter is not accepted here.
File naming
All PDFs follow the same naming convention. Files are named according to the Index Module, report type and publishing date in the following format:
GX_[Index Module]_[Report Type]_yymmdd.pdf
For example: GX_MiddleEastCrude_Benchmark_210324.pdf
The timezone of the date in the file name is according to the location of the Index Module.
Reports that are published as a correction to the original report will have the date of the original report in the filename but have a more recent arrivalTime.
Retrieve file IDs
HTTP Request
GET https://api.g-x.co/file/search
Header Parameters
| Parameter | Required | |
|---|---|---|
| Authorization | Required | ApiKey yourGXApiKey |
URL Parameters
| Parameter | Description |
|---|---|
| groupName | Prod_Reports unless advised otherwise by GX Support. |
| size | The maximum size of returned hits list. Max size is 1000. Default size is 100. |
| from | The index of the first hit. It allows to do paging easily. Default value is 0. |
Retrieve specific file
The URL is in the header of the response.
HTTP Request
curl -v "https://api.g-x.co/file/[fid]/download"
Header Parameters
| Parameter | Required | |
|---|---|---|
| Authorization | Required | ApiKey yourGXApiKey |
URL Parameters
| Parameter | Description |
|---|---|
| fid | fileID to retrieve |
Report Holiday Calendars
PDF reports are published daily, Monday to Friday apart from on dates specified in the relevant holiday calendar as specified below:
| Report Name | Holiday Calendar |
|---|---|
| GX_AsiaLPG_Benchmark | Holidays_GX_Singapore |
| GX_EuropeanLPG_Benchmark | Holidays_GX_Europe |
| GX_MiddleEastCrude_Benchmark | Holidays_GX_Singapore |
| GX_NorthAmericaCrude_Benchmark | Holidays_GX_NorthAmerica |
Please see documentation for instructions to access detailed holiday calendar information.
Errors
The General Index API uses the following status codes:
| Status Code | Meaning |
|---|---|
| 400 | Bad Request -- The request you sent is incorrect. |
| 401 | Unauthorized -- Your credentials are missing or incorrect. |
| 403 | Forbidden -- The requested resource is hidden and may be accessed by the administrators only. |
| 404 | Not Found -- The specified resource could not be found. |
| 405 | Method Not Allowed -- You tried to access a resource with an invalid method. |
| 406 | Not Acceptable -- You requested a response format that is not supported. Supported formats are text/csv (default) and application/json. |
| 410 | Gone -- The resource requested has been removed from our servers. |
| 429 | Too Many Requests -- You're requesting too many times! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Data Integration Guide
Last updated: December 2024
Approach
The following approach is recommended to receive an accurate and timely replica of GX data.
Regular Data Pull
# All indexes published within a 15 minute time window with username / password authorization:
"https://api.g-x.co/index?from=2022-09-01T17:00:00&to=2022-09-01T17:14:59.999&metadata=true&delta=true&token=[YourGXAccessToken]"
Query the /index api every 15 minutes with the following parameters.
HTTP Request
https://api.g-x.co/index
| Parameter | Value | Example |
|---|---|---|
| from | 16 mins before the current time, expressed as UTC | 2022-09-01T17:00:00 |
| to | 1 min before the current time, expressed as UTC | 2022-09-01T17:14:59.999 |
| delta | Set to true to get all changes to the database in that time period | true |
| metadata | Set to true to include metadata fields | true |
The range for each query should end 1 minute prior to the query time to ensure that all data in range is available via the API.
Data will be returned in UTC by default. Each series can be translated into the publication timezone using the metadata associated with the series.
Only columns updated during the insert range are returned. Where values for one or more columns have been updated during the range selected, unchanged columns will return empty values.
Metadata Request
# Metadata only
"https://api.g-x.co/index?metadata=only"
Metadata can be returned without values by passing a metadata value of 'only'.
Please note that Metadata values may be updated from time to time. Minor updates will not be included in a Data Notice.
Python SDK
Last updated: August 2026
SDK Introduction
GX maintains a Python SDK that allows developers to query and download index series data, and upload submissions to the GX data lake.
The SDK does not cover the full API surface — it wraps the commonly used features.
Installation
pip3 install generalindex
Current version, supported Python versions and the full changelog are on the PyPI project page.
Authentication
import generalindex as gx
# Option 1 - pass a token directly
api = gx.GxApi(token="[YourGXApiKey]")
# Option 2 - set once for the whole session
gx.set_token("[YourGXApiKey]")
api = gx.GxApi()
# Option 3 - environment variable NG_API_AUTHTOKEN
api = gx.GxApi()
The SDK reads credentials from environment variables, or they can be set in code.
| Variable | Description |
|---|---|
| NG_API_AUTHTOKEN | API key. See Authorisation for how to generate one |
| LOGIN / PASSWORD | Username and password, as an alternative to an API key |
| NG_API_ENDPOINT | Optional. Defaults to https://api.g-x.co |
A token can also be passed at instantiation with the token parameter, or set once for the session with gx.set_token() / gx.set_credentials(). Any handler created afterwards picks it up automatically. A token passed directly takes precedence over the environment variable.
Handlers
| Handler | Purpose |
|---|---|
GxApi |
Query index data from the GX API |
DatalakeHandler |
Download, upload and read files from the data lake |
Timeseries |
Work with time series data |
Documentation
Full documentation is on the PyPI project page.
Example Code
You can download an example script using the SDK.
MCP Server
Last updated: August 2026
MCP Introduction
General Index provides a remote MCP (Model Context Protocol) server that connects AI assistants — such as Claude, ChatGPT and AI-enabled developer tools — directly to GX index data. Once connected, you can ask your assistant questions in plain language and it will query GX data on your behalf.
The server URL is:
https://mcp.g-x.co/mcp
The server follows the open MCP standard, so it works with any MCP-compatible client. No advanced settings, headers or keys are required — authentication is handled by signing in with your email address.
Requesting Access
Access to the MCP server is enabled per user by General Index. Before connecting, contact GX Support or your account manager and ask for MCP access for your email address.
Your assistant will only be able to access the data your GX account is entitled to.
Signing In
When you connect for the first time, a GX sign-in page opens in your browser:
- Enter your email address (the one enabled for MCP access).
- A verification code is sent to that address. The code expires in 15 minutes.
- Enter the code to complete sign-in. No password is required.
Connecting from Claude
Claude Team and Enterprise plans
An Owner or Primary Owner must first add the connector for the organisation:
- Navigate to Organization settings > Connectors.
- Click Add.
- Hover over Custom, then select Web.
- Set any name you want and enter the server URL:
https://mcp.g-x.co/mcp - Do not specify any Advanced settings.
- Click Add to finish.
Members can then connect:
- Navigate to Customize > Connectors.
- Find the connector your Owner added (it carries a "Custom" label).
- Click Connect and complete the sign-in described above.
Claude Pro and Max plans
- Navigate to Customize > Connectors.
- Click + then Add custom connector.
- Set any name you want and enter the server URL:
https://mcp.g-x.co/mcp - Do not specify any Advanced settings.
- Click Add, then Connect and complete the sign-in described above.
Enabling the connector in a conversation
Connectors are toggled per conversation. Click the + button at the lower left of the chat interface, then Connectors, and switch the GX connector on or off.
Connecting from Claude Code
# "gx" is the local name for the server — choose any name
claude mcp add --transport http gx https://mcp.g-x.co/mcp
Then authenticate from within Claude Code:
claude /mcp
Run the command shown, then select the GX server and follow the sign-in prompts.
Connecting from ChatGPT
Custom MCP connectors are available on ChatGPT Plus, Pro, Business, Enterprise and Education accounts.
- In ChatGPT on the web, go to Settings > Apps (or Settings > Connectors) and enable Developer mode under Advanced settings.
- Go to Settings > Connectors and click Add custom connector.
- Enter the server URL:
https://mcp.g-x.co/mcp - Choose OAuth as the connection mechanism and complete the sign-in described above.
Connecting from Microsoft Copilot
Microsoft 365 Copilot does not support adding MCP connectors directly as an end user. Instead, MCP servers are added to an agent in Microsoft Copilot Studio by someone with maker or admin access:
- In Copilot Studio, open (or create) the agent and go to its Tools page.
- Click Add a tool > New tool > Model Context Protocol.
- Enter the server URL
https://mcp.g-x.co/mcpand choose OAuth authentication, then follow the wizard. - Publish the agent to make it available to users in your organisation.
Connecting from Gemini
The consumer Gemini app does not currently support custom MCP connectors. There are two supported routes:
Gemini Enterprise (added by a team admin): go to Settings & help, select your team, then Manage team > Connected apps > Add MCP Server, and enter the server URL https://mcp.g-x.co/mcp.
# Gemini CLI: add to ~/.gemini/settings.json
{
"mcpServers": {
"gx": {
"httpUrl": "https://mcp.g-x.co/mcp"
}
}
}
Gemini CLI (individual developers): add the server to ~/.gemini/settings.json as shown (take care to keep the JSON valid), then restart the CLI and complete sign-in when prompted.
Connecting from Other Clients
Any client that supports remote MCP servers with OAuth can connect. Enter the server URL https://mcp.g-x.co/mcp and choose OAuth as the authentication method; the client handles registration and sign-in automatically.
Available Tools
The server exposes the following tools to your assistant. Your assistant chooses which tool to use based on your question — you do not call them directly.
| Tool | Description |
|---|---|
search_catalog |
Finds products in the GX catalogue — resolves a product name, commodity or trading hub to its GX code(s), and answers listing questions such as "all forward curve products in Europe". Returns product information, not prices. |
query_index_db |
Retrieves published GX index data — prices for one or more GX codes over a date range, with product metadata. Handles both simple lookups and analytical questions. |
request_human_assistance |
Passes your question to the GX team (support, sales or technical) when the assistant cannot answer it — for example account questions, missing data or feedback. |
get_server_health |
Checks that the server and its tools are available. Useful when diagnosing connection problems. |
Data Access and Security
- The MCP server is read-only: your assistant can retrieve GX data but cannot change anything.
- The server reaches published GX index data only.
- Error messages never contain internal detail; each error carries a request ID you can quote to GX Support for investigation.
- To stop using the connector, disconnect or remove it in your client's connector settings. You can reconnect at any time by signing in again.
MCP Troubleshooting
| Problem | Likely cause and fix |
|---|---|
| No verification code arrives | Your email address is not enabled for MCP access. Contact GX Support. Check your spam folder first. |
| Sign-in loops back to the email screen | The code expired (15 minutes) or the address is not enabled. Request a new code, or contact GX Support. |
| Connector added but tools do not appear | Reconnect: disconnect the connector in your client, then connect and sign in again. |
| Assistant returns no data for a product | The product may not be in the published catalogue, or the date range may be wrong. Ask the assistant to search the catalogue for the product first. |
| Assistant reports an error with a request ID | Quote the request ID to GX Support — it lets the team look up the full detail. |
Submitting Data
Last updated: August 2026
GX accepts data submissions from partners globally.
Source Systems
Where possible, GX has a strong preference for receiving data from formally managed IT systems (e.g. CTRM, confirmation interfaces, Bid/Offer management, nomination and logistics software) which are supported and maintained outside the Front Office. Where this is not possible (for example, with bid/offer data), this should be highlighted.
Submit Data via Email
GX accepts data submissions via a dedicated email address. Email can contain data in the email body as well as attachments. Contact GX Support for a dedicated email address to accept your data submissions.
Submit Data via API
Data is submitted to the GX data lake using the /file endpoint. This is a two-step call — POST the file metadata to https://api.g-x.co/file, then PUT the file content to the location returned.
Full detail, including the request body and the file types accepted, is in Submit Data under the API Specification.
Your API credentials must be permissioned for uploads, and GX Support will provide the groupName your submissions go to. Contact GX Support to arrange both.
Trade Data Format
Last updated: August 2026
General Index processes trade data from a number of sources across commodities and geographies. We have developed a flexible data format that allows accurate and efficient processing
GX assessment processes include both trades and bid/offer data. Our data structure applies to both.
File Format
The following describes the data format which can be used for downloading and uploading trade data as CSV files.
Trade Data Keys
The combination of keys must be unique. Transactions with the same keys will be considered corrections and the previous data will be overwritten.
All keys are required:
| Key | Type | Req. | Description | Example |
|---|---|---|---|---|
| Code | Text | Y | GX Trade Series code. GT followed by 7 digits. Codes can be provided by GX Support |
GT1234567 |
| Reference | Integer | Y | Unique reference assigned to each deal captured per Code / DateTime. Values used to distinguish between trades with a matching timestamp. | 1 |
| TransactionType | Text | Y | Options are Bid, Offer, Trade |
Bid |
| DateTime(TimeZone) | ISO-8601 | Y | Timeseries datetime. TimeZone must be specified in the CSV header, so for example DateTime(Europe/London), and are from the IANA Time Zone Database |
2021-06-15T16:30:00 |
Columns - Core
Most Core columns are required:
| Column | Type | Req. | Description | Example |
|---|---|---|---|---|
| Buyer(S) | Text | N | Buying company. Blank for Offers. | Counterparty A |
| LeadParty(S) | Text | N | Lead party side (market maker). Defined list of Buyer,Seller, or blank (for markets where this is unavailable) |
Buyer |
| Seller(S) | Text | N | Selling company. Blank for Bids. | Counterparty B |
| TradingHubDetail(S) | Text | Y | Traded Location. Can match TradingHub (see Metadata), or provide multiple locations depending on data series. | NWE |
| Price(DB) | Double | Y | Outright traded price / differential to floating price | 71.75 |
| PricingCurrency(S) | Text | Y | ISO-4217 Currency Code, or USC for US Cents, GBX for GB Sterling pennies |
USD |
| PricingType(S) | Text | Y | Defined list of Fixed, COD, Laycan, Balmo, Balmo Next Day, EFP, Custom |
COD |
| PricingUnit(S) | Text | Y | Unit of measure used for pricing. TOTAL, DAY or otherwise | BBL |
| Quantity(DB) | Double | Y | Main traded quantity / volume | 25 |
| QuantityUnit(S) | Text | Y | Main unit, including period. /TOTAL, /DAY or otherwise | BBL/DAY |
Columns - Additional
Additional columns that can be accepted:
| Column | Type | Req. | Description | Example(s) |
|---|---|---|---|---|
| CODDays(DB) | Double | N | Completion of discharge days | 5 |
| DeliveryBasis(S) | Text | N | Trade delivery terms | FOB, CIF, Delivered |
| DeliveryDetails(S) | Text | N | Text description of timing information, e.g. for US pipeline cycle numbers | C5 UNR |
| DeliveryEnd(D) | ISO-8601 | N | End of day on which delivery ends | 2021-08-31T23:59:59 |
| DeliveryStart(D) | ISO-8601 | N | Start of day on which delivery starts | 2021-08-01T00:00:00 |
| Destination(S) | Text | N | Destination location or port | Open |
| DiffToSwap(DB) | Double | N | Quoted difference to swap value | 5 |
| Excluded(S) | Text | N | Market quoted trade excluded by Source associated with the data series. Defined list of Y,N,R |
N |
| ExclusionDetails(S) | Text | N | Reason for excluding a market quoted trade. | 'Non Standard Terms' |
| ExtractTime(D) | ISO-8601 | N | Datetime at which data was published from trade capture system | 2021-08-01T00:00:00 |
| Grade(S) | Text | N | NULL if not applicable |
Summer |
| OCORef(S) | Text | N | Order cancels order reference | 1 |
| OrderPlaced(D) | ISO-8601 | N | Datetime at which the order was initially placed | 2021-08-01T16:29:59.123 |
| OrderExpiry(D) | ISO-8601 | N | Datetime at which the order expires if not executed | 2021-08-01T16:29:59.123 |
| Origin(S) | Text | N | Origin location or port | UAE |
| PriceMax(DB) | Double | N | Maximum price (e.g for Tenders). Blank if not available | 75.25 |
| PricePlaced(D) | ISO-8601 | N | Datetime at which the order was initially placed at the final price | 2021-08-01T16:29:59.123 |
| PricingDetails(S) | Text | N | Free text description of trade terms | MARKET BUYS FROM CPTY 5KMT AT $27.50 (08:28:42) (DEEMED PRICING NOV22) |
| PricingMarket(S) | Text | N | Text description of market for floating price deals, or Fixed |
ICE Gasoil, 95 RON GASOLINE MED FOB CARGOES SWAPS, Brent |
| PricingMarketPct(DB) | Double | N | Percentage of floating price attributed to PricingMarket. Blank if not available | 100 |
| PricingPeriod(S) | Text | N | Text description of the pricing period. Dates in YYYY-MM format | 2023-05 |
| PricingPeriodDetail(S) | Text | N | Additional text description of the pricing period. Dates in YYYY-MM format | D 5 |
| PricingPeriodStart(D) | ISO-8601 | N | Start of first day of pricing period. Blank for fixed price trades. | 2021-08-01T00:00:00 |
| PricingPeriodEnd(D) | ISO-8601 | N | Final second of last day of pricing period. Blank for fixed price trades | 2021-08-31T23:59:59 |
| PricingMarket2(S) | Text | N | Text description of pricing market 2 for floating price deals, or Fixed |
ICE Gasoil, 95 RON GASOLINE MED FOB CARGOES SWAPS, Brent |
| PricingMarket2Pct(DB) | Double | N | Percentage of floating price attributed to Pricing Market 2. Blank if not available | 100 |
| PricingPeriod2(S) | Text | N | Text description of pricing period 2. Dates in YYYY-MM format | 2023-05 |
| PricingPeriod2Detail(S) | Text | N | Additional text description of pricing period 2. Dates in YYYY-MM format | D 5 |
| PricingPeriod2Start(D) | ISO-8601 | N | Start of first day of pricing period 2. Blank for fixed price trades. | 2021-08-01T00:00:00 |
| PricingPeriod2End(D) | ISO-8601 | N | Final second of last day of pricing period 2. Blank for fixed price trades | 2021-08-31T23:59:59 |
| PricingMarket2Price(DB) | Double | N | Fixed price element associated with pricing market 2 for floating price deals. Blank if not available | ' 25.2 |
| PricingMarket3(S) | Text | N | Text description of pricing market 3 for floating price deals, or Fixed |
ICE Gasoil, 95 RON GASOLINE MED FOB CARGOES SWAPS, Brent |
| PricingMarket3Pct(DB) | Double | N | Percentage of floating price attributed to Pricing Market 3. Blank if not available | 100 |
| PricingPeriod3(S) | Text | N | Text description of the pricing period 3. Dates in YYYY-MM format | 2023-05 |
| PricingPeriod3Detail(S) | Text | N | Additional text description of pricing period 3. Dates in YYYY-MM format | D 5 |
| PricingPeriod3Start(D) | ISO-8601 | N | Start of first day of pricing period 3. Blank for fixed price trades. | 2021-08-01T00:00:00 |
| PricingPeriod3End(D) | ISO-8601 | N | Final second of last day of pricing period 3. Blank for fixed price trades | 2021-08-31T23:59:59 |
| PricingMarket3Price(DB) | Double | N | Fixed price element associated with pricing market 3 for floating price deals. Blank if not available | ' 25.2 |
| QuantityMax(DB) | Double | N | Maximum quantity tradable as main volume (for Bids / Offers only). Blank if not available | 3 |
| SourceDetails(S) | Text | N | Direct provider of the data series. | GX |
| TransactionRef(S) | Text | N | 3rd party identifier where available | 123456 |
| TransactionStatus(S) | Text | N | Transaction status. Defined list of BidOffer, ReBidOffer, WithdrawsBidOffer, WithdrawnBidOffer, UnwoundBuySell, Deleted, Traded,Indication |
WithdrawnBidOffer |
| TransactionValuation(DB) | Double | N | Valuation of the trade assessed by Source associated with data series | 75.45 |
| Vessel(S) | Text | N | Vessel name or type | BP, KPC, TOTAL |
| WindowState(S) | Text | N | Pricing window state at the point the order was placed | Pricing |
| WindowTrade(S) | Text | N | Trade entered into a pricing window platform. Defined list of Y,N |
N |
Columns - Optional volumes
For optional volumes, the following columns are accepted
| Column | Type | Req. | Description | Example(s) |
|---|---|---|---|---|
| OptCODDays(DB) | Double | N | Optional. Completion of discharge days | 5 |
| OptPrice(DB) | Double | N | Outright traded price / differential to floating price for optional leg | 75.15 |
| OptPricingCurrency(S) | Text | N | ISO-4217 Currency Code, or USC for US Cents, GBX for GB Sterling pennies |
GBX |
| OptPricingMarket(S) | Text | N | Text description of market for floating price deals, or Fixed |
ICE Gasoil |
| OptPricingPeriodEnd(D) | ISO-8601 | N | Final second of last day of optional leg pricing period. Blank for fixed price trades. | 2021-08-31T23:59:59 |
| OptPricingPeriodStart(D) | ISO-8601 | N | Start of first day of optional leg pricing period. Blank for fixed price trades. | 2021-08-01T00:00:00 |
| OptPricingType(S) | Text | N | Defined list of Fixed, COD,Laycan, Balmo, Balmo Next Day, Custom |
COD |
| OptPricingUnit(S) | Text | N | Unit of measure used for pricing, including period. /TOTAL, /DAY or otherwise | BBL/TOTAL |
| OptQuantityUnit(S) | Text | N | Volume unit, including period. /TOTAL, /DAY or otherwise | BBL/DAY |
| OptQuantity(DB) | Double | N | Optional traded quantity / volume | 5 |
| QuantityTotal(DB) | Double | N | Total quantity including both Quantity and OptQuantity | '30' |
Trade Metadata
Metadata must be presented in the CSV after any columns. Metadata applies to the set of keys and cannot vary by DateTime.
| Metadata | Type | Req. | Description | Example(s) |
|---|---|---|---|---|
| Commodity(MD-S) | Text | Y | Traded commodity | Gasoline |
| Source(MD-S) | Text | Y | Publisher of the data series | GX |
| TimeZone(MD-S) | IANA TimeZone | Y | Timezone that all date time fields of this data apply to | Europe/London |
| Title(MD-S) | Text | Y | Title of trade data series | Naphtha CIF NWE Cargoes 24KT MOC |
| TradingHub(MD-S) | Text | Y | Traded location | NWE |
| HolidayCalendar(MD-S) | Text | Y | Data series holiday calendar. Null if not applicable |
Holidays_GX_Europe |
| EarlyCloseCalendar(MD-S) | Text | Y | Data series early close calendar. Null if not applicable |
EarlyClose_GX_Europe |