Перейти к основному содержимому

Лимиты

WebSocket API предоставляет портфельные данные клиента в реальном времени: позиции, денежные лимиты, фьючерсные данные, ГО, долговые нагрузки и др.


🔌 WebSocket URL

wss://ws.broker.ru/trade-api-bff-limit/api/v1/limits/ws

🔐 Аутентификация

Перед установкой WebSocket-соединения клиент должен передать access-token в HTTP-заголовке:

Authorization: Bearer <ACCESS_TOKEN>

Подробнее об авторизации см. раздел Авторизация.


📥 Формат server → client

Сервер отправляет единый объект, содержащий актуальные данные:

  • depoLimit
  • futureHolding
  • moneyLimits
  • futuresLimits

📦 depoLimit — позиции по инструментам

ПолеТипОписание
tickerstringТикер инструмента
classCodestringКод класса ценной бумаги
exchangestringКод биржи
averagePricenumberСредневзвешенная цена открытия позиции
quantity.typestring (enum)Режим расчетов — срок, в течение которого произойдет расчет по сделке. Подробнее
quantity.valuenumberКоличество этого актива в вашем портфеле в штуках
quantityBatch.typestring (enum)Режим расчетов — срок, в течение которого произойдет расчет по сделке. Подробнее
quantityBatch.valuenumberКоличество этого актива в вашем портфеле в лотах
instrumentTypestring (enum)Тип инструмента (например, акция, облигация)
loadDatestring (datetime)Дата и время обновления данных
lockedBuyValuenumberКоличество денег в активных заявках на покупку данной бумаги
lockedSellValuenumberКоличество денег в активных заявках на продажу данной бумаги
lockedBuyQuantitynumberКоличество заблокированных ценных бумаг под заявки на покупку в штуках
lockedSellQuantitynumberКоличество заблокированных ценных бумаг под заявки на продажу в штуках

📦 futureHolding — фьючерсные позиции

ПолеТипОписание
tickerstringТикер инструмента
classCodestringКод класса ценной бумаги
exchangestringКод биржи
cbplPlannednumberСтоимостная оценка планируемых позиций после ближайшего клиринга
varMarginnumberОценка размера вариационной марки по позициям
positionValuenumberСтоимость позиций срочного рынка
totalNetnumberТекущие чистые позиции
executionDatestring (datetime)Дата исполнения
totalVarMarginnumberСуммарная вариационная маржа по итогам основного клиринга, начисленная по всем позициям
realVarMarginnumberНачисленная в ходе клиринга вариационная маржа
averagePricenumberСредневзвешенная цена открытия позиции
instrumentTypestring (enum)Тип инструмента
tradeDatestring (datetime)Дата торговой сессии

📦 moneyLimits — остатки по валютам

ПолеТипОписание
exchangestringКод биржи
currencyCodestringКод валюты
lockednumberКоличество денег, занятых в активных заявках
averagePricenumberСредневзвешенная цена открытия позиции
instrumentTypestring (enum)Тип инструмента
quantity.typestring (enum)Режим расчетов — срок, в течение которого произойдет расчет по сделке. Подробнее
quantity.valuenumberКоличество этого актива в вашем портфеле в штуках
loadDatestring (datetime)Дата и время обновления данных

📦 futuresLimits — лимиты по срочному рынку

ПолеТипОписание
currencyCodestringКод валюты
exchangestringКод биржи
accruedintnumberВариационная маржа на текущий день
cbpLimitnumberТекущий лимит открытых позиций
cbplUsednumberПозиции после последнего клиринга
cbplPlannednumberСтоимостная оценка планируемых позиций после ближайшего клиринга
cbplUsedForOrdersnumberВеличина ГО, зарезервированного под клиентские заявки
cbplUsedForPositionsnumberВеличина ГО, зарезервированного под открытые клиентские позиции
optionsPremiumnumberПремии по опционам
instrumentTypestring (enum)Тип инструмента
loadDatestring (datetime)Дата и время обновления данных
varMarginnumberОценка размера вариационной марки по позициям
realVarMarginnumberНачисленная в ходе клиринга вариационная маржа

📋 Пример ответа

{
"depoLimit": [
{
"ticker": "SBER",
"classCode": "TQBR",
"exchange": "MOEX",
"averagePrice": 300.526666,
"quantity": {
"type": "T365",
"value": 2
},
"quantityBatch": {
"type": "T365",
"value": 2
},
"instrumentType": "STOCK",
"loadDate": "2025-11-13T21:00:00.000Z",
"lockedBuyValue": 0,
"lockedSellValue": 0,
"lockedBuyQuantity": 0,
"lockedSellQuantity": 0
}
],
"futureHolding": [],
"moneyLimits": [
{
"exchange": "MOEX",
"currencyCode": "RUB",
"locked": 0,
"averagePrice": 0,
"instrumentType": "MONEY",
"quantity": {
"type": "T365",
"value": 4544.79
},
"loadDate": "2025-11-13T21:00:00.000Z"
},
{
"exchange": "MOEX",
"currencyCode": "USD",
"locked": 0,
"averagePrice": 0,
"instrumentType": "MONEY",
"quantity": {
"type": "T365",
"value": 0
},
"loadDate": "2025-11-13T21:00:00.000Z"
}
],
"futuresLimits": [
{
"currencyCode": "RUB",
"exchange": "FORTS",
"accruedint": 0,
"cbpLimit": -0.26,
"cbplUsed": 0,
"cbplPlanned": 0,
"cbplUsedForOrders": 0,
"cbplUsedForPositions": 0,
"optionsPremium": 0,
"instrumentType": "MONEY",
"loadDate": "2025-11-13T21:00:00.000Z",
"varMargin": 0,
"realVarMargin": 0
}
]
}

💻 Примеры подключения

import WebSocket from "ws";

const URL = "wss://ws.broker.ru/trade-api-bff-limit/api/v1/limits/ws";

const ws = new WebSocket(URL, {
headers: {
Authorization: "Bearer YOUR_ACCESS_TOKEN",
},
});

ws.on("open", () => {
console.log("connected");
});

ws.on("message", (event) => {
const payload = JSON.parse(event.toString());
console.log(payload);
});

ws.on("error", (error) => {
console.error("WebSocket error:", error);
});

❗ Ошибки

HTTPОшибкаОписание
401UNAUTHORIZEDПользователь не авторизован
500INTERNAL SERVER ERRORОшибка сервера