{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/ru/developers/operations/getmarkets","title":"Получить список рынков","description":"GET /v2/markets: Каждый рынок, открытый для торговли, с его текущим снимком: цена, дневное изменение, границы кредитного плеча, комиссии и расписание торгов.","kind":"api-operation","locale":"ru","inLanguage":"ru","translation":{"sourceLanguage":"en","targetLanguage":"ru","status":"complete","translatedUnits":59,"totalUnits":59},"lastModified":"2026-09-28T20:14:21.334Z","revision":"4bcdb0248fec5130d7dca32f21ced4a207c71ff2d711894a920c99e4198fedd7","section":{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},"representations":{"html":"https://docs.upscale.trade/ru/developers/operations/getmarkets","markdown":"https://docs.upscale.trade/ru/developers/operations/getmarkets.md","json":"https://docs.upscale.trade/ru/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":"Получить список рынков","description":"Каждый рынок, открытый для торговли, с его текущим снимком: цена, дневное изменение, границы кредитного плеча, комиссии и расписание торгов.\nСкрытые или исключённые из листинга рынки не включаются.\n\nПередача `accountId` считывает снимок из торгового шарда, который обслуживает этот счёт — состояние, по которому был бы оценён Ордер, размещённый на нём.\nЗдесь принадлежность счёта не проверяется: он только выбирает, какой шард отвечает.","tags":["Config"],"tagLabels":{"Accounts":"Аккаунты","Config":"Конфигурация","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":"Торговый счёт, относительно которого формируется список рынков: границы кредитного плеча и доступность возвращаются применительно к этому счёту. Если не указан — возвращаются значения по умолчанию для всей платформы.","example":"00000000-0000-4000-8000-000000000000"}],"bodies":[],"responses":[{"status":"401","description":"Неавторизовано","properties":[],"headers":[]},{"status":"429","description":"Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.","properties":[],"headers":[]},{"status":"default","description":"Ответ","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":"Идентификатор рынка — значение, которое создание Ордера принимает в качестве `marketId`.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Идентификатор рынка — значение, которое создание Ордера принимает в качестве `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":"Статическое описание рынка: активы, наименование и категория.","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":"Статическое описание рынка: активы, наименование и категория.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"baseAsset","type":"string","required":true,"description":"Тикер базового актива — значение, которое эндпоинты для конкретного рынка принимают как `asset`.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Тикер базового актива — значение, которое эндпоинты для конкретного рынка принимают как `asset`.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"quoteAsset","type":"string","required":true,"description":"Актив, в котором котируются цены активов и номиналы.","example":"USD","schema":{"type":"string","types":["string"],"description":"Актив, в котором котируются цены активов и номиналы.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"settlementToken","type":"string","required":true,"description":"Актив, в котором рассчитываются позиции.","example":"USD","schema":{"type":"string","types":["string"],"description":"Актив, в котором рассчитываются позиции.","example":"USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"type","type":"string","required":true,"description":"Модель ценообразования рынка.","example":"base","schema":{"type":"string","types":["string"],"description":"Модель ценообразования рынка.","example":"base","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"name","type":"string","required":true,"description":"Отображаемое имя рынка.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Отображаемое имя рынка.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"description","type":"string","required":true,"description":"Описание в свободной форме, отображаемое в приложении.","example":"Market description","schema":{"type":"string","types":["string"],"description":"Описание в свободной форме, отображаемое в приложении.","example":"Market description","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"ticker","type":"string","required":true,"description":"Полная метка пары.","example":"BTC/USD","schema":{"type":"string","types":["string"],"description":"Полная метка пары.","example":"BTC/USD","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"imageLink","type":"string","required":true,"description":"Иконка рынка.","example":"https://app.storm.tg/markets/btc.png","schema":{"type":"string","types":["string"],"description":"Иконка рынка.","example":"https://app.storm.tg/markets/btc.png","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"tags","type":"string[]","required":true,"description":"Теги, по которым приложение группирует рынки.","example":"[\n  \"Crypto\"\n]","schema":{"type":"string[]","types":["array"],"description":"Теги, по которым приложение группирует рынки.","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":"Является ли рынок криптовалютным или реальным активом — аккаунт может быть ограничен одним из двух.","example":"crypto","schema":{"type":"string · enum","types":["string"],"description":"Является ли рынок криптовалютным или реальным активом — аккаунт может быть ограничен одним из двух.","enum":["crypto","rwa"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"priority","type":"number · nullable","required":true,"description":"Вес сортировки в списке рынков; более высокий идёт первым. Null, если не ранжирован.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"Вес сортировки в списке рынков; более высокий идёт первым. Null, если не ранжирован.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"state","type":"object","required":true,"description":"Текущее состояние: индексная цена, финансирование и глубина, относительно которой рассчитывается цена ордера.","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":"Текущее состояние: индексная цена, финансирование и глубина, относительно которой рассчитывается цена ордера.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"indexPrice","type":"string · int32","required":true,"description":"Текущая индексная цена рынка, fp9 в сыром виде — то, относительно чего оцениваются ордера и сравниваются триггеры.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Текущая индексная цена рынка, fp9 в сыром виде — то, относительно чего оцениваются ордера и сравниваются триггеры.","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":"Когда был создан этот снимок состояния, временная метка Unix в миллисекундах.","example":"0","schema":{"type":"number","types":["number"],"description":"Когда был создан этот снимок состояния, временная метка Unix в миллисекундах.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"fundingRate","type":"string · int32","required":true,"description":"Ставка финансирования текущего интервала, fp9 в виде необработанной доли. Положительное значение означает, что лонги платят шортам.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ставка финансирования текущего интервала, fp9 в виде необработанной доли. Положительное значение означает, что лонги платят шортам.","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":"Когда в следующий раз будет произведен расчет финансирования, временная метка Unix в миллисекундах.","example":"0","schema":{"type":"number","types":["number"],"description":"Когда в следующий раз будет произведен расчет финансирования, временная метка Unix в миллисекундах.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"lastFundingAt","type":"number · nullable","required":true,"description":"Когда финансирование было рассчитано в последний раз, временная метка Unix в миллисекундах. Null до первого расчета.","example":"0","schema":{"type":"number · nullable","types":["number","null"],"description":"Когда финансирование было рассчитано в последний раз, временная метка Unix в миллисекундах. Null до первого расчета.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"vpiSpread","type":"string · int32","required":true,"description":"Текущий спред, взимаемый сверх цены индекса, fp9 в виде необработанной доли.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Текущий спред, взимаемый сверх цены индекса, fp9 в виде необработанной доли.","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":"Глубина, доступная на стороне лонгов, fp9 в необработанном виде. Крупные ордера против нее сдвигают цену исполнения.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Глубина, доступная на стороне лонгов, fp9 в необработанном виде. Крупные ордера против нее сдвигают цену исполнения.","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":"Глубина, доступная на стороне шорта, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Глубина, доступная на стороне шорта, fp9 в сыром виде.","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":"Коэффициент влияния на цену, применяемый к длинным ордерам, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Коэффициент влияния на цену, применяемый к длинным ордерам, fp9 в сыром виде.","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":"Коэффициент влияния на цену, применяемый к коротким ордерам, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Коэффициент влияния на цену, применяемый к коротким ордерам, fp9 в сыром виде.","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":"Правила торговли на рынке: комиссии, коэффициенты маржи и лимиты, с которыми сверяется ордер.","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":"Правила торговли на рынке: комиссии, коэффициенты маржи и лимиты, с которыми сверяется ордер.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"fee","type":"string · int32","required":true,"description":"Ставка торговой комиссии, fp9 в виде сырой дроби (`1000000` = 0.1%).","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ставка торговой комиссии, fp9 в виде сырой дроби (`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":"Наименьший коэффициент начальной маржи, который принимает рынок, fp9 в виде необработанной дроби — предел кредитного плеча.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Наименьший коэффициент начальной маржи, который принимает рынок, fp9 в виде необработанной дроби — предел кредитного плеча.","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":"Коэффициент начальной маржи рынка по умолчанию, fp9 в виде необработанной дроби.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Коэффициент начальной маржи рынка по умолчанию, fp9 в виде необработанной дроби.","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":"Коэффициент маржи, ниже которого позиция ликвидируется, fp9 в виде необработанной дроби.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Коэффициент маржи, ниже которого позиция ликвидируется, fp9 в виде необработанной дроби.","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":"Наибольшее кредитное плечо, разрешённое для каждого типа аккаунта, fp9 в необработанном виде, с ключом по типу аккаунта.","example":"{\n  \"key\": \"1000000000\"\n}","schema":{"type":"object","types":["object"],"description":"Наибольшее кредитное плечо, разрешённое для каждого типа аккаунта, fp9 в необработанном виде, с ключом по типу аккаунта.","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":"Наибольший спред, который будет взимать рынок, fp9 в виде необработанной дроби.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Наибольший спред, который будет взимать рынок, fp9 в виде необработанной дроби.","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":"Максимальное влияние на цену, которое может вызвать один ордер, fp9 в виде необработанной доли.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Максимальное влияние на цену, которое может вызвать один ордер, fp9 в виде необработанной доли.","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":"Максимально допустимое отклонение между рыночной и индексной ценой, fp9 в виде необработанной доли.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Максимально допустимое отклонение между рыночной и индексной ценой, fp9 в виде необработанной доли.","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":"Ограничение на открытый номинал, удерживаемый в длинной позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ограничение на открытый номинал, удерживаемый в длинной позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.","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":"Ограничение на открытый номинал, удерживаемый в короткой позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ограничение на открытый номинал, удерживаемый в короткой позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.","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":"Минимальное расстояние между текущей ценой и триггером стоп-ордера, fp9 в виде необработанной доли. Более близкий триггер отодвигается на это расстояние.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Минимальное расстояние между текущей ценой и триггером стоп-ордера, fp9 в виде необработанной доли. Более близкий триггер отодвигается на это расстояние.","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":"Принимает ли рынок только ордера, закрывающие позицию.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Принимает ли рынок только ордера, закрывающие позицию.","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":"Торгуется ли рынок в настоящее время без спреда.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Торгуется ли рынок в настоящее время без спреда.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"change","type":"object","required":true,"description":"Справочные цены для расчёта изменений цены за 1 ч, 4 ч и 24 ч.","example":"{\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}","schema":{"type":"object","types":["object"],"description":"Справочные цены для расчёта изменений цены за 1 ч, 4 ч и 24 ч.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"initialPrice","type":"number","required":true,"description":"Цена 24 часов назад, в виде десятичного числа — база дневного изменения. `0`, если история недоступна.","example":"0","schema":{"type":"number","types":["number"],"description":"Цена 24 часов назад, в виде десятичного числа — база дневного изменения. `0`, если история недоступна.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice1h","type":"number","required":true,"description":"Цена один час назад, в виде десятичного числа. `0`, если история недоступна.","example":"0","schema":{"type":"number","types":["number"],"description":"Цена один час назад, в виде десятичного числа. `0`, если история недоступна.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"initialPrice4h","type":"number","required":true,"description":"Цена четыре часа назад, в виде десятичного числа. `0`, когда история недоступна.","example":"0","schema":{"type":"number","types":["number"],"description":"Цена четыре часа назад, в виде десятичного числа. `0`, когда история недоступна.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"schedule","type":"object · nullable","required":true,"description":"Торговые сессии рынка. Null, когда рынок торгуется круглосуточно.","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":"Торговые сессии рынка. Null, когда рынок торгуется круглосуточно.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"nextPauseAt","type":"number","required":true,"description":"Начало следующего запланированного перерыва, временная метка Unix в миллисекундах. `0`, когда у рынка вообще нет перерывов, и `9007199254740991`, когда после текущего ничего не запланировано.","example":"0","schema":{"type":"number","types":["number"],"description":"Начало следующего запланированного перерыва, временная метка Unix в миллисекундах. `0`, когда у рынка вообще нет перерывов, и `9007199254740991`, когда после текущего ничего не запланировано.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"nextUnpauseAt","type":"number","required":true,"description":"Конец перерыва, в котором находится рынок, или следующего перерыва, временная метка Unix в миллисекундах. Те же `0` и правила для сигнальных значений, что и `nextPauseAt`.","example":"0","schema":{"type":"number","types":["number"],"description":"Конец перерыва, в котором находится рынок, или следующего перерыва, временная метка Unix в миллисекундах. Те же `0` и правила для сигнальных значений, что и `nextPauseAt`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestPauseAt","type":"number","required":true,"description":"То же значение, что и `nextPauseAt`. Сохранено для обратной совместимости.","example":"0","schema":{"type":"number","types":["number"],"description":"То же значение, что и `nextPauseAt`. Сохранено для обратной совместимости.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"closestUnpauseAt","type":"number","required":true,"description":"То же значение, что и `nextUnpauseAt`. Сохранено для обратной совместимости.","example":"0","schema":{"type":"number","types":["number"],"description":"То же значение, что и `nextUnpauseAt`. Сохранено для обратной совместимости.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"pausedAt","type":"number","required":true,"description":"Начало текущего перерыва, метка времени Unix в миллисекундах. `0`, когда рынок торгуется.","example":"0","schema":{"type":"number","types":["number"],"description":"Начало текущего перерыва, метка времени Unix в миллисекундах. `0`, когда рынок торгуется.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"inPause","type":"boolean","required":true,"description":"Находится ли рынок прямо сейчас в запланированном перерыве. Ордера отклоняются, пока он длится.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Находится ли рынок прямо сейчас в запланированном перерыве. Ордера отклоняются, пока он длится.","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":"Персональный API-ключ с префиксом `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":"Что такое проп-трейдинг","url":"https://docs.upscale.trade/ru"},{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},{"title":"Получить список рынков","url":"https://docs.upscale.trade/ru/developers/operations/getmarkets"}],"headings":[{"depth":2,"id":"authorization","title":"Авторизация"},{"depth":2,"id":"parameters","title":"Параметры"},{"depth":2,"id":"examples","title":"Примеры"},{"depth":2,"id":"responses","title":"Ответы"}],"markdown":"# Получить список рынков\n\n`GET /v2/markets`\n\nКаждый рынок, открытый для торговли, с его текущим снимком: цена, дневное изменение, границы кредитного плеча, комиссии и расписание торгов.\nСкрытые или исключённые из листинга рынки не включаются.\n\nПередача `accountId` считывает снимок из торгового шарда, который обслуживает этот счёт — состояние, по которому был бы оценён Ордер, размещённый на нём.\nЗдесь принадлежность счёта не проверяется: он только выбирает, какой шард отвечает.\n\n<a id=\"authorization\"></a>\n\n## Авторизация\n\nbearer: http · bearer (обязательно). Персональный API-ключ с префиксом `usk_`.\n\n<a id=\"parameters\"></a>\n\n## Параметры\n\n- query: accountId (string · uuid; необязательно). Торговый счёт, относительно которого формируется список рынков: границы кредитного плеча и доступность возвращаются применительно к этому счёту. Если не указан — возвращаются значения по умолчанию для всей платформы.\n\nТип: 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## Пример · 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## Пример · 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## Пример · 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## Ответ 401\n\n**401**  — Неавторизовано\n\n<a id=\"response-429\"></a>\n\n## Ответ 429\n\n**429**  — Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.\n\n<a id=\"response-default-marketv2response\"></a>\n\n## Ответ default · MarketV2Response\n\n**default** application/json — Ответ\n\nТип: object[]\n\n[]Схема: MarketV2Response\n\n[]Тип: object\n\n[]Обязательные поля: id, config, state, settings, change, schedule\n\n[]Типы обязательных полей: id (string · uuid; обязательно), config (object; обязательно), state (object; обязательно), settings (object; обязательно), change (object; обязательно), schedule (object · nullable; обязательно)\n\n- []id (string · uuid; обязательно)\n\n[]id пример: 00000000-0000-4000-8000-000000000000\n\n[]id.Тип: string · uuid\n\n[]id.Идентификатор рынка — значение, которое создание Ордера принимает в качестве `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; обязательно)\n\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\n[]config.Тип: object\n\n[]config.Обязательные поля: baseAsset, quoteAsset, settlementToken, type, name, description, ticker, imageLink, tags, category, priority\n\n[]config.Типы обязательных полей: baseAsset (string; обязательно), quoteAsset (string; обязательно), settlementToken (string; обязательно), type (string; обязательно), name (string; обязательно), description (string; обязательно), ticker (string; обязательно), imageLink (string; обязательно), tags (string[]; обязательно), category (string · enum; обязательно), priority (number · nullable; обязательно)\n\n[]config.Статическое описание рынка: активы, наименование и категория.\n\n- []config.baseAsset (string; обязательно)\n\n[]config.baseAsset пример: BTC\n\n[]config.baseAsset.Тип: string\n\n[]config.baseAsset.Тикер базового актива — значение, которое эндпоинты для конкретного рынка принимают как `asset`.\n\n- []config.quoteAsset (string; обязательно)\n\n[]config.quoteAsset пример: USD\n\n[]config.quoteAsset.Тип: string\n\n[]config.quoteAsset.Актив, в котором котируются цены активов и номиналы.\n\n- []config.settlementToken (string; обязательно)\n\n[]config.settlementToken пример: USD\n\n[]config.settlementToken.Тип: string\n\n[]config.settlementToken.Актив, в котором рассчитываются позиции.\n\n- []config.type (string; обязательно)\n\n[]config.type пример: base\n\n[]config.type.Тип: string\n\n[]config.type.Модель ценообразования рынка.\n\n- []config.name (string; обязательно)\n\n[]config.name пример: BTC\n\n[]config.name.Тип: string\n\n[]config.name.Отображаемое имя рынка.\n\n- []config.description (string; обязательно)\n\n[]config.description пример: Market description\n\n[]config.description.Тип: string\n\n[]config.description.Описание в свободной форме, отображаемое в приложении.\n\n- []config.ticker (string; обязательно)\n\n[]config.ticker пример: BTC/USD\n\n[]config.ticker.Тип: string\n\n[]config.ticker.Полная метка пары.\n\n- []config.imageLink (string; обязательно)\n\n[]config.imageLink пример: https://app.storm.tg/markets/btc.png\n\n[]config.imageLink.Тип: string\n\n[]config.imageLink.Иконка рынка.\n\n- []config.tags (string[]; обязательно)\n\n[]config.tags пример: [\n  \"Crypto\"\n]\n\n[]config.tags.Тип: string[]\n\n[]config.tags.Теги, по которым приложение группирует рынки.\n\n[]config.tags.[]Тип: string\n\n- []config.category (string · enum; обязательно)\n\n[]config.category пример: crypto\n\n[]config.category.Тип: string · enum\n\n[]config.category.Является ли рынок криптовалютным или реальным активом — аккаунт может быть ограничен одним из двух.\n\n[]config.category.Допустимые значения: [\"crypto\",\"rwa\"]\n\n- []config.priority (number · nullable; обязательно)\n\n[]config.priority пример: 0\n\n[]config.priority.Тип: number · nullable\n\n[]config.priority.Вес сортировки в списке рынков; более высокий идёт первым. Null, если не ранжирован.\n\n- []state (object; обязательно)\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\n[]state.Тип: object\n\n[]state.Обязательные поля: indexPrice, blockTimestamp, fundingRate, nextFundingAt, lastFundingAt, vpiSpread, vpiMarketDepthLong, vpiMarketDepthShort, vpiCoefficientLong, vpiCoefficientShort\n\n[]state.Типы обязательных полей: indexPrice (string · int32; обязательно), blockTimestamp (number; обязательно), fundingRate (string · int32; обязательно), nextFundingAt (number; обязательно), lastFundingAt (number · nullable; обязательно), vpiSpread (string · int32; обязательно), vpiMarketDepthLong (string · int32; обязательно), vpiMarketDepthShort (string · int32; обязательно), vpiCoefficientLong (string · int32; обязательно), vpiCoefficientShort (string · int32; обязательно)\n\n[]state.Текущее состояние: индексная цена, финансирование и глубина, относительно которой рассчитывается цена ордера.\n\n- []state.indexPrice (string · int32; обязательно)\n\n[]state.indexPrice пример: 1000000000\n\n[]state.indexPrice.Тип: string · int32\n\n[]state.indexPrice.Текущая индексная цена рынка, fp9 в сыром виде — то, относительно чего оцениваются ордера и сравниваются триггеры.\n\n[]state.indexPrice.format: int32\n\n[]state.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.blockTimestamp (number; обязательно)\n\n[]state.blockTimestamp пример: 0\n\n[]state.blockTimestamp.Тип: number\n\n[]state.blockTimestamp.Когда был создан этот снимок состояния, временная метка Unix в миллисекундах.\n\n- []state.fundingRate (string · int32; обязательно)\n\n[]state.fundingRate пример: 1000000000\n\n[]state.fundingRate.Тип: string · int32\n\n[]state.fundingRate.Ставка финансирования текущего интервала, fp9 в виде необработанной доли. Положительное значение означает, что лонги платят шортам.\n\n[]state.fundingRate.format: int32\n\n[]state.fundingRate.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.nextFundingAt (number; обязательно)\n\n[]state.nextFundingAt пример: 0\n\n[]state.nextFundingAt.Тип: number\n\n[]state.nextFundingAt.Когда в следующий раз будет произведен расчет финансирования, временная метка Unix в миллисекундах.\n\n- []state.lastFundingAt (number · nullable; обязательно)\n\n[]state.lastFundingAt пример: 0\n\n[]state.lastFundingAt.Тип: number · nullable\n\n[]state.lastFundingAt.Когда финансирование было рассчитано в последний раз, временная метка Unix в миллисекундах. Null до первого расчета.\n\n- []state.vpiSpread (string · int32; обязательно)\n\n[]state.vpiSpread пример: 1000000000\n\n[]state.vpiSpread.Тип: string · int32\n\n[]state.vpiSpread.Текущий спред, взимаемый сверх цены индекса, fp9 в виде необработанной доли.\n\n[]state.vpiSpread.format: int32\n\n[]state.vpiSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthLong (string · int32; обязательно)\n\n[]state.vpiMarketDepthLong пример: 1000000000\n\n[]state.vpiMarketDepthLong.Тип: string · int32\n\n[]state.vpiMarketDepthLong.Глубина, доступная на стороне лонгов, fp9 в необработанном виде. Крупные ордера против нее сдвигают цену исполнения.\n\n[]state.vpiMarketDepthLong.format: int32\n\n[]state.vpiMarketDepthLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiMarketDepthShort (string · int32; обязательно)\n\n[]state.vpiMarketDepthShort пример: 1000000000\n\n[]state.vpiMarketDepthShort.Тип: string · int32\n\n[]state.vpiMarketDepthShort.Глубина, доступная на стороне шорта, fp9 в сыром виде.\n\n[]state.vpiMarketDepthShort.format: int32\n\n[]state.vpiMarketDepthShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientLong (string · int32; обязательно)\n\n[]state.vpiCoefficientLong пример: 1000000000\n\n[]state.vpiCoefficientLong.Тип: string · int32\n\n[]state.vpiCoefficientLong.Коэффициент влияния на цену, применяемый к длинным ордерам, fp9 в сыром виде.\n\n[]state.vpiCoefficientLong.format: int32\n\n[]state.vpiCoefficientLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []state.vpiCoefficientShort (string · int32; обязательно)\n\n[]state.vpiCoefficientShort пример: 1000000000\n\n[]state.vpiCoefficientShort.Тип: string · int32\n\n[]state.vpiCoefficientShort.Коэффициент влияния на цену, применяемый к коротким ордерам, fp9 в сыром виде.\n\n[]state.vpiCoefficientShort.format: int32\n\n[]state.vpiCoefficientShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings (object; обязательно)\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\n[]settings.Тип: object\n\n[]settings.Обязательные поля: fee, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, maxLeverageByAccount, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotionalLong, maxOpenNotionalShort, minStopTriggerDistanceRatio, isCloseOnly, isClosed, isPaused, isZeroSpread\n\n[]settings.Типы обязательных полей: fee (string · int32; обязательно), minInitMarginRatio (string · int32; обязательно), initMarginRatio (string · int32; обязательно), maintenanceMarginRatio (string · int32; обязательно), maxLeverageByAccount (object; обязательно), spreadLimit (string · int32; обязательно), maxPriceImpact (string · int32; обязательно), maxPriceSpread (string · int32; обязательно), maxOpenNotionalLong (string · int32; обязательно), maxOpenNotionalShort (string · int32; обязательно), minStopTriggerDistanceRatio (string · int32; обязательно), isCloseOnly (boolean; обязательно), isClosed (boolean; обязательно), isPaused (boolean; обязательно), isZeroSpread (boolean; обязательно)\n\n[]settings.Правила торговли на рынке: комиссии, коэффициенты маржи и лимиты, с которыми сверяется ордер.\n\n- []settings.fee (string · int32; обязательно)\n\n[]settings.fee пример: 1000000000\n\n[]settings.fee.Тип: string · int32\n\n[]settings.fee.Ставка торговой комиссии, fp9 в виде сырой дроби (`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; обязательно)\n\n[]settings.minInitMarginRatio пример: 1000000000\n\n[]settings.minInitMarginRatio.Тип: string · int32\n\n[]settings.minInitMarginRatio.Наименьший коэффициент начальной маржи, который принимает рынок, fp9 в виде необработанной дроби — предел кредитного плеча.\n\n[]settings.minInitMarginRatio.format: int32\n\n[]settings.minInitMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.initMarginRatio (string · int32; обязательно)\n\n[]settings.initMarginRatio пример: 1000000000\n\n[]settings.initMarginRatio.Тип: string · int32\n\n[]settings.initMarginRatio.Коэффициент начальной маржи рынка по умолчанию, fp9 в виде необработанной дроби.\n\n[]settings.initMarginRatio.format: int32\n\n[]settings.initMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maintenanceMarginRatio (string · int32; обязательно)\n\n[]settings.maintenanceMarginRatio пример: 1000000000\n\n[]settings.maintenanceMarginRatio.Тип: string · int32\n\n[]settings.maintenanceMarginRatio.Коэффициент маржи, ниже которого позиция ликвидируется, fp9 в виде необработанной дроби.\n\n[]settings.maintenanceMarginRatio.format: int32\n\n[]settings.maintenanceMarginRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxLeverageByAccount (object; обязательно)\n\n[]settings.maxLeverageByAccount пример: {\n  \"key\": \"1000000000\"\n}\n\n[]settings.maxLeverageByAccount.Тип: object\n\n[]settings.maxLeverageByAccount.Наибольшее кредитное плечо, разрешённое для каждого типа аккаунта, fp9 в необработанном виде, с ключом по типу аккаунта.\n\n[]settings.maxLeverageByAccount.*.Тип: string · int32\n\n[]settings.maxLeverageByAccount.*.Пример: \"1000000000\"\n\n[]settings.maxLeverageByAccount.*.format: int32\n\n[]settings.maxLeverageByAccount.*.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.spreadLimit (string · int32; обязательно)\n\n[]settings.spreadLimit пример: 1000000000\n\n[]settings.spreadLimit.Тип: string · int32\n\n[]settings.spreadLimit.Наибольший спред, который будет взимать рынок, fp9 в виде необработанной дроби.\n\n[]settings.spreadLimit.format: int32\n\n[]settings.spreadLimit.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceImpact (string · int32; обязательно)\n\n[]settings.maxPriceImpact пример: 1000000000\n\n[]settings.maxPriceImpact.Тип: string · int32\n\n[]settings.maxPriceImpact.Максимальное влияние на цену, которое может вызвать один ордер, fp9 в виде необработанной доли.\n\n[]settings.maxPriceImpact.format: int32\n\n[]settings.maxPriceImpact.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxPriceSpread (string · int32; обязательно)\n\n[]settings.maxPriceSpread пример: 1000000000\n\n[]settings.maxPriceSpread.Тип: string · int32\n\n[]settings.maxPriceSpread.Максимально допустимое отклонение между рыночной и индексной ценой, fp9 в виде необработанной доли.\n\n[]settings.maxPriceSpread.format: int32\n\n[]settings.maxPriceSpread.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalLong (string · int32; обязательно)\n\n[]settings.maxOpenNotionalLong пример: 1000000000\n\n[]settings.maxOpenNotionalLong.Тип: string · int32\n\n[]settings.maxOpenNotionalLong.Ограничение на открытый номинал, удерживаемый в длинной позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.\n\n[]settings.maxOpenNotionalLong.format: int32\n\n[]settings.maxOpenNotionalLong.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.maxOpenNotionalShort (string · int32; обязательно)\n\n[]settings.maxOpenNotionalShort пример: 1000000000\n\n[]settings.maxOpenNotionalShort.Тип: string · int32\n\n[]settings.maxOpenNotionalShort.Ограничение на открытый номинал, удерживаемый в короткой позиции на этом рынке, fp9 в необработанном виде. `0` означает отсутствие ограничения.\n\n[]settings.maxOpenNotionalShort.format: int32\n\n[]settings.maxOpenNotionalShort.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.minStopTriggerDistanceRatio (string · int32; обязательно)\n\n[]settings.minStopTriggerDistanceRatio пример: 1000000000\n\n[]settings.minStopTriggerDistanceRatio.Тип: string · int32\n\n[]settings.minStopTriggerDistanceRatio.Минимальное расстояние между текущей ценой и триггером стоп-ордера, fp9 в виде необработанной доли. Более близкий триггер отодвигается на это расстояние.\n\n[]settings.minStopTriggerDistanceRatio.format: int32\n\n[]settings.minStopTriggerDistanceRatio.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settings.isCloseOnly (boolean; обязательно)\n\n[]settings.isCloseOnly пример: true\n\n[]settings.isCloseOnly.Тип: boolean\n\n[]settings.isCloseOnly.Принимает ли рынок только ордера, закрывающие позицию.\n\n- []settings.isClosed (boolean; обязательно)\n\n[]settings.isClosed пример: true\n\n[]settings.isClosed.Тип: boolean\n\n- []settings.isPaused (boolean; обязательно)\n\n[]settings.isPaused пример: true\n\n[]settings.isPaused.Тип: boolean\n\n- []settings.isZeroSpread (boolean; обязательно)\n\n[]settings.isZeroSpread пример: true\n\n[]settings.isZeroSpread.Тип: boolean\n\n[]settings.isZeroSpread.Торгуется ли рынок в настоящее время без спреда.\n\n- []change (object; обязательно)\n\n[]change пример: {\n  \"initialPrice\": 0,\n  \"initialPrice1h\": 0,\n  \"initialPrice4h\": 0\n}\n\n[]change.Тип: object\n\n[]change.Обязательные поля: initialPrice, initialPrice1h, initialPrice4h\n\n[]change.Типы обязательных полей: initialPrice (number; обязательно), initialPrice1h (number; обязательно), initialPrice4h (number; обязательно)\n\n[]change.Справочные цены для расчёта изменений цены за 1 ч, 4 ч и 24 ч.\n\n- []change.initialPrice (number; обязательно)\n\n[]change.initialPrice пример: 0\n\n[]change.initialPrice.Тип: number\n\n[]change.initialPrice.Цена 24 часов назад, в виде десятичного числа — база дневного изменения. `0`, если история недоступна.\n\n- []change.initialPrice1h (number; обязательно)\n\n[]change.initialPrice1h пример: 0\n\n[]change.initialPrice1h.Тип: number\n\n[]change.initialPrice1h.Цена один час назад, в виде десятичного числа. `0`, если история недоступна.\n\n- []change.initialPrice4h (number; обязательно)\n\n[]change.initialPrice4h пример: 0\n\n[]change.initialPrice4h.Тип: number\n\n[]change.initialPrice4h.Цена четыре часа назад, в виде десятичного числа. `0`, когда история недоступна.\n\n- []schedule (object · nullable; обязательно)\n\n[]schedule пример: {\n  \"nextPauseAt\": 0,\n  \"nextUnpauseAt\": 0,\n  \"closestPauseAt\": 0,\n  \"closestUnpauseAt\": 0,\n  \"pausedAt\": 0,\n  \"inPause\": true\n}\n\n[]schedule.Тип: object · nullable\n\n[]schedule.Обязательные поля: nextPauseAt, nextUnpauseAt, closestPauseAt, closestUnpauseAt, pausedAt, inPause\n\n[]schedule.Типы обязательных полей: nextPauseAt (number; обязательно), nextUnpauseAt (number; обязательно), closestPauseAt (number; обязательно), closestUnpauseAt (number; обязательно), pausedAt (number; обязательно), inPause (boolean; обязательно)\n\n[]schedule.Торговые сессии рынка. Null, когда рынок торгуется круглосуточно.\n\n- []schedule.nextPauseAt (number; обязательно)\n\n[]schedule.nextPauseAt пример: 0\n\n[]schedule.nextPauseAt.Тип: number\n\n[]schedule.nextPauseAt.Начало следующего запланированного перерыва, временная метка Unix в миллисекундах. `0`, когда у рынка вообще нет перерывов, и `9007199254740991`, когда после текущего ничего не запланировано.\n\n- []schedule.nextUnpauseAt (number; обязательно)\n\n[]schedule.nextUnpauseAt пример: 0\n\n[]schedule.nextUnpauseAt.Тип: number\n\n[]schedule.nextUnpauseAt.Конец перерыва, в котором находится рынок, или следующего перерыва, временная метка Unix в миллисекундах. Те же `0` и правила для сигнальных значений, что и `nextPauseAt`.\n\n- []schedule.closestPauseAt (number; обязательно)\n\n[]schedule.closestPauseAt пример: 0\n\n[]schedule.closestPauseAt.Тип: number\n\n[]schedule.closestPauseAt.То же значение, что и `nextPauseAt`. Сохранено для обратной совместимости.\n\n- []schedule.closestUnpauseAt (number; обязательно)\n\n[]schedule.closestUnpauseAt пример: 0\n\n[]schedule.closestUnpauseAt.Тип: number\n\n[]schedule.closestUnpauseAt.То же значение, что и `nextUnpauseAt`. Сохранено для обратной совместимости.\n\n- []schedule.pausedAt (number; обязательно)\n\n[]schedule.pausedAt пример: 0\n\n[]schedule.pausedAt.Тип: number\n\n[]schedule.pausedAt.Начало текущего перерыва, метка времени Unix в миллисекундах. `0`, когда рынок торгуется.\n\n- []schedule.inPause (boolean; обязательно)\n\n[]schedule.inPause пример: true\n\n[]schedule.inPause.Тип: boolean\n\n[]schedule.inPause.Находится ли рынок прямо сейчас в запланированном перерыве. Ордера отклоняются, пока он длится.\n\nПример\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":"Получить список рынков Каждый рынок, открытый для торговли, с его текущим снимком: цена, дневное изменение, границы кредитного плеча, комиссии и расписание торгов. Скрытые или исключённые из листинга рынки не включаются. Передача `accountId` считывает снимок из торгового шарда, который обслуживает этот счёт — состояние, по которому был бы оценён Ордер, размещённый на нём. Здесь принадлежность счёта не проверяется: он только выбирает, какой шард отвечает. GET /v2/markets Config accountId Торговый счёт, относительно которого формируется список рынков: границы кредитного плеча и доступность возвращаются применительно к этому счёту. Если не указан — возвращаются значения по умолчанию для всей платформы. string · uuid 401 Неавторизовано 429 Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`. default Ответ","api":{"title":"Публичный API Upscale","version":"d796ac9","documentation":"https://docs.upscale.trade/ru/developers","playgroundServer":"https://api.upscale.trade"}}