{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/es/developers/operations/getmarkets","title":"Obtener lista de mercados","description":"GET /v2/markets: Cada mercado abierto para operar, cada uno con su instantánea actual: precio, cambio diario, límites de apalancamiento, comisiones y horario de negociación.","kind":"api-operation","locale":"es","inLanguage":"es","translation":{"sourceLanguage":"en","targetLanguage":"es","status":"complete","translatedUnits":59,"totalUnits":59},"lastModified":"2026-09-28T20:05:09.350Z","revision":"3c2fd254d25c5fe88817d5c939afd24407f25862bdfb7b9dc8ab5105728c7abe","section":{"title":"Developers","url":"https://docs.upscale.trade/es/developers"},"representations":{"html":"https://docs.upscale.trade/es/developers/operations/getmarkets","markdown":"https://docs.upscale.trade/es/developers/operations/getmarkets.md","json":"https://docs.upscale.trade/es/developers/operations/getmarkets.json"},"translations":{"en":"https://docs.upscale.trade/developers/operations/getmarkets","ru":"https://docs.upscale.trade/ru/developers/operations/getmarkets","es":"https://docs.upscale.trade/es/developers/operations/getmarkets"},"operation":{"id":"getMarkets","method":"GET","path":"/v2/markets","summary":"Obtener lista de mercados","description":"Cada mercado abierto para operar, cada uno con su instantánea actual: precio, cambio diario, límites de apalancamiento, comisiones y horario de negociación.\nLos mercados que están ocultos o excluidos de cotización se omiten.\n\nPasar `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.\nAquí no se comprueba la titularidad de la cuenta: solo selecciona qué shard responde.","tags":["Config"],"tagLabels":{"Accounts":"Cuentas","Config":"Configuración","Trading":"Trading"},"deprecated":false,"parameters":[{"name":"accountId","location":"query","schema":{"type":"string · uuid","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","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})$"},"properties":[],"variants":[]},"type":"string · uuid","required":false,"description":"Cuenta 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.","example":"00000000-0000-4000-8000-000000000000"}],"bodies":[],"responses":[{"status":"401","description":"No autorizado","properties":[],"headers":[]},{"status":"429","description":"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`.","properties":[],"headers":[]},{"status":"default","description":"Respuesta","mediaType":"application/json","properties":[],"schema":{"type":"object[]","types":["array"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"reference":"#/components/schemas/MarketV2Response","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"id","type":"string · uuid","required":true,"description":"Identificador de mercado — el valor que la creación de orden toma como `marketId`.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Identificador de mercado — el valor que la creación de orden toma como `marketId`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","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})$"},"properties":[],"variants":[]}},{"name":"config","type":"object","required":true,"description":"Descripción estática del mercado: activos, denominación y categoría.","example":"{\n  \"baseAsset\": \"BTC\",\n  \"quoteAsset\": \"USD\",\n  \"settlementToken\": \"USD\",\n  \"type\": \"base\",\n  \"name\": \"BTC\",\n  \"description\": \"Market description\",\n  \"ticker\": \"BTC/USD\",\n  \"imageLink\": \"https://app.storm.tg/markets/btc.png\",\n  \"tags\": [\n    \"Crypto\"\n  ],\n  \"category\": \"crypto\",\n  \"priority\": 0\n}","schema":{"type":"object","types":["object"],"description":"Descripción estática del mercado: activos, denominación y categoría.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"baseAsset","type":"string","required":true,"description":"Ticker del activo base — el valor que los endpoints por mercado toman como `asset`.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Ticker del activo base — el valor que los endpoints por mercado toman como `asset`.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"quoteAsset","type":"string","required":true,"description":"Los precios de los activos y los importes nocionales se cotizan en.","example":"USD","schema":{"type":"string","types":["string"],"description":"Los precios de los activos y los importes nocionales se cotizan en.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"settlementToken","type":"string","required":true,"description":"Las posiciones de activos se liquidan en.","example":"USD","schema":{"type":"string","types":["string"],"description":"Las posiciones de activos se liquidan en.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"type","type":"string","required":true,"description":"Modelo de precios del mercado.","example":"base","schema":{"type":"string","types":["string"],"description":"Modelo de precios del mercado.","example":"base","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"name","type":"string","required":true,"description":"Nombre para mostrar del mercado.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Nombre para mostrar del mercado.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"description","type":"string","required":true,"description":"Descripción de formato libre que se muestra en la aplicación.","example":"Market description","schema":{"type":"string","types":["string"],"description":"Descripción de formato libre que se muestra en la aplicación.","example":"Market description","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"ticker","type":"string","required":true,"description":"Etiqueta completa del par.","example":"BTC/USD","schema":{"type":"string","types":["string"],"description":"Etiqueta completa del par.","example":"BTC/USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"imageLink","type":"string","required":true,"description":"Icono del mercado.","example":"https://app.storm.tg/markets/btc.png","schema":{"type":"string","types":["string"],"description":"Icono del mercado.","example":"https://app.storm.tg/markets/btc.png","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"tags","type":"string[]","required":true,"description":"Etiquetas por las que la aplicación agrupa los mercados.","example":"[\n  \"Crypto\"\n]","schema":{"type":"string[]","types":["array"],"description":"Etiquetas por las que la aplicación agrupa los mercados.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"string","types":["string"],"example":"Crypto","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"category","type":"string · enum","required":true,"description":"Si el mercado es cripto o un activo del mundo real — una cuenta puede estar limitada a uno de los dos.","example":"crypto","schema":{"type":"string · enum","types":["string"],"description":"Si el mercado es cripto o un activo del mundo real — una cuenta puede estar limitada a uno de los dos.","enum":["crypto","rwa"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"priority","type":"number · nullable","required":true,"description":"Peso de ordenación en la lista de mercados; el mayor va primero. Nulo cuando no está clasificado.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"Peso de ordenación en la lista de mercados; el mayor va primero. Nulo cuando no está clasificado.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"state","type":"object","required":true,"description":"Estado en vivo: precio del índice, financiación y la profundidad contra la que se fija el precio de una orden.","example":"{\n  \"indexPrice\": \"1000000000\",\n  \"blockTimestamp\": 0,\n  \"fundingRate\": \"1000000000\",\n  \"nextFundingAt\": 0,\n  \"lastFundingAt\": 0,\n  \"vpiSpread\": \"1000000000\",\n  \"vpiMarketDepthLong\": \"1000000000\",\n  \"vpiMarketDepthShort\": \"1000000000\",\n  \"vpiCoefficientLong\": \"1000000000\",\n  \"vpiCoefficientShort\": \"1000000000\"\n}","schema":{"type":"object","types":["object"],"description":"Estado en vivo: precio del índice, financiación y la profundidad contra la que se fija el precio de una orden.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"indexPrice","type":"string · int32","required":true,"description":"Precio de índice actual del mercado, fp9 en bruto — contra lo que se fijan los precios de las órdenes y se comparan los disparadores.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Precio de índice actual del mercado, fp9 en bruto — contra lo que se fijan los precios de las órdenes y se comparan los disparadores.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"blockTimestamp","type":"number","required":true,"description":"Cuándo se produjo esta instantánea de estado, marca de tiempo unix en milisegundos.","example":"0","schema":{"type":"number","types":["number"],"description":"Cuándo se produjo esta instantánea de estado, marca de tiempo unix en milisegundos.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"fundingRate","type":"string · int32","required":true,"description":"Tasa de financiación del intervalo en curso, fp9 fracción sin procesar. Positivo significa que los largos pagan a los cortos.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Tasa de financiación del intervalo en curso, fp9 fracción sin procesar. Positivo significa que los largos pagan a los cortos.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"nextFundingAt","type":"number","required":true,"description":"Cuándo se liquida la financiación a continuación, marca de tiempo unix en milisegundos.","example":"0","schema":{"type":"number","types":["number"],"description":"Cuándo se liquida la financiación a continuación, marca de tiempo unix en milisegundos.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"lastFundingAt","type":"number · nullable","required":true,"description":"Cuándo se liquidó la financiación por última vez, marca de tiempo unix en milisegundos. Nulo antes de la primera liquidación.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"Cuándo se liquidó la financiación por última vez, marca de tiempo unix en milisegundos. Nulo antes de la primera liquidación.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"vpiSpread","type":"string · int32","required":true,"description":"Spread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Spread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"vpiMarketDepthLong","type":"string · int32","required":true,"description":"Profundidad disponible en el lado largo, fp9 en bruto. Las órdenes grandes en su contra mueven el precio de ejecución.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Profundidad disponible en el lado largo, fp9 en bruto. Las órdenes grandes en su contra mueven el precio de ejecución.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"vpiMarketDepthShort","type":"string · int32","required":true,"description":"Profundidad disponible en el lado corto, fp9 en bruto.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Profundidad disponible en el lado corto, fp9 en bruto.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"vpiCoefficientLong","type":"string · int32","required":true,"description":"Coeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Coeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"vpiCoefficientShort","type":"string · int32","required":true,"description":"Coeficiente de impacto en el precio aplicado a las órdenes cortas, fp9 en bruto.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Coeficiente de impacto en el precio aplicado a las órdenes cortas, fp9 en bruto.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}}],"variants":[]}},{"name":"settings","type":"object","required":true,"description":"Reglas de negociación del mercado: comisiones, ratios de margen y los límites máximos contra los que se verifica una orden.","example":"{\n  \"fee\": \"1000000000\",\n  \"minInitMarginRatio\": \"1000000000\",\n  \"initMarginRatio\": \"1000000000\",\n  \"maintenanceMarginRatio\": \"1000000000\",\n  \"maxLeverageByAccount\": {\n    \"key\": \"1000000000\"\n  },\n  \"spreadLimit\": \"1000000000\",\n  \"maxPriceImpact\": \"1000000000\",\n  \"maxPriceSpread\": \"1000000000\",\n  \"maxOpenNotionalLong\": \"1000000000\",\n  \"maxOpenNotionalShort\": \"1000000000\",\n  \"minStopTriggerDistanceRatio\": \"1000000000\",\n  \"isCloseOnly\": true,\n  \"isClosed\": true,\n  \"isPaused\": true,\n  \"isZeroSpread\": true\n}","schema":{"type":"object","types":["object"],"description":"Reglas de negociación del mercado: comisiones, ratios de margen y los límites máximos contra los que se verifica una orden.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"fee","type":"string · int32","required":true,"description":"Tasa de comisión de negociación, fp9 fracción en bruto (`1000000` = 0.1%).","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Tasa de comisión de negociación, fp9 fracción en bruto (`1000000` = 0.1%).","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"minInitMarginRatio","type":"string · int32","required":true,"description":"La menor ratio de margen inicial que acepta el mercado, fp9 fracción bruta — el límite máximo de apalancamiento.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"La menor ratio de margen inicial que acepta el mercado, fp9 fracción bruta — el límite máximo de apalancamiento.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"initMarginRatio","type":"string · int32","required":true,"description":"Ratio de margen inicial predeterminado del mercado, fp9 fracción bruta.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ratio de margen inicial predeterminado del mercado, fp9 fracción bruta.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maintenanceMarginRatio","type":"string · int32","required":true,"description":"Ratio de margen por debajo del cual se liquida una posición, fp9 fracción bruta.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ratio de margen por debajo del cual se liquida una posición, fp9 fracción bruta.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxLeverageByAccount","type":"object","required":true,"description":"Apalancamiento máximo permitido por tipo de cuenta, fp9 bruto, indexado por tipo de cuenta.","example":"{\n  \"key\": \"1000000000\"\n}","schema":{"type":"object","types":["object"],"description":"Apalancamiento máximo permitido por tipo de cuenta, fp9 bruto, indexado por tipo de cuenta.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[],"additionalProperties":{"type":"string · int32","types":["string"],"example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}}},{"name":"spreadLimit","type":"string · int32","required":true,"description":"El mayor spread que cobrará el mercado, fp9 fracción bruta.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"El mayor spread que cobrará el mercado, fp9 fracción bruta.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxPriceImpact","type":"string · int32","required":true,"description":"Mayor impacto en el precio que puede causar una sola orden, fp9 fracción sin procesar.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Mayor impacto en el precio que puede causar una sola orden, fp9 fracción sin procesar.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxPriceSpread","type":"string · int32","required":true,"description":"Mayor desviación permitida entre el precio de mercado y el precio del índice, fp9 fracción sin procesar.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Mayor desviación permitida entre el precio de mercado y el precio del índice, fp9 fracción sin procesar.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxOpenNotionalLong","type":"string · int32","required":true,"description":"Límite máximo sobre el nocional abierto mantenido en largo en este mercado, fp9 sin procesar. `0` significa sin límite.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Límite máximo sobre el nocional abierto mantenido en largo en este mercado, fp9 sin procesar. `0` significa sin límite.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"maxOpenNotionalShort","type":"string · int32","required":true,"description":"Límite máximo sobre el nocional abierto mantenido en corto en este mercado, fp9 sin procesar. `0` significa sin límite.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Límite máximo sobre el nocional abierto mantenido en corto en este mercado, fp9 sin procesar. `0` significa sin límite.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"minStopTriggerDistanceRatio","type":"string · int32","required":true,"description":"Distancia 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.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Distancia 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.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"isCloseOnly","type":"boolean","required":true,"description":"Si el mercado solo acepta órdenes que cierran una posición.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Si el mercado solo acepta órdenes que cierran una posición.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"isClosed","type":"boolean","required":true,"example":"true","schema":{"type":"boolean","types":["boolean"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"isPaused","type":"boolean","required":true,"example":"true","schema":{"type":"boolean","types":["boolean"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"isZeroSpread","type":"boolean","required":true,"description":"Si el mercado actualmente cotiza sin spread.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Si el mercado actualmente cotiza sin spread.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"change","type":"object","required":true,"description":"Precios de referencia para calcular las variaciones de precio de 1h, 4h y 24h.","example":"{\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}","schema":{"type":"object","types":["object"],"description":"Precios de referencia para calcular las variaciones de precio de 1h, 4h y 24h.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"initialPrice","type":"number","required":true,"description":"Precio hace 24 horas, como número decimal — la base del cambio diario. `0` cuando no hay historial disponible.","example":"0","schema":{"type":"number","types":["number"],"description":"Precio hace 24 horas, como número decimal — la base del cambio diario. `0` cuando no hay historial disponible.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice1h","type":"number","required":true,"description":"Precio hace una hora, como número decimal. `0` cuando no hay historial disponible.","example":"0","schema":{"type":"number","types":["number"],"description":"Precio hace una hora, como número decimal. `0` cuando no hay historial disponible.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice4h","type":"number","required":true,"description":"Precio de hace cuatro horas, como número decimal. `0` cuando no hay historial disponible.","example":"0","schema":{"type":"number","types":["number"],"description":"Precio de hace cuatro horas, como número decimal. `0` cuando no hay historial disponible.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"schedule","type":"object · nullable","required":true,"description":"Sesiones de negociación del mercado. Nulo cuando cotiza sin interrupción.","example":"{\n  \"nextPauseAt\": 0,\n  \"nextUnpauseAt\": 0,\n  \"closestPauseAt\": 0,\n  \"closestUnpauseAt\": 0,\n  \"pausedAt\": 0,\n  \"inPause\": true\n}","schema":{"type":"object · nullable","types":["object"],"description":"Sesiones de negociación del mercado. Nulo cuando cotiza sin interrupción.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"nextPauseAt","type":"number","required":true,"description":"Inicio 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.","example":"0","schema":{"type":"number","types":["number"],"description":"Inicio 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.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"nextUnpauseAt","type":"number","required":true,"description":"Fin 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`.","example":"0","schema":{"type":"number","types":["number"],"description":"Fin 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`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestPauseAt","type":"number","required":true,"description":"Mismo valor que `nextPauseAt`. Se mantiene por compatibilidad con versiones anteriores.","example":"0","schema":{"type":"number","types":["number"],"description":"Mismo valor que `nextPauseAt`. Se mantiene por compatibilidad con versiones anteriores.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestUnpauseAt","type":"number","required":true,"description":"Mismo valor que `nextUnpauseAt`. Se conserva por compatibilidad con versiones anteriores.","example":"0","schema":{"type":"number","types":["number"],"description":"Mismo valor que `nextUnpauseAt`. Se conserva por compatibilidad con versiones anteriores.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"pausedAt","type":"number","required":true,"description":"Inicio de la pausa actualmente en curso, marca de tiempo unix en milisegundos. `0` cuando el mercado está operando.","example":"0","schema":{"type":"number","types":["number"],"description":"Inicio de la pausa actualmente en curso, marca de tiempo unix en milisegundos. `0` cuando el mercado está operando.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"inPause","type":"boolean","required":true,"description":"Si el mercado se encuentra dentro de una pausa programada en este momento. Las órdenes se rechazan mientras esté en ella.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Si el mercado se encuentra dentro de una pausa programada en este momento. Las órdenes se rechazan mientras esté en ella.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}}],"variants":[]},"variants":[]},"example":"[\n  {\n    \"id\": \"00000000-0000-4000-8000-000000000000\",\n    \"config\": {\n      \"baseAsset\": \"BTC\",\n      \"quoteAsset\": \"USD\",\n      \"settlementToken\": \"USD\",\n      \"type\": \"base\",\n      \"name\": \"BTC\",\n      \"description\": \"Market description\",\n      \"ticker\": \"BTC/USD\",\n      \"imageLink\": \"https://app.storm.tg/markets/btc.png\",\n      \"tags\": [\n        \"Crypto\"\n      ],\n      \"category\": \"crypto\",\n      \"priority\": 0\n    },\n    \"state\": {\n      \"indexPrice\": \"1000000000\",\n      \"blockTimestamp\": 0,\n      \"fundingRate\": \"1000000000\",\n      \"nextFundingAt\": 0,\n      \"lastFundingAt\": 0,\n      \"vpiSpread\": \"1000000000\",\n      \"vpiMarketDepthLong\": \"1000000000\",\n      \"vpiMarketDepthShort\": \"1000000000\",\n      \"vpiCoefficientLong\": \"1000000000\",\n      \"vpiCoefficientShort\": \"1000000000\"\n    },\n    \"settings\": {\n      \"fee\": \"1000000000\",\n      \"minInitMarginRatio\": \"1000000000\",\n      \"initMarginRatio\": \"1000000000\",\n      \"maintenanceMarginRatio\": \"1000000000\",\n      \"maxLeverageByAccount\": {\n        \"key\": \"1000000000\"\n      },\n      \"spreadLimit\": \"1000000000\",\n      \"maxPriceImpact\": \"1000000000\",\n      \"maxPriceSpread\": \"1000000000\",\n      \"maxOpenNotionalLong\": \"1000000000\",\n      \"maxOpenNotionalShort\": \"1000000000\",\n      \"minStopTriggerDistanceRatio\": \"1000000000\",\n      \"isCloseOnly\": true,\n      \"isClosed\": true,\n      \"isPaused\": true,\n      \"isZeroSpread\": true\n    },\n    \"change\": {\n      \"initialPrice\": 0,\n      \"initialPrice1h\": 0,\n      \"initialPrice4h\": 0\n    },\n    \"schedule\": {\n      \"nextPauseAt\": 0,\n      \"nextUnpauseAt\": 0,\n      \"closestPauseAt\": 0,\n      \"closestUnpauseAt\": 0,\n      \"pausedAt\": 0,\n      \"inPause\": true\n    }\n  }\n]","headers":[]}],"security":[{"name":"bearer","type":"http · bearer","description":"Clave de API personal, con el prefijo `usk_`.","required":true,"scopes":[]}],"codeSamples":[{"label":"cURL","language":"bash","source":"curl --request GET 'https://api.upscale.trade/v2/markets' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'"},{"label":"JavaScript","language":"javascript","source":"const response = await fetch(\"https://api.upscale.trade/v2/markets\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());"},{"label":"Python","language":"python","source":"import requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/v2/markets\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)"}]},"breadcrumbs":[{"title":"Qué es el prop trading","url":"https://docs.upscale.trade/es"},{"title":"Developers","url":"https://docs.upscale.trade/es/developers"},{"title":"Obtener lista de mercados","url":"https://docs.upscale.trade/es/developers/operations/getmarkets"}],"headings":[{"depth":2,"id":"authorization","title":"Autorización"},{"depth":2,"id":"parameters","title":"Parámetros"},{"depth":2,"id":"examples","title":"Ejemplos"},{"depth":2,"id":"responses","title":"Respuestas"}],"markdown":"# Obtener lista de mercados\n\n`GET /v2/markets`\n\nCada mercado abierto para operar, cada uno con su instantánea actual: precio, cambio diario, límites de apalancamiento, comisiones y horario de negociación.\nLos mercados que están ocultos o excluidos de cotización se omiten.\n\nPasar `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.\nAquí no se comprueba la titularidad de la cuenta: solo selecciona qué shard responde.\n\n<a id=\"authorization\"></a>\n\n## Autorización\n\nbearer: http · bearer (obligatorio). Clave de API personal, con el prefijo `usk_`.\n\n<a id=\"parameters\"></a>\n\n## Parámetros\n\n- query: accountId (string · uuid; opcional). Cuenta 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.\n\nTipo: string · uuid\n\nformat: uuid\n\npattern: ^([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})$\n\n<a id=\"example-curl\"></a>\n\n## Ejemplo · cURL\n\n```bash\ncurl --request GET 'https://api.upscale.trade/v2/markets' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n<a id=\"example-javascript\"></a>\n\n## Ejemplo · JavaScript\n\n```javascript\nconst response = await fetch(\"https://api.upscale.trade/v2/markets\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());\n```\n\n<a id=\"example-python\"></a>\n\n## Ejemplo · Python\n\n```python\nimport requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/v2/markets\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)\n```\n\n<a id=\"response-401\"></a>\n\n## Respuesta 401\n\n**401**  — No autorizado\n\n<a id=\"response-429\"></a>\n\n## Respuesta 429\n\n**429**  — 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`.\n\n<a id=\"response-default-marketv2response\"></a>\n\n## Respuesta default · MarketV2Response\n\n**default** application/json — Respuesta\n\nTipo: object[]\n\n[]Esquema: MarketV2Response\n\n[]Tipo: object\n\n[]Campos obligatorios: id, config, state, settings, change, schedule\n\n[]Tipos de campos obligatorios: id (string · uuid; obligatorio), config (object; obligatorio), state (object; obligatorio), settings (object; obligatorio), change (object; obligatorio), schedule (object · nullable; obligatorio)\n\n- []id (string · uuid; obligatorio)\n\n[]id ejemplo: 00000000-0000-4000-8000-000000000000\n\n[]id.Tipo: string · uuid\n\n[]id.Identificador de mercado — el valor que la creación de orden toma como `marketId`.\n\n[]id.format: uuid\n\n[]id.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})$\n\n- []config (object; obligatorio)\n\n[]config ejemplo: {\n  \"baseAsset\": \"BTC\",\n  \"quoteAsset\": \"USD\",\n  \"settlementToken\": \"USD\",\n  \"type\": \"base\",\n  \"name\": \"BTC\",\n  \"description\": \"Market description\",\n  \"ticker\": \"BTC/USD\",\n  \"imageLink\": \"https://app.storm.tg/markets/btc.png\",\n  \"tags\": [\n    \"Crypto\"\n  ],\n  \"category\": \"crypto\",\n  \"priority\": 0\n}\n\n[]config.Tipo: object\n\n[]config.Campos obligatorios: baseAsset, quoteAsset, settlementToken, type, name, description, ticker, imageLink, tags, category, priority\n\n[]config.Tipos de campos obligatorios: baseAsset (string; obligatorio), quoteAsset (string; obligatorio), settlementToken (string; obligatorio), type (string; obligatorio), name (string; obligatorio), description (string; obligatorio), ticker (string; obligatorio), imageLink (string; obligatorio), tags (string[]; obligatorio), category (string · enum; obligatorio), priority (number · nullable; obligatorio)\n\n[]config.Descripción estática del mercado: activos, denominación y categoría.\n\n- []config.baseAsset (string; obligatorio)\n\n[]config.baseAsset ejemplo: BTC\n\n[]config.baseAsset.Tipo: string\n\n[]config.baseAsset.Ticker del activo base — el valor que los endpoints por mercado toman como `asset`.\n\n- []config.quoteAsset (string; obligatorio)\n\n[]config.quoteAsset ejemplo: USD\n\n[]config.quoteAsset.Tipo: string\n\n[]config.quoteAsset.Los precios de los activos y los importes nocionales se cotizan en.\n\n- []config.settlementToken (string; obligatorio)\n\n[]config.settlementToken ejemplo: USD\n\n[]config.settlementToken.Tipo: string\n\n[]config.settlementToken.Las posiciones de activos se liquidan en.\n\n- []config.type (string; obligatorio)\n\n[]config.type ejemplo: base\n\n[]config.type.Tipo: string\n\n[]config.type.Modelo de precios del mercado.\n\n- []config.name (string; obligatorio)\n\n[]config.name ejemplo: BTC\n\n[]config.name.Tipo: string\n\n[]config.name.Nombre para mostrar del mercado.\n\n- []config.description (string; obligatorio)\n\n[]config.description ejemplo: Market description\n\n[]config.description.Tipo: string\n\n[]config.description.Descripción de formato libre que se muestra en la aplicación.\n\n- []config.ticker (string; obligatorio)\n\n[]config.ticker ejemplo: BTC/USD\n\n[]config.ticker.Tipo: string\n\n[]config.ticker.Etiqueta completa del par.\n\n- []config.imageLink (string; obligatorio)\n\n[]config.imageLink ejemplo: https://app.storm.tg/markets/btc.png\n\n[]config.imageLink.Tipo: string\n\n[]config.imageLink.Icono del mercado.\n\n- []config.tags (string[]; obligatorio)\n\n[]config.tags ejemplo: [\n  \"Crypto\"\n]\n\n[]config.tags.Tipo: string[]\n\n[]config.tags.Etiquetas por las que la aplicación agrupa los mercados.\n\n[]config.tags.[]Tipo: string\n\n- []config.category (string · enum; obligatorio)\n\n[]config.category ejemplo: crypto\n\n[]config.category.Tipo: string · enum\n\n[]config.category.Si el mercado es cripto o un activo del mundo real — una cuenta puede estar limitada a uno de los dos.\n\n[]config.category.Valores permitidos: [\"crypto\",\"rwa\"]\n\n- []config.priority (number · nullable; obligatorio)\n\n[]config.priority ejemplo: 0\n\n[]config.priority.Tipo: number · nullable\n\n[]config.priority.Peso de ordenación en la lista de mercados; el mayor va primero. Nulo cuando no está clasificado.\n\n- []state (object; obligatorio)\n\n[]state ejemplo: {\n  \"indexPrice\": \"1000000000\",\n  \"blockTimestamp\": 0,\n  \"fundingRate\": \"1000000000\",\n  \"nextFundingAt\": 0,\n  \"lastFundingAt\": 0,\n  \"vpiSpread\": \"1000000000\",\n  \"vpiMarketDepthLong\": \"1000000000\",\n  \"vpiMarketDepthShort\": \"1000000000\",\n  \"vpiCoefficientLong\": \"1000000000\",\n  \"vpiCoefficientShort\": \"1000000000\"\n}\n\n[]state.Tipo: object\n\n[]state.Campos obligatorios: indexPrice, blockTimestamp, fundingRate, nextFundingAt, lastFundingAt, vpiSpread, vpiMarketDepthLong, vpiMarketDepthShort, vpiCoefficientLong, vpiCoefficientShort\n\n[]state.Tipos de campos obligatorios: indexPrice (string · int32; obligatorio), blockTimestamp (number; obligatorio), fundingRate (string · int32; obligatorio), nextFundingAt (number; obligatorio), lastFundingAt (number · nullable; obligatorio), vpiSpread (string · int32; obligatorio), vpiMarketDepthLong (string · int32; obligatorio), vpiMarketDepthShort (string · int32; obligatorio), vpiCoefficientLong (string · int32; obligatorio), vpiCoefficientShort (string · int32; obligatorio)\n\n[]state.Estado en vivo: precio del índice, financiación y la profundidad contra la que se fija el precio de una orden.\n\n- []state.indexPrice (string · int32; obligatorio)\n\n[]state.indexPrice ejemplo: 1000000000\n\n[]state.indexPrice.Tipo: string · int32\n\n[]state.indexPrice.Precio de índice actual del mercado, fp9 en bruto — contra lo que se fijan los precios de las órdenes y se comparan los disparadores.\n\n[]state.indexPrice.format: int32\n\n[]state.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.blockTimestamp (number; obligatorio)\n\n[]state.blockTimestamp ejemplo: 0\n\n[]state.blockTimestamp.Tipo: number\n\n[]state.blockTimestamp.Cuándo se produjo esta instantánea de estado, marca de tiempo unix en milisegundos.\n\n- []state.fundingRate (string · int32; obligatorio)\n\n[]state.fundingRate ejemplo: 1000000000\n\n[]state.fundingRate.Tipo: string · int32\n\n[]state.fundingRate.Tasa de financiación del intervalo en curso, fp9 fracción sin procesar. Positivo significa que los largos pagan a los cortos.\n\n[]state.fundingRate.format: int32\n\n[]state.fundingRate.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.nextFundingAt (number; obligatorio)\n\n[]state.nextFundingAt ejemplo: 0\n\n[]state.nextFundingAt.Tipo: number\n\n[]state.nextFundingAt.Cuándo se liquida la financiación a continuación, marca de tiempo unix en milisegundos.\n\n- []state.lastFundingAt (number · nullable; obligatorio)\n\n[]state.lastFundingAt ejemplo: 0\n\n[]state.lastFundingAt.Tipo: number · nullable\n\n[]state.lastFundingAt.Cuándo se liquidó la financiación por última vez, marca de tiempo unix en milisegundos. Nulo antes de la primera liquidación.\n\n- []state.vpiSpread (string · int32; obligatorio)\n\n[]state.vpiSpread ejemplo: 1000000000\n\n[]state.vpiSpread.Tipo: string · int32\n\n[]state.vpiSpread.Spread actual cobrado sobre el precio del índice, fp9 fracción sin procesar.\n\n[]state.vpiSpread.format: int32\n\n[]state.vpiSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthLong (string · int32; obligatorio)\n\n[]state.vpiMarketDepthLong ejemplo: 1000000000\n\n[]state.vpiMarketDepthLong.Tipo: string · int32\n\n[]state.vpiMarketDepthLong.Profundidad disponible en el lado largo, fp9 en bruto. Las órdenes grandes en su contra mueven el precio de ejecución.\n\n[]state.vpiMarketDepthLong.format: int32\n\n[]state.vpiMarketDepthLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthShort (string · int32; obligatorio)\n\n[]state.vpiMarketDepthShort ejemplo: 1000000000\n\n[]state.vpiMarketDepthShort.Tipo: string · int32\n\n[]state.vpiMarketDepthShort.Profundidad disponible en el lado corto, fp9 en bruto.\n\n[]state.vpiMarketDepthShort.format: int32\n\n[]state.vpiMarketDepthShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientLong (string · int32; obligatorio)\n\n[]state.vpiCoefficientLong ejemplo: 1000000000\n\n[]state.vpiCoefficientLong.Tipo: string · int32\n\n[]state.vpiCoefficientLong.Coeficiente de impacto en el precio aplicado a las órdenes largas, fp9 en bruto.\n\n[]state.vpiCoefficientLong.format: int32\n\n[]state.vpiCoefficientLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientShort (string · int32; obligatorio)\n\n[]state.vpiCoefficientShort ejemplo: 1000000000\n\n[]state.vpiCoefficientShort.Tipo: string · int32\n\n[]state.vpiCoefficientShort.Coeficiente de impacto en el precio aplicado a las órdenes cortas, fp9 en bruto.\n\n[]state.vpiCoefficientShort.format: int32\n\n[]state.vpiCoefficientShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings (object; obligatorio)\n\n[]settings ejemplo: {\n  \"fee\": \"1000000000\",\n  \"minInitMarginRatio\": \"1000000000\",\n  \"initMarginRatio\": \"1000000000\",\n  \"maintenanceMarginRatio\": \"1000000000\",\n  \"maxLeverageByAccount\": {\n    \"key\": \"1000000000\"\n  },\n  \"spreadLimit\": \"1000000000\",\n  \"maxPriceImpact\": \"1000000000\",\n  \"maxPriceSpread\": \"1000000000\",\n  \"maxOpenNotionalLong\": \"1000000000\",\n  \"maxOpenNotionalShort\": \"1000000000\",\n  \"minStopTriggerDistanceRatio\": \"1000000000\",\n  \"isCloseOnly\": true,\n  \"isClosed\": true,\n  \"isPaused\": true,\n  \"isZeroSpread\": true\n}\n\n[]settings.Tipo: object\n\n[]settings.Campos obligatorios: fee, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, maxLeverageByAccount, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotionalLong, maxOpenNotionalShort, minStopTriggerDistanceRatio, isCloseOnly, isClosed, isPaused, isZeroSpread\n\n[]settings.Tipos de campos obligatorios: fee (string · int32; obligatorio), minInitMarginRatio (string · int32; obligatorio), initMarginRatio (string · int32; obligatorio), maintenanceMarginRatio (string · int32; obligatorio), maxLeverageByAccount (object; obligatorio), spreadLimit (string · int32; obligatorio), maxPriceImpact (string · int32; obligatorio), maxPriceSpread (string · int32; obligatorio), maxOpenNotionalLong (string · int32; obligatorio), maxOpenNotionalShort (string · int32; obligatorio), minStopTriggerDistanceRatio (string · int32; obligatorio), isCloseOnly (boolean; obligatorio), isClosed (boolean; obligatorio), isPaused (boolean; obligatorio), isZeroSpread (boolean; obligatorio)\n\n[]settings.Reglas de negociación del mercado: comisiones, ratios de margen y los límites máximos contra los que se verifica una orden.\n\n- []settings.fee (string · int32; obligatorio)\n\n[]settings.fee ejemplo: 1000000000\n\n[]settings.fee.Tipo: string · int32\n\n[]settings.fee.Tasa de comisión de negociación, fp9 fracción en bruto (`1000000` = 0.1%).\n\n[]settings.fee.format: int32\n\n[]settings.fee.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.minInitMarginRatio (string · int32; obligatorio)\n\n[]settings.minInitMarginRatio ejemplo: 1000000000\n\n[]settings.minInitMarginRatio.Tipo: string · int32\n\n[]settings.minInitMarginRatio.La menor ratio de margen inicial que acepta el mercado, fp9 fracción bruta — el límite máximo de apalancamiento.\n\n[]settings.minInitMarginRatio.format: int32\n\n[]settings.minInitMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.initMarginRatio (string · int32; obligatorio)\n\n[]settings.initMarginRatio ejemplo: 1000000000\n\n[]settings.initMarginRatio.Tipo: string · int32\n\n[]settings.initMarginRatio.Ratio de margen inicial predeterminado del mercado, fp9 fracción bruta.\n\n[]settings.initMarginRatio.format: int32\n\n[]settings.initMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maintenanceMarginRatio (string · int32; obligatorio)\n\n[]settings.maintenanceMarginRatio ejemplo: 1000000000\n\n[]settings.maintenanceMarginRatio.Tipo: string · int32\n\n[]settings.maintenanceMarginRatio.Ratio de margen por debajo del cual se liquida una posición, fp9 fracción bruta.\n\n[]settings.maintenanceMarginRatio.format: int32\n\n[]settings.maintenanceMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxLeverageByAccount (object; obligatorio)\n\n[]settings.maxLeverageByAccount ejemplo: {\n  \"key\": \"1000000000\"\n}\n\n[]settings.maxLeverageByAccount.Tipo: object\n\n[]settings.maxLeverageByAccount.Apalancamiento máximo permitido por tipo de cuenta, fp9 bruto, indexado por tipo de cuenta.\n\n[]settings.maxLeverageByAccount.*.Tipo: string · int32\n\n[]settings.maxLeverageByAccount.*.Ejemplo: \"1000000000\"\n\n[]settings.maxLeverageByAccount.*.format: int32\n\n[]settings.maxLeverageByAccount.*.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.spreadLimit (string · int32; obligatorio)\n\n[]settings.spreadLimit ejemplo: 1000000000\n\n[]settings.spreadLimit.Tipo: string · int32\n\n[]settings.spreadLimit.El mayor spread que cobrará el mercado, fp9 fracción bruta.\n\n[]settings.spreadLimit.format: int32\n\n[]settings.spreadLimit.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceImpact (string · int32; obligatorio)\n\n[]settings.maxPriceImpact ejemplo: 1000000000\n\n[]settings.maxPriceImpact.Tipo: string · int32\n\n[]settings.maxPriceImpact.Mayor impacto en el precio que puede causar una sola orden, fp9 fracción sin procesar.\n\n[]settings.maxPriceImpact.format: int32\n\n[]settings.maxPriceImpact.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceSpread (string · int32; obligatorio)\n\n[]settings.maxPriceSpread ejemplo: 1000000000\n\n[]settings.maxPriceSpread.Tipo: string · int32\n\n[]settings.maxPriceSpread.Mayor desviación permitida entre el precio de mercado y el precio del índice, fp9 fracción sin procesar.\n\n[]settings.maxPriceSpread.format: int32\n\n[]settings.maxPriceSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalLong (string · int32; obligatorio)\n\n[]settings.maxOpenNotionalLong ejemplo: 1000000000\n\n[]settings.maxOpenNotionalLong.Tipo: string · int32\n\n[]settings.maxOpenNotionalLong.Límite máximo sobre el nocional abierto mantenido en largo en este mercado, fp9 sin procesar. `0` significa sin límite.\n\n[]settings.maxOpenNotionalLong.format: int32\n\n[]settings.maxOpenNotionalLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalShort (string · int32; obligatorio)\n\n[]settings.maxOpenNotionalShort ejemplo: 1000000000\n\n[]settings.maxOpenNotionalShort.Tipo: string · int32\n\n[]settings.maxOpenNotionalShort.Límite máximo sobre el nocional abierto mantenido en corto en este mercado, fp9 sin procesar. `0` significa sin límite.\n\n[]settings.maxOpenNotionalShort.format: int32\n\n[]settings.maxOpenNotionalShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.minStopTriggerDistanceRatio (string · int32; obligatorio)\n\n[]settings.minStopTriggerDistanceRatio ejemplo: 1000000000\n\n[]settings.minStopTriggerDistanceRatio.Tipo: string · int32\n\n[]settings.minStopTriggerDistanceRatio.Distancia 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.\n\n[]settings.minStopTriggerDistanceRatio.format: int32\n\n[]settings.minStopTriggerDistanceRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.isCloseOnly (boolean; obligatorio)\n\n[]settings.isCloseOnly ejemplo: true\n\n[]settings.isCloseOnly.Tipo: boolean\n\n[]settings.isCloseOnly.Si el mercado solo acepta órdenes que cierran una posición.\n\n- []settings.isClosed (boolean; obligatorio)\n\n[]settings.isClosed ejemplo: true\n\n[]settings.isClosed.Tipo: boolean\n\n- []settings.isPaused (boolean; obligatorio)\n\n[]settings.isPaused ejemplo: true\n\n[]settings.isPaused.Tipo: boolean\n\n- []settings.isZeroSpread (boolean; obligatorio)\n\n[]settings.isZeroSpread ejemplo: true\n\n[]settings.isZeroSpread.Tipo: boolean\n\n[]settings.isZeroSpread.Si el mercado actualmente cotiza sin spread.\n\n- []change (object; obligatorio)\n\n[]change ejemplo: {\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}\n\n[]change.Tipo: object\n\n[]change.Campos obligatorios: initialPrice, initialPrice1h, initialPrice4h\n\n[]change.Tipos de campos obligatorios: initialPrice (number; obligatorio), initialPrice1h (number; obligatorio), initialPrice4h (number; obligatorio)\n\n[]change.Precios de referencia para calcular las variaciones de precio de 1h, 4h y 24h.\n\n- []change.initialPrice (number; obligatorio)\n\n[]change.initialPrice ejemplo: 0\n\n[]change.initialPrice.Tipo: number\n\n[]change.initialPrice.Precio hace 24 horas, como número decimal — la base del cambio diario. `0` cuando no hay historial disponible.\n\n- []change.initialPrice1h (number; obligatorio)\n\n[]change.initialPrice1h ejemplo: 0\n\n[]change.initialPrice1h.Tipo: number\n\n[]change.initialPrice1h.Precio hace una hora, como número decimal. `0` cuando no hay historial disponible.\n\n- []change.initialPrice4h (number; obligatorio)\n\n[]change.initialPrice4h ejemplo: 0\n\n[]change.initialPrice4h.Tipo: number\n\n[]change.initialPrice4h.Precio de hace cuatro horas, como número decimal. `0` cuando no hay historial disponible.\n\n- []schedule (object · nullable; obligatorio)\n\n[]schedule ejemplo: {\n  \"nextPauseAt\": 0,\n  \"nextUnpauseAt\": 0,\n  \"closestPauseAt\": 0,\n  \"closestUnpauseAt\": 0,\n  \"pausedAt\": 0,\n  \"inPause\": true\n}\n\n[]schedule.Tipo: object · nullable\n\n[]schedule.Campos obligatorios: nextPauseAt, nextUnpauseAt, closestPauseAt, closestUnpauseAt, pausedAt, inPause\n\n[]schedule.Tipos de campos obligatorios: nextPauseAt (number; obligatorio), nextUnpauseAt (number; obligatorio), closestPauseAt (number; obligatorio), closestUnpauseAt (number; obligatorio), pausedAt (number; obligatorio), inPause (boolean; obligatorio)\n\n[]schedule.Sesiones de negociación del mercado. Nulo cuando cotiza sin interrupción.\n\n- []schedule.nextPauseAt (number; obligatorio)\n\n[]schedule.nextPauseAt ejemplo: 0\n\n[]schedule.nextPauseAt.Tipo: number\n\n[]schedule.nextPauseAt.Inicio 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.\n\n- []schedule.nextUnpauseAt (number; obligatorio)\n\n[]schedule.nextUnpauseAt ejemplo: 0\n\n[]schedule.nextUnpauseAt.Tipo: number\n\n[]schedule.nextUnpauseAt.Fin 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`.\n\n- []schedule.closestPauseAt (number; obligatorio)\n\n[]schedule.closestPauseAt ejemplo: 0\n\n[]schedule.closestPauseAt.Tipo: number\n\n[]schedule.closestPauseAt.Mismo valor que `nextPauseAt`. Se mantiene por compatibilidad con versiones anteriores.\n\n- []schedule.closestUnpauseAt (number; obligatorio)\n\n[]schedule.closestUnpauseAt ejemplo: 0\n\n[]schedule.closestUnpauseAt.Tipo: number\n\n[]schedule.closestUnpauseAt.Mismo valor que `nextUnpauseAt`. Se conserva por compatibilidad con versiones anteriores.\n\n- []schedule.pausedAt (number; obligatorio)\n\n[]schedule.pausedAt ejemplo: 0\n\n[]schedule.pausedAt.Tipo: number\n\n[]schedule.pausedAt.Inicio de la pausa actualmente en curso, marca de tiempo unix en milisegundos. `0` cuando el mercado está operando.\n\n- []schedule.inPause (boolean; obligatorio)\n\n[]schedule.inPause ejemplo: true\n\n[]schedule.inPause.Tipo: boolean\n\n[]schedule.inPause.Si el mercado se encuentra dentro de una pausa programada en este momento. Las órdenes se rechazan mientras esté en ella.\n\nEjemplo\n\n\n\n```json\n[\n  {\n    \"id\": \"00000000-0000-4000-8000-000000000000\",\n    \"config\": {\n      \"baseAsset\": \"BTC\",\n      \"quoteAsset\": \"USD\",\n      \"settlementToken\": \"USD\",\n      \"type\": \"base\",\n      \"name\": \"BTC\",\n      \"description\": \"Market description\",\n      \"ticker\": \"BTC/USD\",\n      \"imageLink\": \"https://app.storm.tg/markets/btc.png\",\n      \"tags\": [\n        \"Crypto\"\n      ],\n      \"category\": \"crypto\",\n      \"priority\": 0\n    },\n    \"state\": {\n      \"indexPrice\": \"1000000000\",\n      \"blockTimestamp\": 0,\n      \"fundingRate\": \"1000000000\",\n      \"nextFundingAt\": 0,\n      \"lastFundingAt\": 0,\n      \"vpiSpread\": \"1000000000\",\n      \"vpiMarketDepthLong\": \"1000000000\",\n      \"vpiMarketDepthShort\": \"1000000000\",\n      \"vpiCoefficientLong\": \"1000000000\",\n      \"vpiCoefficientShort\": \"1000000000\"\n    },\n    \"settings\": {\n      \"fee\": \"1000000000\",\n      \"minInitMarginRatio\": \"1000000000\",\n      \"initMarginRatio\": \"1000000000\",\n      \"maintenanceMarginRatio\": \"1000000000\",\n      \"maxLeverageByAccount\": {\n        \"key\": \"1000000000\"\n      },\n      \"spreadLimit\": \"1000000000\",\n      \"maxPriceImpact\": \"1000000000\",\n      \"maxPriceSpread\": \"1000000000\",\n      \"maxOpenNotionalLong\": \"1000000000\",\n      \"maxOpenNotionalShort\": \"1000000000\",\n      \"minStopTriggerDistanceRatio\": \"1000000000\",\n      \"isCloseOnly\": true,\n      \"isClosed\": true,\n      \"isPaused\": true,\n      \"isZeroSpread\": true\n    },\n    \"change\": {\n      \"initialPrice\": 0,\n      \"initialPrice1h\": 0,\n      \"initialPrice4h\": 0\n    },\n    \"schedule\": {\n      \"nextPauseAt\": 0,\n      \"nextUnpauseAt\": 0,\n      \"closestPauseAt\": 0,\n      \"closestUnpauseAt\": 0,\n      \"pausedAt\": 0,\n      \"inPause\": true\n    }\n  }\n]\n```","text":"Obtener lista de mercados Cada 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. GET /v2/markets Config accountId Cuenta 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. string · uuid 401 No autorizado 429 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`. default Respuesta","api":{"title":"API pública de Upscale","version":"d796ac9","documentation":"https://docs.upscale.trade/es/developers","playgroundServer":"https://api.upscale.trade"}}