К содержимому
logologo-text

API

Лонгрид 7 из 13Курс

Получать данные через WebSocket

~5 мин чтенияОбновлено 28 сентября 2026

Содержание

REST вернул снимок на момент запроса. Для постоянно меняющихся данных откроем одно соединение wss://api.finam.ru/ws и подпишемся на котировки.

Какие подписки доступны

Тип

Данные

QUOTES

Котировки по списку инструментов

ORDER_BOOK

Изменения стакана по инструменту

BARS

Свечи по инструменту и таймфрейму

INSTRUMENT_TRADES

Рыночные сделки по инструменту

ORDERS

Собственные заявки по счёту

TRADES

Собственные сделки по счёту

ACCOUNT

Изменения состояния счёта

Один сокет может обслуживать несколько подписок. Команды UNSUBSCRIBE и UNSUBSCRIBE_ALL позволяют освободить ненужные подписки без открытия нового соединения.

Дождитесь рукопожатия

После подключения сервер присылает событие HANDSHAKE_SUCCESS. Только после него пример отправляет SUBSCRIBE. Это делает порядок запуска явным и соответствует официальным примерам клиента.

quotes.mjs

REST и WebSocket кодируют decimal по-разному

В REST котировка выглядит так:

JSON

В WebSocket — так:

JSON

Поэтому в потоковом коде используется quote.last, а не quote.last.value. Нельзя без проверки переносить модель ответа из одного протокола в другой.

Как устроен конверт

type

Что находится внутри

DATA

subscription_type, timestamp и полезная нагрузка payload

ERROR

error_info с типом, кодом и сообщением

EVENT

event_info, например HANDSHAKE_SUCCESS или CONNECTION_CLOSED

Ошибка может находиться и внутри payload

Помимо конверта ERROR, некоторые потоковые ответы содержат поле payload.error. Проверяйте оба уровня, если используете стакан, свечи или другие типы подписок.

Почему поток всё равно требует REST

WebSocket сообщает об изменениях, но не заменяет восстановление состояния. После запуска или обрыва:

  1. получите свежий access_key;

  2. подключитесь и дождитесь HANDSHAKE_SUCCESS;

  3. восстановите подписки;

  4. запросите актуальный снимок через REST;

  5. сопоставьте снимок с локальными заявками и позициями.

Конец лонгрида

Дочитаете до конца — засчитается автоматически
Лонгрид 7 из 13

Предложить идею

Заполните форму ниже, и мы свяжемся с вами.

Увеличить лимиты API

Заполните форму ниже, и мы свяжемся с вами.