Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Become a customer
  • Contact Us
English (US)
US English (US)
FR French
JP Japanese
  • Home
  • Platform
  • APIs
  • API

Fastmarkets Market Data API

Written by Eleonora Lebedeva

Updated at December 3rd, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Platform
    Dashboard Excel Add-In Mobile apps APIs
  • Log in
  • Training
  • Events
  • Prices and methodology
  • MyDesk
    Getting Started with MyDesk Using MyDesk MyDesk advanced widgets Data available in MyDesk Troubleshooting
  • Administration
    Manage users Billing and invoices Banking and vendor registration
  • Contact us
+ More

Table of Contents

Market Data API API technical documentation Authenticating Retrieving a single price Example Request (Python) Retrieving multiple prices Example Request (Python) Retrieving a range of prices Example Request (Python) Other fields for retrieving price history Market prices data types Example COMEX Request Example OTC LBMA Request Example OTC Request Example OTC Request Example CBOT Request Retrieving instrument data Example Request (Python) Exchange symbology Technical API information Further help

Market Data API

The Market Data API provides price values and associated instrument data for market prices: delayed LME officials, LME FX pricing, CME group and SHFE settlements. All price values are associated to instruments which uses a symbol as an identifier.

API technical documentation

For more on the specification of this API and to try it out, please refer to the API’s documentation page (Swagger)

You can try running real API calls there using your Fastmarkets Platform credentials. Ask Fastmarkets team to provide your account with Swagger access.

Authenticating

All Fastmarkets APIs require a valid Access Token to retrieve permissioned data. To generate an Access Token, please refer to the Authentication API guide with the scope: fastmarkets.marketdata.api.

The token is then added to an Authorization header parameter using the ‘Bearer’ prefix. For example:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Retrieving a single price

To return the most recently available assessed price for a specific instrument, the Prices endpoint is used. In this example, the symbol ‘XL-CA-FRC.O’ is used to return the latest available price data (bid, mid and ask fields) for ‘LME Copper Cash Official’.

In the response, bid, mid and ask price values and the price's timestamp ,are returned for the most recent available data.

Example Request (Python)

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XL-CA-FRC.O&fields=bid,mid,ask
url = "https://api.fastmarkets.com/marketdata/v1/Prices"
query = {'symbols':'XL-CA-FRC.O', 'fields':['bid', 'mid', 'ask']}
headers = {
	'Authorization': 'Bearer ' + accessToken.access_token,
	'cache-control': 'no-cache'
	}
req = requests.request("GET", url, headers=headers, data = query)
singlePrice = json.loads(req.content)

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XL-CA-FRC.O",
            "bid": 11280.0,
            "bidTime": "2025-12-02T12:46:13.0000000+00:00",
            "mid": 11282.5,
            "midTime": "2025-12-02T12:46:13.0000000+00:00",
            "ask": 11285.0,
            "askTime": "2025-12-02T12:46:13.0000000+00:00"
        }
    ]
}

A value for the symbols and fields parameter is always required.

Retrieving multiple prices

It is also possible to request prices for multiple instruments in single request using the Prices endpoint.

In the example request below, three different symbols have been requested. In the result, there will be three price results for all the instruments.

Example Request (Python)

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XL-CA-FRC.O,XL-NI-FRC.O,XL-SN-FRC.O&Fields=bid,mid,ask
url = "https://api.fastmarkets.com/marketdata/v1/Prices"
query = {
	'symbols': ['XL-CA-FRC.O','XL-NI-FRC.O','XL-SN-FRC.O'],
	'fields': ['bid', 'mid', 'ask']
	}
headers = {
	'Authorization': 'Bearer ' + accessToken.access_token,
	'cache-control': 'no-cache'
	}
req = requests.request("GET", url, headers=headers, data = query)
multiplePrices = json.loads(req.content)

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XL-CA-FRC.O",
            "bid": 11280.0,
            "bidTime": "2025-12-02T12:46:13.0000000+00:00",
            "mid": 11282.5,
            "midTime": "2025-12-02T12:46:13.0000000+00:00",
            "ask": 11285.0,
            "askTime": "2025-12-02T12:46:13.0000000+00:00"
        },
        {
            "symbol": "XL-NI-FRC.O",
            "bid": 14715.0,
            . . .
        },
        {
            "symbol": "XL-SN-FRC.O",
            "bid": 39245.0,
            . . .
        }
    ]
}

Retrieving a range of prices

Using the Prices/History endpoint, it is possible to retrieve a series of prices over a specified period. In this example, a request is made for the last 6 days of prices leading up to the current time (at the time of writing, 10:18 on 3rd December 2025). The response returns prices in ascending order of date. No data is provided for the 29th or 30th of November as they were at a weekend. The response returns prices in descending order of date.

Example Request (Python)

POST https://api.fastmarkets.com/marketdata/v1/Prices/History HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XL-CA-FRC.O&Fields=bid,mid,ask&Interval=6:0:0:0
url = "https://api.fastmarkets.com/marketdata/v1/Prices/History"
query  = {
          'symbols': 'XL-CA-FRC.O',
          'Fields': ['bid', 'mid', 'ask'],
          'Interval': '6:0:0:0'
          }
headers = {
     'Authorization' : 'Bearer ' + accessToken.access_token, 
     'cache-control' : 'no-cache'
}
req = requests.request("GET", url, headers=headers, data = query)
priceRange = json.loads(req.content)

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XL-CA-FRC.O",
            "prices": [
                {
                    "time": "2025-11-27T12:46:12.0000000+00:00",
                    "bid": 10933.0,
                    "ask": 10934.0,
                    "mid": 10933.5
                },
                {
                    "time": "2025-11-28T12:45:33.0000000+00:00",
                    "bid": 11003.0,
                    "ask": 11004.0,
                    "mid": 11003.5
                },
                {
                    "time": "2025-12-01T12:46:41.0000000+00:00",
                    "bid": 11298.0,
                    "ask": 11299.0,
                    "mid": 11298.5
                },
                {
                    "time": "2025-12-02T12:46:13.0000000+00:00",
                    "bid": 11280.0,
                    "ask": 11285.0,
                    "mid": 11282.5
                }
            ]
        }
    ]
}

Other fields for retrieving price history

There are several other optional fields that can be used to control the price history requested:

Field name Description
startDate

A date/time specified in ISO-8601 format. E.g. 2025-09-10T10:00:00Z

 

You can request a range of prices working either forwards or backwards from this startTime. 

If you do not supply a value, we will assume a start time of now and you may supply only a positive interval or count to request a range leading up to now.

interval

A TimeSpan in the format days:hours:minutes:seconds. When you specify a startTime, use a negative value to request a range leading up to your startTime. When startTime is left empty, interval must be positive, and it is used to request a range leading up to now.

 

You must specify either interval or count.

count

The number of prices you want to retrieve. When you specify a startTime, use a negative value to request prices leading up to your startTime. When startTime is left empty, count must be positive, and it is used to request a range leading up to now.

 

You must specify either interval or count.

Market prices data types

The data structure differs depending on source and contract type. To receive the correct price value the correspondent fields should be provided in price request:

Source label Fields
CME, CBOT, NYMEX settlement
LME, OTC, (LBMA) mid, bid, ask
SHFE, COMEX settlement, close
OTC (.E) bid, ask
OTC closelondon4pm, closeutcmidnight

Example COMEX Request

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XC-ALI-FR1M&fields=settlement,close

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XC-ALI-FR1M",
            "close": 2711.25,
            "closeTime": "2025-11-21T07:11:05.0000000+00:00",
            "settlement": 2849.75,
            "settlementTime": "2025-12-02T00:00:00.0000000+00:00"
        }
    ]
}

Example OTC LBMA Request

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XO-AULBMA-T.AM&fields=bid,mid,ask

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XO-AULBMA-T.AM",
            "bid": 4185.7,
            "bidTime": "2025-12-02T10:32:16.0000000+00:00",
            "mid": 1953.5,
            "midTime": "2023-05-26T00:00:00.0000000+00:00",
            "ask": 4185.7,
            "askTime": "2025-12-02T10:32:16.0000000+00:00"
        }
    ]
}

Example OTC Request

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XO-USDCAD-RRM1&fields=closelondon4pm,closeutcmidnight

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XO-USDCAD-RRM1",
            "closelondon4pm": -23.75,
            "closelondon4pmTime": "2025-12-02T15:59:54.0000000+00:00",
            "closeutcmidnight": -23.02,
            "closeutcmidnightTime": "2025-12-02T23:59:54.0000000+00:00"
        }
    ]
}

Example OTC Request

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XO-AULBMA-T.AM&fields=bid,mid,ask

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XO-AULBMA-T.AM",
            "bid": 4185.7,
            "bidTime": "2025-12-02T10:32:16.0000000+00:00",
            "mid": 1953.5,
            "midTime": "2023-05-26T00:00:00.0000000+00:00",
            "ask": 4185.7,
            "askTime": "2025-12-02T10:32:16.0000000+00:00"
        }
    ]
}

Example CBOT Request

POST https://api.fastmarkets.com/marketdata/v1/Prices HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XB-ZC-FSH26&fields=settlement

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XB-ZC-FSH26",
            "settlement": 450.0,
            "settlementTime": "2025-12-02T00:00:00.0000000+00:00"
        }
    ]
}

Retrieving instrument data

All market data prices relate to an associated instrument. The instrument consists of various attributes, all of which are available to view using the Instrument endpoint.
If no input parameters are provided, all instruments that the calling service is entitled to see are returned. The Symbols input parameter can be used to return specific instruments.

Example Request (Python)

POST https://api.fastmarkets.com/marketdata/v1/Instruments HTTP/1.1
Host: api.fastmarkets.com
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ

Symbols=XL-CA-FRC.O
url = "https://api.fastmarkets.com/marketdata/v1/Instruments "
query  = {'symbols': 'XL-CA-FRC.O'}
headers = {
     'Authorization' : 'Bearer ' + accessToken.access_token, 
     'cache-control' : 'no-cache'
}
req = requests.request("GET", url, headers=headers, data = query)
priceRange = json.loads(req.content)

Example Response (JSON):

{
    "instruments": [
        {
            "symbol": "XL-CA-FRC.O",
            "description": "LME Copper Cash (Nov 25) Official USD/t",
            "descriptionShort": "LME CA Cash (Nov 25) Off",
            "type": {
                "code": "FUT",
                "label": "Future"
            },
            "source": {
                "code": "LME",
                "label": "LME"
            },
            "product": {
                "commodity": {
                    "code": "CU",
                    "label": "Copper"
                },
                "code": "CA",
                "label": "Copper Grade A"
            },
            "maturity": {
                "type": {
                    "code": "R",
                    "label": "Rolling"
                },
                "prompt": {
                    "code": "C",
                    "label": "Cash"
                },
                "date": "2025-11-13",
                "isExpired": false
            },
            "currency": {
                "code": "USD",
                "label": "US Dollar"
            },
            "unitOfMeasure": {
                "code": "t",
                "label": "Tonne"
            },
            "lotSize": 25,
            "delayClass": {
                "shortLabel": "Live",
                "code": "Live",
                "label": "Delay Class - Live"
            },
            "aggregations": [
                {
                    "name": "OHLCV",
                    "field": "ask",
                    "schema": "ohlcV-ask",
                    "periods": [
                        "P1D",
                        "P1W",
                        "P1M"
                    ]
                }
            ],
            "frequency": [
                "Daily"
            ]
        }
    ]
}

Exchange symbology

The Market Data symbology system aims to be consistent, extensible, unambiguous, machine-readable, unchanged when URL encoded, immediately identifiable, and visually consistent with physical price symbols. The system allows for the extension to cover new instruments and pricing facets not representing intrinsic properties.
All Market Data symbols are subject to the same formation rule:

Future single: {Exchange Code}-{Exchange Product}-FS{Prompt Month}{Prompt Year}

Future rolling: {Exchange Code}-{Exchange Product}-{FR/RR(future rolling/rolling prompt)}{M/Y(month/year)}

Examples:

  • XB-ZS-FSX25 (CBOT | Soybean | Future | Single | November | 2025)
  • XZ-LBR-FSZ23 (CME | Lumber | Future | Single | December | 2023)
  • XN-NG-FR11M (NYMEX | Natural Gas | Future | Rolling | 11M)
  • XZ-USDSOFR-RR1Y (CME | Term SOFR | Rolling Prompt | 1Y)

Below are the encoding tables for different exchanges:

Code Exchange
XL London Metal Exchange (LME)
XC Chicago Mercantile Exchange (CME group) COMEX
XN Chicago Mercantile Exchange (CME group) NYMEX
XS Shanghai Futures Exchange (SHFE)
XO non-exchange, Over The Counter (OTC)
XD Dalian Commodity Exchange (DCE)
XE Euronext
XB Chicago Mercantile Exchange (CME group) CBOT
XM Minneapolis Grain Exchange (MGX)
XA Mercado a Termino de Buenos Aires (MATBA)
XI ICE (exchange)
XZ

Chicago Mercantile Exchange (CME group) - CME

(a sub-brand of the CME group, confusingly called CME.  Including Lumber and Live Hogs)

Month codes:

Name Code
January F
February G
March H
April J
May K
June M
July N
August Q
September U
October V
November X
December Z

Technical API information

To find out more about our APIs please see API technical information 
 

Further help

If you have more questions or need further support please look at all the help content available on our Support Hub. If you can't find what you need and want to contact our support teams then Let’s get you some help. 

 

 

 

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Download and install the Excel Add-in
  • Decimal places setting when using Conversion
  • Excel Add-in release notes

Copyright 2025 – Fastmarkets.

Knowledge Base Software powered by Helpjuice

Expand