/v2/marketsCada mercado abierto para operar, cada uno con su instantánea actual: precio, cambio diario, límites de apalancamiento, comisiones y horario de negociación. Los mercados que están ocultos o excluidos de cotización se omiten.
Pasar accountId lee la instantánea desde el shard de negociación que aloja esa cuenta — el estado contra el que se valoraría una orden colocada en él.
Aquí no se comprueba la titularidad de la cuenta: solo selecciona qué shard responde.
https://api.upscale.tradeParámetros
accountIdstring · uuidopcionalCuenta de trader respecto a la cual resolver la lista de mercados: los límites de apalancamiento y la disponibilidad se devuelven tal como se aplican a esa cuenta. Omitida — se devuelven los valores predeterminados de toda la plataforma.
- pattern
- ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
00000000-0000-4000-8000-000000000000Ejemplos
curl --request GET 'https://api.upscale.trade/v2/markets' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY'const response = await fetch("https://api.upscale.trade/v2/markets", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
});
console.log(response.status, await response.text());import requests
response = requests.request(
"GET",
"https://api.upscale.trade/v2/markets",
headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
timeout=30,
)
print(response.status_code, response.text)Respuestas
No autorizado
Se superó el límite de velocidad de la clave de API (api_key_rate_limit_exceeded). Retry-After indica cuándo volver; el cuerpo incluye el bucket (read / write), la ventana que se activó, su límite y retryAt.
defaultRespuestaapplication/json
Array de MarketV2Response
idstring · uuidobligatorioIdentificador de mercado — el valor que la creación de orden toma como marketId.
- pattern
- ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
00000000-0000-4000-8000-000000000000configobjectobligatorioDescripción estática del mercado: activos, denominación y categoría.
Objeto · 11 campos
baseAssetstringobligatorioTicker del activo base — el valor que los endpoints por mercado toman como asset.
BTCquoteAssetstringobligatorioLos precios de los activos y los importes nocionales se cotizan en.
USDsettlementTokenstringobligatorioLas posiciones de activos se liquidan en.
USDtypestringobligatorioModelo de precios del mercado.
basenamestringobligatorioNombre para mostrar del mercado.
BTCdescriptionstringobligatorioDescripción de formato libre que se muestra en la aplicación.
Market descriptiontickerstringobligatorioEtiqueta completa del par.
BTC/USDimageLinkstringobligatorioIcono del mercado.
https://app.storm.tg/markets/btc.pngtagsstring[]obligatorioEtiquetas por las que la aplicación agrupa los mercados.
Elementos del array · string
string
"Crypto"Ver ejemplo
[
"Crypto"
]categorystring · enumobligatorioSi el mercado es cripto o un activo del mundo real — una cuenta puede estar limitada a uno de los dos.
"crypto" "rwa"cryptoprioritynumber · nullableobligatorioPeso de ordenación en la lista de mercados; el mayor va primero. Nulo cuando no está clasificado.
0Ver ejemplo
{
"baseAsset": "BTC",
"quoteAsset": "USD",
"settlementToken": "USD",
"type": "base",
"name": "BTC",
"description": "Market description",
"ticker": "BTC/USD",
"imageLink": "https://app.storm.tg/markets/btc.png",
"tags": [
"Crypto"
],
"category": "crypto",
"priority": 0
}stateobjectobligatorioEstado en vivo: precio del índice, financiación y la profundidad contra la que se fija el precio de una orden.
Objeto · 10 campos
indexPricestring · int32obligatorioPrecio de índice actual del mercado, fp9 en bruto — contra lo que se fijan los precios de las órdenes y se comparan los disparadores.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000blockTimestampnumberobligatorioCuándo se produjo esta instantánea de estado, marca de tiempo unix en milisegundos.
0fundingRatestring · int32obligatorioTasa de financiación del intervalo en curso, fp9 fracción sin procesar. Positivo significa que los largos pagan a los cortos.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000nextFundingAtnumberobligatorioCuándo se liquida la financiación a continuación, marca de tiempo unix en milisegundos.
0lastFundingAtnumber · nullableobligatorioCuándo se liquidó la financiación por última vez, marca de tiempo unix en milisegundos. Nulo antes de la primera liquidación.
0vpiSpreadstring · int32obligatorioSpread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiMarketDepthLongstring · int32obligatorioProfundidad disponible en el lado largo, fp9 en bruto. Las órdenes grandes en su contra mueven el precio de ejecución.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiMarketDepthShortstring · int32obligatorioProfundidad disponible en el lado corto, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiCoefficientLongstring · int32obligatorioCoeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiCoefficientShortstring · int32obligatorioCoeficiente de impacto en el precio aplicado a las órdenes cortas, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000Ver ejemplo
{
"indexPrice": "1000000000",
"blockTimestamp": 0,
"fundingRate": "1000000000",
"nextFundingAt": 0,
"lastFundingAt": 0,
"vpiSpread": "1000000000",
"vpiMarketDepthLong": "1000000000",
"vpiMarketDepthShort": "1000000000",
"vpiCoefficientLong": "1000000000",
"vpiCoefficientShort": "1000000000"
}settingsobjectobligatorioReglas de negociación del mercado: comisiones, ratios de margen y los límites máximos contra los que se verifica una orden.
Objeto · 15 campos
feestring · int32obligatorioTasa de comisión de negociación, fp9 fracción en bruto (1000000 = 0.1%).
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000minInitMarginRatiostring · int32obligatorioLa menor ratio de margen inicial que acepta el mercado, fp9 fracción bruta — el límite máximo de apalancamiento.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000initMarginRatiostring · int32obligatorioRatio de margen inicial predeterminado del mercado, fp9 fracción bruta.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maintenanceMarginRatiostring · int32obligatorioRatio de margen por debajo del cual se liquida una posición, fp9 fracción bruta.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxLeverageByAccountobjectobligatorioApalancamiento máximo permitido por tipo de cuenta, fp9 bruto, indexado por tipo de cuenta.
Propiedades adicionales
string · int32
"1000000000"- pattern
- ^(?:-?[1-9][0-9]*|0)$
Ver ejemplo
{
"key": "1000000000"
}spreadLimitstring · int32obligatorioEl mayor spread que cobrará el mercado, fp9 fracción bruta.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPriceImpactstring · int32obligatorioMayor impacto en el precio que puede causar una sola orden, fp9 fracción sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPriceSpreadstring · int32obligatorioMayor desviación permitida entre el precio de mercado y el precio del índice, fp9 fracción sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxOpenNotionalLongstring · int32obligatorioLímite máximo sobre el nocional abierto mantenido en largo en este mercado, fp9 sin procesar. 0 significa sin límite.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxOpenNotionalShortstring · int32obligatorioLímite máximo sobre el nocional abierto mantenido en corto en este mercado, fp9 sin procesar. 0 significa sin límite.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000minStopTriggerDistanceRatiostring · int32obligatorioDistancia mínima entre el precio actual y un disparador de stop, fp9 fracción sin procesar. Un disparador más cercano se empuja hasta esta distancia.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000isCloseOnlybooleanobligatorioSi el mercado solo acepta órdenes que cierran una posición.
trueisClosedbooleanobligatoriotrueisPausedbooleanobligatoriotrueisZeroSpreadbooleanobligatorioSi el mercado actualmente cotiza sin spread.
trueVer ejemplo
{
"fee": "1000000000",
"minInitMarginRatio": "1000000000",
"initMarginRatio": "1000000000",
"maintenanceMarginRatio": "1000000000",
"maxLeverageByAccount": {
"key": "1000000000"
},
"spreadLimit": "1000000000",
"maxPriceImpact": "1000000000",
"maxPriceSpread": "1000000000",
"maxOpenNotionalLong": "1000000000",
"maxOpenNotionalShort": "1000000000",
"minStopTriggerDistanceRatio": "1000000000",
"isCloseOnly": true,
"isClosed": true,
"isPaused": true,
"isZeroSpread": true
}changeobjectobligatorioPrecios de referencia para calcular las variaciones de precio de 1h, 4h y 24h.
Objeto · 3 campos
initialPricenumberobligatorioPrecio hace 24 horas, como número decimal — la base del cambio diario. 0 cuando no hay historial disponible.
0initialPrice1hnumberobligatorioPrecio hace una hora, como número decimal. 0 cuando no hay historial disponible.
0initialPrice4hnumberobligatorioPrecio de hace cuatro horas, como número decimal. 0 cuando no hay historial disponible.
0Ver ejemplo
{
"initialPrice": 0,
"initialPrice1h": 0,
"initialPrice4h": 0
}scheduleobject · nullableobligatorioSesiones de negociación del mercado. Nulo cuando cotiza sin interrupción.
Objeto · 6 campos
nextPauseAtnumberobligatorioInicio de la próxima pausa programada, marca de tiempo Unix en milisegundos. 0 cuando el mercado no tiene ninguna pausa, y 9007199254740991 cuando no hay ninguna programada con posterioridad a la actual.
0nextUnpauseAtnumberobligatorioFin de la pausa en la que se encuentra el mercado, o de la siguiente, marca de tiempo Unix en milisegundos. Mismas reglas de 0 y de centinela que en nextPauseAt.
0closestPauseAtnumberobligatorioMismo valor que nextPauseAt. Se mantiene por compatibilidad con versiones anteriores.
0closestUnpauseAtnumberobligatorioMismo valor que nextUnpauseAt. Se conserva por compatibilidad con versiones anteriores.
0pausedAtnumberobligatorioInicio de la pausa actualmente en curso, marca de tiempo unix en milisegundos. 0 cuando el mercado está operando.
0inPausebooleanobligatorioSi el mercado se encuentra dentro de una pausa programada en este momento. Las órdenes se rechazan mientras esté en ella.
trueVer ejemplo
{
"nextPauseAt": 0,
"nextUnpauseAt": 0,
"closestPauseAt": 0,
"closestUnpauseAt": 0,
"pausedAt": 0,
"inPause": true
}[
{
"id": "00000000-0000-4000-8000-000000000000",
"config": {
"baseAsset": "BTC",
"quoteAsset": "USD",
"settlementToken": "USD",
"type": "base",
"name": "BTC",
"description": "Market description",
"ticker": "BTC/USD",
"imageLink": "https://app.storm.tg/markets/btc.png",
"tags": [
"Crypto"
],
"category": "crypto",
"priority": 0
},
"state": {
"indexPrice": "1000000000",
"blockTimestamp": 0,
"fundingRate": "1000000000",
"nextFundingAt": 0,
"lastFundingAt": 0,
"vpiSpread": "1000000000",
"vpiMarketDepthLong": "1000000000",
"vpiMarketDepthShort": "1000000000",
"vpiCoefficientLong": "1000000000",
"vpiCoefficientShort": "1000000000"
},
"settings": {
"fee": "1000000000",
"minInitMarginRatio": "1000000000",
"initMarginRatio": "1000000000",
"maintenanceMarginRatio": "1000000000",
"maxLeverageByAccount": {
"key": "1000000000"
},
"spreadLimit": "1000000000",
"maxPriceImpact": "1000000000",
"maxPriceSpread": "1000000000",
"maxOpenNotionalLong": "1000000000",
"maxOpenNotionalShort": "1000000000",
"minStopTriggerDistanceRatio": "1000000000",
"isCloseOnly": true,
"isClosed": true,
"isPaused": true,
"isZeroSpread": true
},
"change": {
"initialPrice": 0,
"initialPrice1h": 0,
"initialPrice4h": 0
},
"schedule": {
"nextPauseAt": 0,
"nextUnpauseAt": 0,
"closestPauseAt": 0,
"closestUnpauseAt": 0,
"pausedAt": 0,
"inPause": true
}
}
]