{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/developers/operations/getmarkets","title":"Get markets list","description":"GET /v2/markets: Every market open for trading, each with its current snapshot: price, daily change, leverage bounds, fees and trading schedule.","kind":"api-operation","locale":"en","inLanguage":"en","lastModified":"2026-09-28T19:22:49.100Z","revision":"25c86f549328fcff320805d5945f4c9804e3927950d831e601d6e3b18c170f66","section":{"title":"Developers","url":"https://docs.upscale.trade/developers"},"representations":{"html":"https://docs.upscale.trade/developers/operations/getmarkets","markdown":"https://docs.upscale.trade/developers/operations/getmarkets.md","json":"https://docs.upscale.trade/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":"Get markets list","description":"Every market open for trading, each with its current snapshot: price, daily change, leverage bounds, fees and trading schedule.\nMarkets that are hidden or delisted are left out.\n\nPassing `accountId` reads the snapshot from the trading shard that hosts that account — the state an order placed on it would be priced against.\nThe account is not checked for ownership here: it only selects which shard answers.","tags":["Config"],"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":"Trader account to resolve the market list against: leverage bounds and availability are returned as they apply to that account. Omitted — the platform-wide defaults are returned.","example":"00000000-0000-4000-8000-000000000000"}],"bodies":[],"responses":[{"status":"401","description":"Unauthorized","properties":[],"headers":[]},{"status":"429","description":"Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`.","properties":[],"headers":[]},{"status":"default","description":"Response","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":"Market identifier — the value order creation takes as `marketId`.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Market identifier — the value order creation takes as `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":"Static description of the market: assets, naming and category.","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":"Static description of the market: assets, naming and category.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"baseAsset","type":"string","required":true,"description":"Base asset ticker — the value the per-market endpoints take as `asset`.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Base asset ticker — the value the per-market endpoints take as `asset`.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"quoteAsset","type":"string","required":true,"description":"Asset prices and notionals are quoted in.","example":"USD","schema":{"type":"string","types":["string"],"description":"Asset prices and notionals are quoted in.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"settlementToken","type":"string","required":true,"description":"Asset positions settle in.","example":"USD","schema":{"type":"string","types":["string"],"description":"Asset positions settle in.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"type","type":"string","required":true,"description":"Pricing model of the market.","example":"base","schema":{"type":"string","types":["string"],"description":"Pricing model of the market.","example":"base","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"name","type":"string","required":true,"description":"Display name of the market.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Display name of the market.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"description","type":"string","required":true,"description":"Free-form description shown in the app.","example":"Market description","schema":{"type":"string","types":["string"],"description":"Free-form description shown in the app.","example":"Market description","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"ticker","type":"string","required":true,"description":"Full pair label.","example":"BTC/USD","schema":{"type":"string","types":["string"],"description":"Full pair label.","example":"BTC/USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"imageLink","type":"string","required":true,"description":"Icon of the market.","example":"https://app.storm.tg/markets/btc.png","schema":{"type":"string","types":["string"],"description":"Icon of the market.","example":"https://app.storm.tg/markets/btc.png","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"tags","type":"string[]","required":true,"description":"Tags the app groups markets by.","example":"[\n  \"Crypto\"\n]","schema":{"type":"string[]","types":["array"],"description":"Tags the app groups markets by.","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":"Whether the market is crypto or a real-world asset — an account may be limited to one of the two.","example":"crypto","schema":{"type":"string · enum","types":["string"],"description":"Whether the market is crypto or a real-world asset — an account may be limited to one of the two.","enum":["crypto","rwa"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"priority","type":"number · nullable","required":true,"description":"Sort weight in the market list; higher comes first. Null when unranked.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"Sort weight in the market list; higher comes first. Null when unranked.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"state","type":"object","required":true,"description":"Live state: index price, funding and the depth an order is priced against.","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":"Live state: index price, funding and the depth an order is priced against.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"indexPrice","type":"string · int32","required":true,"description":"Current index price of the market, fp9 raw — what orders are priced and triggers compared against.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Current index price of the market, fp9 raw — what orders are priced and triggers compared against.","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":"When this state snapshot was produced, unix timestamp in milliseconds.","example":"0","schema":{"type":"number","types":["number"],"description":"When this state snapshot was produced, unix timestamp in milliseconds.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"fundingRate","type":"string · int32","required":true,"description":"Funding rate of the running interval, fp9 raw fraction. Positive means longs pay shorts.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Funding rate of the running interval, fp9 raw fraction. Positive means longs pay shorts.","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":"When funding is settled next, unix timestamp in milliseconds.","example":"0","schema":{"type":"number","types":["number"],"description":"When funding is settled next, unix timestamp in milliseconds.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"lastFundingAt","type":"number · nullable","required":true,"description":"When funding was last settled, unix timestamp in milliseconds. Null before the first settlement.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"When funding was last settled, unix timestamp in milliseconds. Null before the first settlement.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"vpiSpread","type":"string · int32","required":true,"description":"Current spread charged on top of the index price, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Current spread charged on top of the index price, fp9 raw fraction.","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":"Depth available on the long side, fp9 raw. Orders large against it move the execution price.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Depth available on the long side, fp9 raw. Orders large against it move the execution price.","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":"Depth available on the short side, fp9 raw.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Depth available on the short side, fp9 raw.","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":"Price-impact coefficient applied to long orders, fp9 raw.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Price-impact coefficient applied to long orders, fp9 raw.","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":"Price-impact coefficient applied to short orders, fp9 raw.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Price-impact coefficient applied to short orders, fp9 raw.","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":"Trading rules of the market: fees, margin ratios and the caps an order is checked against.","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":"Trading rules of the market: fees, margin ratios and the caps an order is checked against.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"fee","type":"string · int32","required":true,"description":"Trading fee rate, fp9 raw fraction (`1000000` = 0.1%).","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Trading fee rate, fp9 raw fraction (`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":"Smallest initial margin ratio the market accepts, fp9 raw fraction — the cap on leverage.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Smallest initial margin ratio the market accepts, fp9 raw fraction — the cap on leverage.","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":"Default initial margin ratio of the market, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Default initial margin ratio of the market, fp9 raw fraction.","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":"Margin ratio below which a position is liquidated, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Margin ratio below which a position is liquidated, fp9 raw fraction.","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":"Highest leverage allowed per account type, fp9 raw, keyed by account type.","example":"{\n  \"key\": \"1000000000\"\n}","schema":{"type":"object","types":["object"],"description":"Highest leverage allowed per account type, fp9 raw, keyed by account type.","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":"Largest spread the market will charge, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Largest spread the market will charge, fp9 raw fraction.","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":"Largest price impact a single order may cause, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Largest price impact a single order may cause, fp9 raw fraction.","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":"Largest deviation allowed between market and index price, fp9 raw fraction.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Largest deviation allowed between market and index price, fp9 raw fraction.","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":"Cap on open notional held long on this market, fp9 raw. `0` means no cap.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Cap on open notional held long on this market, fp9 raw. `0` means no cap.","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":"Cap on open notional held short on this market, fp9 raw. `0` means no cap.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Cap on open notional held short on this market, fp9 raw. `0` means no cap.","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":"Minimum distance between the current price and a stop trigger, fp9 raw fraction. A closer trigger is pushed out to this distance.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Minimum distance between the current price and a stop trigger, fp9 raw fraction. A closer trigger is pushed out to this distance.","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":"Whether the market only accepts orders that close a position.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Whether the market only accepts orders that close a position.","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":"Whether the market currently trades without a spread.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Whether the market currently trades without a spread.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"change","type":"object","required":true,"description":"Reference prices for computing 1h, 4h and 24h price changes.","example":"{\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}","schema":{"type":"object","types":["object"],"description":"Reference prices for computing 1h, 4h and 24h price changes.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"initialPrice","type":"number","required":true,"description":"Price 24 hours ago, as a decimal number — the base of the daily change. `0` when no history is available.","example":"0","schema":{"type":"number","types":["number"],"description":"Price 24 hours ago, as a decimal number — the base of the daily change. `0` when no history is available.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice1h","type":"number","required":true,"description":"Price one hour ago, as a decimal number. `0` when no history is available.","example":"0","schema":{"type":"number","types":["number"],"description":"Price one hour ago, as a decimal number. `0` when no history is available.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice4h","type":"number","required":true,"description":"Price four hours ago, as a decimal number. `0` when no history is available.","example":"0","schema":{"type":"number","types":["number"],"description":"Price four hours ago, as a decimal number. `0` when no history is available.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"schedule","type":"object · nullable","required":true,"description":"Trading sessions of the market. Null when it trades around the clock.","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":"Trading sessions of the market. Null when it trades around the clock.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"nextPauseAt","type":"number","required":true,"description":"Start of the next scheduled break, unix timestamp in milliseconds. `0` when the market has no breaks at all, and `9007199254740991` when none is scheduled ahead of the current one.","example":"0","schema":{"type":"number","types":["number"],"description":"Start of the next scheduled break, unix timestamp in milliseconds. `0` when the market has no breaks at all, and `9007199254740991` when none is scheduled ahead of the current one.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"nextUnpauseAt","type":"number","required":true,"description":"End of the break the market is in, or of the next one, unix timestamp in milliseconds. Same `0` and sentinel rules as `nextPauseAt`.","example":"0","schema":{"type":"number","types":["number"],"description":"End of the break the market is in, or of the next one, unix timestamp in milliseconds. Same `0` and sentinel rules as `nextPauseAt`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestPauseAt","type":"number","required":true,"description":"Same value as `nextPauseAt`. Kept for backward compatibility.","example":"0","schema":{"type":"number","types":["number"],"description":"Same value as `nextPauseAt`. Kept for backward compatibility.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestUnpauseAt","type":"number","required":true,"description":"Same value as `nextUnpauseAt`. Kept for backward compatibility.","example":"0","schema":{"type":"number","types":["number"],"description":"Same value as `nextUnpauseAt`. Kept for backward compatibility.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"pausedAt","type":"number","required":true,"description":"Start of the break currently running, unix timestamp in milliseconds. `0` when the market is trading.","example":"0","schema":{"type":"number","types":["number"],"description":"Start of the break currently running, unix timestamp in milliseconds. `0` when the market is trading.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"inPause","type":"boolean","required":true,"description":"Whether the market is inside a scheduled break right now. Orders are refused while it is.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Whether the market is inside a scheduled break right now. Orders are refused while it is.","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":"Personal API key, prefixed with `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":"What is Prop Trading","url":"https://docs.upscale.trade"},{"title":"Developers","url":"https://docs.upscale.trade/developers"},{"title":"Get markets list","url":"https://docs.upscale.trade/developers/operations/getmarkets"}],"headings":[{"depth":2,"id":"authorization","title":"Authorization"},{"depth":2,"id":"parameters","title":"Parameters"},{"depth":2,"id":"examples","title":"Examples"},{"depth":2,"id":"responses","title":"Responses"}],"markdown":"# Get markets list\n\n`GET /v2/markets`\n\nEvery market open for trading, each with its current snapshot: price, daily change, leverage bounds, fees and trading schedule.\nMarkets that are hidden or delisted are left out.\n\nPassing `accountId` reads the snapshot from the trading shard that hosts that account — the state an order placed on it would be priced against.\nThe account is not checked for ownership here: it only selects which shard answers.\n\n## Authorization\n\nbearer: http · bearer (required). Personal API key, prefixed with `usk_`.\n\n## Parameters\n\n- query: accountId (string · uuid; optional). Trader account to resolve the market list against: leverage bounds and availability are returned as they apply to that account. Omitted — the platform-wide defaults are returned.\n\nType: 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## Example · 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## Example · 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## Example · 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## Response 401\n\n**401**  — Unauthorized\n\n## Response 429\n\n**429**  — Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`.\n\n## Response default · MarketV2Response\n\n**default** application/json — Response\n\nType: object[]\n\n[]Schema: MarketV2Response\n\n[]Type: object\n\n[]Required fields: id, config, state, settings, change, schedule\n\n[]Required field types: id (string · uuid; required), config (object; required), state (object; required), settings (object; required), change (object; required), schedule (object · nullable; required)\n\n- []id (string · uuid; required)\n\n[]id example: 00000000-0000-4000-8000-000000000000\n\n[]id.Type: string · uuid\n\n[]id.Market identifier — the value order creation takes as `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; required)\n\n[]config 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}\n\n[]config.Type: object\n\n[]config.Required fields: baseAsset, quoteAsset, settlementToken, type, name, description, ticker, imageLink, tags, category, priority\n\n[]config.Required field types: baseAsset (string; required), quoteAsset (string; required), settlementToken (string; required), type (string; required), name (string; required), description (string; required), ticker (string; required), imageLink (string; required), tags (string[]; required), category (string · enum; required), priority (number · nullable; required)\n\n[]config.Static description of the market: assets, naming and category.\n\n- []config.baseAsset (string; required)\n\n[]config.baseAsset example: BTC\n\n[]config.baseAsset.Type: string\n\n[]config.baseAsset.Base asset ticker — the value the per-market endpoints take as `asset`.\n\n- []config.quoteAsset (string; required)\n\n[]config.quoteAsset example: USD\n\n[]config.quoteAsset.Type: string\n\n[]config.quoteAsset.Asset prices and notionals are quoted in.\n\n- []config.settlementToken (string; required)\n\n[]config.settlementToken example: USD\n\n[]config.settlementToken.Type: string\n\n[]config.settlementToken.Asset positions settle in.\n\n- []config.type (string; required)\n\n[]config.type example: base\n\n[]config.type.Type: string\n\n[]config.type.Pricing model of the market.\n\n- []config.name (string; required)\n\n[]config.name example: BTC\n\n[]config.name.Type: string\n\n[]config.name.Display name of the market.\n\n- []config.description (string; required)\n\n[]config.description example: Market description\n\n[]config.description.Type: string\n\n[]config.description.Free-form description shown in the app.\n\n- []config.ticker (string; required)\n\n[]config.ticker example: BTC/USD\n\n[]config.ticker.Type: string\n\n[]config.ticker.Full pair label.\n\n- []config.imageLink (string; required)\n\n[]config.imageLink example: https://app.storm.tg/markets/btc.png\n\n[]config.imageLink.Type: string\n\n[]config.imageLink.Icon of the market.\n\n- []config.tags (string[]; required)\n\n[]config.tags example: [\n  \"Crypto\"\n]\n\n[]config.tags.Type: string[]\n\n[]config.tags.Tags the app groups markets by.\n\n[]config.tags.[]Type: string\n\n- []config.category (string · enum; required)\n\n[]config.category example: crypto\n\n[]config.category.Type: string · enum\n\n[]config.category.Whether the market is crypto or a real-world asset — an account may be limited to one of the two.\n\n[]config.category.Allowed values: [\"crypto\",\"rwa\"]\n\n- []config.priority (number · nullable; required)\n\n[]config.priority example: 0\n\n[]config.priority.Type: number · nullable\n\n[]config.priority.Sort weight in the market list; higher comes first. Null when unranked.\n\n- []state (object; required)\n\n[]state 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}\n\n[]state.Type: object\n\n[]state.Required fields: indexPrice, blockTimestamp, fundingRate, nextFundingAt, lastFundingAt, vpiSpread, vpiMarketDepthLong, vpiMarketDepthShort, vpiCoefficientLong, vpiCoefficientShort\n\n[]state.Required field types: indexPrice (string · int32; required), blockTimestamp (number; required), fundingRate (string · int32; required), nextFundingAt (number; required), lastFundingAt (number · nullable; required), vpiSpread (string · int32; required), vpiMarketDepthLong (string · int32; required), vpiMarketDepthShort (string · int32; required), vpiCoefficientLong (string · int32; required), vpiCoefficientShort (string · int32; required)\n\n[]state.Live state: index price, funding and the depth an order is priced against.\n\n- []state.indexPrice (string · int32; required)\n\n[]state.indexPrice example: 1000000000\n\n[]state.indexPrice.Type: string · int32\n\n[]state.indexPrice.Current index price of the market, fp9 raw — what orders are priced and triggers compared against.\n\n[]state.indexPrice.format: int32\n\n[]state.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.blockTimestamp (number; required)\n\n[]state.blockTimestamp example: 0\n\n[]state.blockTimestamp.Type: number\n\n[]state.blockTimestamp.When this state snapshot was produced, unix timestamp in milliseconds.\n\n- []state.fundingRate (string · int32; required)\n\n[]state.fundingRate example: 1000000000\n\n[]state.fundingRate.Type: string · int32\n\n[]state.fundingRate.Funding rate of the running interval, fp9 raw fraction. Positive means longs pay shorts.\n\n[]state.fundingRate.format: int32\n\n[]state.fundingRate.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.nextFundingAt (number; required)\n\n[]state.nextFundingAt example: 0\n\n[]state.nextFundingAt.Type: number\n\n[]state.nextFundingAt.When funding is settled next, unix timestamp in milliseconds.\n\n- []state.lastFundingAt (number · nullable; required)\n\n[]state.lastFundingAt example: 0\n\n[]state.lastFundingAt.Type: number · nullable\n\n[]state.lastFundingAt.When funding was last settled, unix timestamp in milliseconds. Null before the first settlement.\n\n- []state.vpiSpread (string · int32; required)\n\n[]state.vpiSpread example: 1000000000\n\n[]state.vpiSpread.Type: string · int32\n\n[]state.vpiSpread.Current spread charged on top of the index price, fp9 raw fraction.\n\n[]state.vpiSpread.format: int32\n\n[]state.vpiSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthLong (string · int32; required)\n\n[]state.vpiMarketDepthLong example: 1000000000\n\n[]state.vpiMarketDepthLong.Type: string · int32\n\n[]state.vpiMarketDepthLong.Depth available on the long side, fp9 raw. Orders large against it move the execution price.\n\n[]state.vpiMarketDepthLong.format: int32\n\n[]state.vpiMarketDepthLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthShort (string · int32; required)\n\n[]state.vpiMarketDepthShort example: 1000000000\n\n[]state.vpiMarketDepthShort.Type: string · int32\n\n[]state.vpiMarketDepthShort.Depth available on the short side, fp9 raw.\n\n[]state.vpiMarketDepthShort.format: int32\n\n[]state.vpiMarketDepthShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientLong (string · int32; required)\n\n[]state.vpiCoefficientLong example: 1000000000\n\n[]state.vpiCoefficientLong.Type: string · int32\n\n[]state.vpiCoefficientLong.Price-impact coefficient applied to long orders, fp9 raw.\n\n[]state.vpiCoefficientLong.format: int32\n\n[]state.vpiCoefficientLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientShort (string · int32; required)\n\n[]state.vpiCoefficientShort example: 1000000000\n\n[]state.vpiCoefficientShort.Type: string · int32\n\n[]state.vpiCoefficientShort.Price-impact coefficient applied to short orders, fp9 raw.\n\n[]state.vpiCoefficientShort.format: int32\n\n[]state.vpiCoefficientShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings (object; required)\n\n[]settings 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}\n\n[]settings.Type: object\n\n[]settings.Required fields: fee, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, maxLeverageByAccount, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotionalLong, maxOpenNotionalShort, minStopTriggerDistanceRatio, isCloseOnly, isClosed, isPaused, isZeroSpread\n\n[]settings.Required field types: fee (string · int32; required), minInitMarginRatio (string · int32; required), initMarginRatio (string · int32; required), maintenanceMarginRatio (string · int32; required), maxLeverageByAccount (object; required), spreadLimit (string · int32; required), maxPriceImpact (string · int32; required), maxPriceSpread (string · int32; required), maxOpenNotionalLong (string · int32; required), maxOpenNotionalShort (string · int32; required), minStopTriggerDistanceRatio (string · int32; required), isCloseOnly (boolean; required), isClosed (boolean; required), isPaused (boolean; required), isZeroSpread (boolean; required)\n\n[]settings.Trading rules of the market: fees, margin ratios and the caps an order is checked against.\n\n- []settings.fee (string · int32; required)\n\n[]settings.fee example: 1000000000\n\n[]settings.fee.Type: string · int32\n\n[]settings.fee.Trading fee rate, fp9 raw fraction (`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; required)\n\n[]settings.minInitMarginRatio example: 1000000000\n\n[]settings.minInitMarginRatio.Type: string · int32\n\n[]settings.minInitMarginRatio.Smallest initial margin ratio the market accepts, fp9 raw fraction — the cap on leverage.\n\n[]settings.minInitMarginRatio.format: int32\n\n[]settings.minInitMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.initMarginRatio (string · int32; required)\n\n[]settings.initMarginRatio example: 1000000000\n\n[]settings.initMarginRatio.Type: string · int32\n\n[]settings.initMarginRatio.Default initial margin ratio of the market, fp9 raw fraction.\n\n[]settings.initMarginRatio.format: int32\n\n[]settings.initMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maintenanceMarginRatio (string · int32; required)\n\n[]settings.maintenanceMarginRatio example: 1000000000\n\n[]settings.maintenanceMarginRatio.Type: string · int32\n\n[]settings.maintenanceMarginRatio.Margin ratio below which a position is liquidated, fp9 raw fraction.\n\n[]settings.maintenanceMarginRatio.format: int32\n\n[]settings.maintenanceMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxLeverageByAccount (object; required)\n\n[]settings.maxLeverageByAccount example: {\n  \"key\": \"1000000000\"\n}\n\n[]settings.maxLeverageByAccount.Type: object\n\n[]settings.maxLeverageByAccount.Highest leverage allowed per account type, fp9 raw, keyed by account type.\n\n[]settings.maxLeverageByAccount.*.Type: string · int32\n\n[]settings.maxLeverageByAccount.*.Example: \"1000000000\"\n\n[]settings.maxLeverageByAccount.*.format: int32\n\n[]settings.maxLeverageByAccount.*.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.spreadLimit (string · int32; required)\n\n[]settings.spreadLimit example: 1000000000\n\n[]settings.spreadLimit.Type: string · int32\n\n[]settings.spreadLimit.Largest spread the market will charge, fp9 raw fraction.\n\n[]settings.spreadLimit.format: int32\n\n[]settings.spreadLimit.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceImpact (string · int32; required)\n\n[]settings.maxPriceImpact example: 1000000000\n\n[]settings.maxPriceImpact.Type: string · int32\n\n[]settings.maxPriceImpact.Largest price impact a single order may cause, fp9 raw fraction.\n\n[]settings.maxPriceImpact.format: int32\n\n[]settings.maxPriceImpact.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceSpread (string · int32; required)\n\n[]settings.maxPriceSpread example: 1000000000\n\n[]settings.maxPriceSpread.Type: string · int32\n\n[]settings.maxPriceSpread.Largest deviation allowed between market and index price, fp9 raw fraction.\n\n[]settings.maxPriceSpread.format: int32\n\n[]settings.maxPriceSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalLong (string · int32; required)\n\n[]settings.maxOpenNotionalLong example: 1000000000\n\n[]settings.maxOpenNotionalLong.Type: string · int32\n\n[]settings.maxOpenNotionalLong.Cap on open notional held long on this market, fp9 raw. `0` means no cap.\n\n[]settings.maxOpenNotionalLong.format: int32\n\n[]settings.maxOpenNotionalLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalShort (string · int32; required)\n\n[]settings.maxOpenNotionalShort example: 1000000000\n\n[]settings.maxOpenNotionalShort.Type: string · int32\n\n[]settings.maxOpenNotionalShort.Cap on open notional held short on this market, fp9 raw. `0` means no cap.\n\n[]settings.maxOpenNotionalShort.format: int32\n\n[]settings.maxOpenNotionalShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.minStopTriggerDistanceRatio (string · int32; required)\n\n[]settings.minStopTriggerDistanceRatio example: 1000000000\n\n[]settings.minStopTriggerDistanceRatio.Type: string · int32\n\n[]settings.minStopTriggerDistanceRatio.Minimum distance between the current price and a stop trigger, fp9 raw fraction. A closer trigger is pushed out to this distance.\n\n[]settings.minStopTriggerDistanceRatio.format: int32\n\n[]settings.minStopTriggerDistanceRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.isCloseOnly (boolean; required)\n\n[]settings.isCloseOnly example: true\n\n[]settings.isCloseOnly.Type: boolean\n\n[]settings.isCloseOnly.Whether the market only accepts orders that close a position.\n\n- []settings.isClosed (boolean; required)\n\n[]settings.isClosed example: true\n\n[]settings.isClosed.Type: boolean\n\n- []settings.isPaused (boolean; required)\n\n[]settings.isPaused example: true\n\n[]settings.isPaused.Type: boolean\n\n- []settings.isZeroSpread (boolean; required)\n\n[]settings.isZeroSpread example: true\n\n[]settings.isZeroSpread.Type: boolean\n\n[]settings.isZeroSpread.Whether the market currently trades without a spread.\n\n- []change (object; required)\n\n[]change example: {\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}\n\n[]change.Type: object\n\n[]change.Required fields: initialPrice, initialPrice1h, initialPrice4h\n\n[]change.Required field types: initialPrice (number; required), initialPrice1h (number; required), initialPrice4h (number; required)\n\n[]change.Reference prices for computing 1h, 4h and 24h price changes.\n\n- []change.initialPrice (number; required)\n\n[]change.initialPrice example: 0\n\n[]change.initialPrice.Type: number\n\n[]change.initialPrice.Price 24 hours ago, as a decimal number — the base of the daily change. `0` when no history is available.\n\n- []change.initialPrice1h (number; required)\n\n[]change.initialPrice1h example: 0\n\n[]change.initialPrice1h.Type: number\n\n[]change.initialPrice1h.Price one hour ago, as a decimal number. `0` when no history is available.\n\n- []change.initialPrice4h (number; required)\n\n[]change.initialPrice4h example: 0\n\n[]change.initialPrice4h.Type: number\n\n[]change.initialPrice4h.Price four hours ago, as a decimal number. `0` when no history is available.\n\n- []schedule (object · nullable; required)\n\n[]schedule example: {\n  \"nextPauseAt\": 0,\n  \"nextUnpauseAt\": 0,\n  \"closestPauseAt\": 0,\n  \"closestUnpauseAt\": 0,\n  \"pausedAt\": 0,\n  \"inPause\": true\n}\n\n[]schedule.Type: object · nullable\n\n[]schedule.Required fields: nextPauseAt, nextUnpauseAt, closestPauseAt, closestUnpauseAt, pausedAt, inPause\n\n[]schedule.Required field types: nextPauseAt (number; required), nextUnpauseAt (number; required), closestPauseAt (number; required), closestUnpauseAt (number; required), pausedAt (number; required), inPause (boolean; required)\n\n[]schedule.Trading sessions of the market. Null when it trades around the clock.\n\n- []schedule.nextPauseAt (number; required)\n\n[]schedule.nextPauseAt example: 0\n\n[]schedule.nextPauseAt.Type: number\n\n[]schedule.nextPauseAt.Start of the next scheduled break, unix timestamp in milliseconds. `0` when the market has no breaks at all, and `9007199254740991` when none is scheduled ahead of the current one.\n\n- []schedule.nextUnpauseAt (number; required)\n\n[]schedule.nextUnpauseAt example: 0\n\n[]schedule.nextUnpauseAt.Type: number\n\n[]schedule.nextUnpauseAt.End of the break the market is in, or of the next one, unix timestamp in milliseconds. Same `0` and sentinel rules as `nextPauseAt`.\n\n- []schedule.closestPauseAt (number; required)\n\n[]schedule.closestPauseAt example: 0\n\n[]schedule.closestPauseAt.Type: number\n\n[]schedule.closestPauseAt.Same value as `nextPauseAt`. Kept for backward compatibility.\n\n- []schedule.closestUnpauseAt (number; required)\n\n[]schedule.closestUnpauseAt example: 0\n\n[]schedule.closestUnpauseAt.Type: number\n\n[]schedule.closestUnpauseAt.Same value as `nextUnpauseAt`. Kept for backward compatibility.\n\n- []schedule.pausedAt (number; required)\n\n[]schedule.pausedAt example: 0\n\n[]schedule.pausedAt.Type: number\n\n[]schedule.pausedAt.Start of the break currently running, unix timestamp in milliseconds. `0` when the market is trading.\n\n- []schedule.inPause (boolean; required)\n\n[]schedule.inPause example: true\n\n[]schedule.inPause.Type: boolean\n\n[]schedule.inPause.Whether the market is inside a scheduled break right now. Orders are refused while it is.\n\nExample\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":"Get markets list Every market open for trading, each with its current snapshot: price, daily change, leverage bounds, fees and trading schedule. Markets that are hidden or delisted are left out. Passing `accountId` reads the snapshot from the trading shard that hosts that account — the state an order placed on it would be priced against. The account is not checked for ownership here: it only selects which shard answers. GET /v2/markets Config accountId Trader account to resolve the market list against: leverage bounds and availability are returned as they apply to that account. Omitted — the platform-wide defaults are returned. string · uuid 401 Unauthorized 429 Rate limit of the API key exceeded (`api_key_rate_limit_exceeded`). `Retry-After` says when to come back; the body carries the bucket (`read` / `write`), the window that tripped, its limit and `retryAt`. default Response","api":{"title":"Upscale Public API","version":"d796ac9","documentation":"https://docs.upscale.trade/developers","playgroundServer":"https://api.upscale.trade"}}