/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 menor va primero, tal como se ordena GET /v2/markets. Nulo cuando no está clasificado, se ordena al final.
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 · fp9obligatorioPrecio 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 · fp9obligatorioTasa de financiación del intervalo en curso, fp9 en fracción sin procesar. El signo no selecciona un lado: toda posición, larga o corta, paga nocional × |tasa|.
- 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 · fp9obligatorioSpread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiMarketDepthLongstringobligatorioProfundidad disponible en el lado largo, en USD enteros — no fp9. Las órdenes grandes en su contra mueven el precio de ejecución.
- pattern
- ^-?[0-9]+(\.[0-9]+)?$
45604631.000000000vpiMarketDepthShortstringobligatorioProfundidad disponible en el lado corto, en USD enteros — no fp9.
- pattern
- ^-?[0-9]+(\.[0-9]+)?$
38744214.000000000vpiCoefficientLongstring · fp9obligatorioCoeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000vpiCoefficientShortstring · fp9obligatorioCoeficiente 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": "45604631.000000000",
"vpiMarketDepthShort": "38744214.000000000",
"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 · fp9obligatorioTasa de comisión de negociación, fp9 fracción en bruto (1000000 = 0.1%).
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000minInitMarginRatiostring · fp9obligatorioLa 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 · fp9obligatorioRatio de margen inicial predeterminado del mercado, fp9 fracción bruta.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maintenanceMarginRatiostring · fp9obligatorioRatio 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 · fp9
"1000000000"- pattern
- ^(?:-?[1-9][0-9]*|0)$
Ver ejemplo
{
"key": "1000000000"
}spreadLimitstring · fp9obligatorioEl mayor spread que cobrará el mercado, fp9 fracción bruta.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPriceImpactstring · fp9obligatorioMayor impacto en el precio sin el spread estático que una sola orden de apertura/aumento pueda causar, fp9 en fracción sin procesar; 0 significa sin límite.
- pattern
- ^(?:-?[1-9][0-9]*|0)$
1000000000maxPriceSpreadstring · fp9obligatorioMayor 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 · fp9obligatorioLí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 · fp9obligatorioLí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 · fp9obligatorioDistancia 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 es solo de cierre: POST /orders acepta solo take con triggerPrice: "0" (un cierre de mercado). Las nuevas órdenes de stop-loss, take-profit y trailing stop, las ediciones de órdenes y los cambios de margen se rechazan con market_close_only; se permite cancelar.
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": "45604631.000000000",
"vpiMarketDepthShort": "38744214.000000000",
"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
}
}
]