Московская биржа — ISS (Informational & Statistical Server): Получить итоги торгов по всем акциям за день

Сценарий из mcp-everything. Актуально на 2026-10-24.

Цены закрытия, число сделок и объёмы по каждой бумаге — для аналитики, бэктестов и отчётов по портфелю.

  1. Запроси итоги: GET /iss/history/engines/{engine}/markets/{market}/boards/{board}/securities.json с engine = stock, market = shares, board — режимом торгов (основной для акций — TQBR) и date в формате YYYY-MM-DD.
  2. В ответе блок history: columns — названия колонок, data — строки. Нужные колонки — SECID (тикер), LEGALCLOSEPRICE (цена закрытия), NUMTRADES (число сделок).
  3. Ответ приходит частями: увеличивай start на число полученных строк и повторяй, пока data не станет пустым.
  4. Дробные числа — с точкой, пустые значения — null. Для части данных (реальное время) нужна авторизация через MOEX Passport: cookie MicexPassportCert передаётся в каждом запросе.
import requests

URL = "https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities.json"
rows, start = [], 0
while True:
    block = requests.get(URL, params={"date": "2026-10-23", "start": start}).json()["history"]
    if not block["data"]:
        break
    cols = block["columns"]
    rows += [dict(zip(cols, r)) for r in block["data"]]
    start += len(block["data"])

for r in rows[:5]:
    print(r["SECID"], r["LEGALCLOSEPRICE"], r["NUMTRADES"])

Базовые URL

Авторизация

Тип: Basic Auth

Запрос к https://passport.moex.com/authenticate с заголовком Authorization: Basic base64(user:password) (учётная запись MOEX Passport). В ответ приходит cookie MicexPassportCert, которую нужно передавать в следующих запросах к ISS. По примерам, логин и пароль нужны для данных в реальном времени и для запрошенных в примере исторических данных. При истечении cookie авторизацию повторяют.

Методы сценария

GET /iss/history/engines/{engine}/markets/{market}/boards/{board}/securities.json — Итоги торгов по всем инструментам за дату

Ответ приходит частями: увеличивайте start на число полученных строк, пока ответ не станет пустым. В блоке history поле columns — список идентификаторов колонок, data — строки; среди колонок SECID, LEGALCLOSEPRICE, NUMTRADES.

Тот же запрос в XML — securities.xml: блок <data id="history">, строки в <rows>, значения в атрибутах.

Параметр Где Тип Обяз. Описание
engine path string да Торговая система, например stock
market path string да Рынок, например shares
board path string да Режим торгов, например eqne
date query string да Дата торгов YYYY-MM-DD, например 2010-04-29
start query integer нет Смещение для постраничной загрузки
iss.json query string нет extended — идентификаторы колонок вместе с данными в каждой строке (больше трафика)

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://iss.moex.com/iss/reference/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/moex-iss.md