API de datos de mercado Fastmarkets
Descubre cómo utilizar la API de datos de mercado de Fastmarkets para acceder a información actualizada y mejorar tus decisiones comerciales.
Table of Contents
API de datos de mercado
La API de Datos de Mercado proporciona valores de precios y datos de instrumentos asociados para precios de mercado: oficiales de la LME con retraso, precios de divisas de la LME, liquidaciones del grupo CME y de la SHFE. Todos los valores de precios están asociados a instrumentos que utilizan un símbolo como identificador.
Documentación técnica de la API
Para obtener más información sobre la especificación de esta API y probarla, consulte la página de documentación de la API (Swagger)
Puedes intentar ejecutar llamadas API reales allí con tus credenciales de la plataforma Fastmarkets . Solicita al equipo Fastmarkets que te proporcione acceso a Swagger.
Autenticación
Todas las API Fastmarkets requieren un token de acceso válido para recuperar datos con permisos. Para generar un token de acceso, consulte la guía de la API de autenticación con el alcance: fastmarkets.marketdata.api.
El token se añade a un parámetro del encabezado de autorización con el prefijo "Bearer". Por ejemplo:
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ
Recuperando un precio único
Para obtener el precio evaluado más reciente disponible para un instrumento específico, se utiliza el punto de conexión Prices. En este ejemplo, se utiliza el símbolo 'XL-CA-FRC.O' para obtener los últimos datos de precios disponibles (campos de oferta, precio medio y precio de venta) para 'LME Copper Cash Official'.
En la respuesta, se devuelven los valores de precio de oferta, precio medio y precio de demanda y la marca de tiempo del precio para los datos más recientes disponibles.
Solicitud de ejemplo (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,askurl = "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)Ejemplo de respuesta (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"
}
]
}Siempre se requiere un valor para los parámetros de símbolos y campos.
Recuperando múltiples precios
También es posible solicitar precios para múltiples instrumentos en una sola solicitud utilizando el Endpoint Prices.
En la solicitud de ejemplo a continuación, se han solicitado tres símbolos diferentes. El resultado será tres resultados de precios para todos los instrumentos.
Solicitud de ejemplo (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,askurl = "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)Ejemplo de respuesta (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,
. . .
}
]
}Recuperando un rango de precios
Usando el punto de conexión Prices/History, es posible recuperar una serie de precios durante un período específico. En este ejemplo, se realiza una solicitud para los precios de los últimos 6 días hasta la hora actual (al momento de escribir este artículo, las 10:18 del 3 de diciembre de 2025). La respuesta devuelve los precios en orden ascendente de fecha. No se proporcionan datos para el 29 ni el 30 de noviembre, ya que coincidieron con un fin de semana. La respuesta devuelve los precios en orden descendente de fecha.
Solicitud de ejemplo (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:0url = "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)Ejemplo de respuesta (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
}
]
}
]
}Otros campos para recuperar el historial de precios
Hay varios otros campos opcionales que se pueden utilizar para controlar el historial de precios solicitado:
| Nombre del campo | Descripción |
|---|---|
| startDate |
Fecha y hora especificadas en formato ISO-8601. Por ejemplo, 2025-09-10T10:00:00Z
Puede solicitar un rango de precios que funcionen hacia adelante o hacia atrás a partir de esta hora de inicio . Si no proporciona un valor, asumiremos una hora de inicio de ahora y usted podrá proporcionar solo un intervalo o recuento positivo para solicitar un rango hasta ahora . |
| interval |
Un intervalo de tiempo con el formato días:horas:minutos:segundos. Al especificar una hora de inicio, use un valor negativo para solicitar un rango hasta su hora de inicio. Si la hora de inicio se deja vacía, el intervalo debe ser positivo y se usa para solicitar un rango hasta ahora .
Debes especificar el intervalo o el recuento. |
| count |
El número de precios que desea recuperar. Al especificar una hora de inicio, utilice un valor negativo para solicitar precios anteriores a dicha hora. Si la hora de inicio se deja vacía, el valor de count debe ser positivo y se utiliza para solicitar un rango anterior a ahora .
Debes especificar el intervalo o el recuento. |
Tipos de datos de precios de mercado
La estructura de datos varía según la fuente y el tipo de contrato. Para obtener el precio correcto, se deben proporcionar los campos correspondientes en la solicitud de precio:
| Etiqueta de origen | Campos |
|---|---|
| CME, CBOT, NYMEX | asentamiento (settlement) |
| LME, OTC, (LBMA) | medio, oferta, demanda (mid, offer, bid) |
| Bolsa de Valores de Shanghái, COMEX | asentamiento, cierre (settlement/close) |
| OTC (.E) | ofertar, preguntar (bid/ask) |
| OTC | closelondon4pm, closeutcmmidnight |
Ejemplo de solicitud COMEX
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,closeEjemplo de respuesta (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"
}
]
}Ejemplo de solicitud de LBMA OTC
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,askEjemplo de respuesta (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"
}
]
}Ejemplo de solicitud OTC
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,closeutcmidnightEjemplo de respuesta (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"
}
]
}Ejemplo de solicitud OTC
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,askEjemplo de respuesta (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"
}
]
}Ejemplo de solicitud CBOT
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=settlementEjemplo de respuesta (JSON):
{
"instruments": [
{
"symbol": "XB-ZC-FSH26",
"settlement": 450.0,
"settlementTime": "2025-12-02T00:00:00.0000000+00:00"
}
]
}Recuperación de datos del instrumento
Todos los precios de los datos de mercado se relacionan con un instrumento asociado. Este instrumento consta de varios atributos, todos los cuales se pueden consultar mediante el endpoint "Instrument".
Si no se proporcionan parámetros de entrada, se devuelven todos los instrumentos que el servicio que realiza la llamada tiene derecho a ver. El parámetro de entrada "Symbols" puede usarse para devolver instrumentos específicos.
Solicitud de ejemplo (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.Ourl = "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)Ejemplo de respuesta (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"
]
}
]
}Simbología de intercambio
El sistema de simbología de Datos de Mercado busca ser consistente, extensible, inequívoco, legible por máquina, inalterable al codificarse en URL, inmediatamente identificable y visualmente consistente con los símbolos físicos de precios. El sistema permite la extensión para abarcar nuevos instrumentos y aspectos de precios que no representan propiedades intrínsecas.
Todos los símbolos de Market Data están sujetos a la misma regla de formación:
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)}
Ejemplos:
- XB-ZS-FSX25 (CBOT | Soja | Futuro | Único | Noviembre | 2025)
- XZ-LBR-FSZ23 (CME | Madera | Futuro | Sencillo | Diciembre | 2023)
- XN-NG-FR11M (NYMEX | Gas Natural | Futuro | Rodante | 11M)
- XZ-USDSOFR-RR1Y (CME | SOFR a plazo | Indicador móvil | 1 año)
A continuación se muestran las tablas de codificación para diferentes intercambios:
| Código | Intercambio |
|---|---|
| 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) |
Códigos de mes:
| Nombre | Código |
|---|---|
| January | F |
| February | G |
| March | H |
| April | J |
| May | K |
| June | M |
| July | N |
| August | Q |
| September | U |
| October | V |
| November | X |
| December | Z |
Información técnica de la API
Para obtener más información sobre nuestras API, consulte la información técnica de la API.
Más ayuda
Si tiene más preguntas o necesita más ayuda, consulte todo el contenido de ayuda disponible en nuestro Hub de Soporte.
Si no encuentra lo que necesita y desea contactar nuestros equipos de soporte, le ayudaremos.