Документация к InvestStats API v1.2 Beta

Экспериментальное API для получения статистических данных из сервиса статистики. Доступно всем зарегистрированным пользователям. Данные за текущий торговый день, а так же данные о начислении вариационной маржи (по фьючерсам), доступны с оформленной подпиской. Если есть вопросы обратитесь в техническую поддержку.

Авторизация в API

Для успешной работы с API требуется передавать наш токен доступа в header каждого запроса. Токен можно получить в настройках аккаунта.

Токен выдается нашим сервисом и не является токеном для брокера Тинькофф или Алор Брокер.

Формат заголовка:
Authorization: Bearer [токен доступа сервиса InvestStats]

Например:
Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx

Методы

GET
https://api.investstats.ru/v1/profit Финансовый результат за период

Параметры запроса

broker (string)* – брокер (доступные значения: tinkoff, alor);

brokerAccountId (string)* – идентификатор счёта;

brokerAccountType (string)* – тип брокерского счета (доступные значения: Tinkoff, TinkoffIis для брокера Тинькофф и FOND для Алор);

period (string)* – период выбора статистики (доступные значения: thisDay, previousDay, thisMonth, previousMonth, thisYear);

detailed (bool) – если передать true, то фин.результат будет сгруппирован по тикерам и будет добавлена статистика успешных сделок. По умолчанию финансовый результат сгруппирован по валютам;

varmargin (bool) – если передать true, то будет расчитана текущая вариационная маржа. Работает в тестовом режиме в связке с опцией detailed при выбранном периоде thisDay и активной настройкой в панели управления пользователя.

* – обязательный параметр.

Пример

curl --request GET \ --url 'https://api.investstats.ru/v1/profit?broker=tinkoff&brokerAccountId=1000000001&brokerAccountType=Tinkoff&period=thisDay' \ --header 'Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx'

{
  "result": {
    "profit": {
      "title": "сегодня, воскресенье",
      "uri": "https://investstats.ru/profit/2024-04-28",
      "summary": {
        "USD": {
          "profit": "300.77",
          "commission": "-4.71",
          "turnover": "12873.56"
        },
        "RUB": {
          "profit": "5268.57",
          "commission": "-53.20",
          "turnover": "322873.56",
          "varmargin": "5321.77"
        }
      }
    },
    "account": {
      "active": true,
      "turbo": true,
      "update_date": "2024-04-28T13:36:00+0300",
      "update_period": 1,
      "average_type": "fifo",
      "marker": ""
    }
  },
  "status": "200"
}

Параметры ответа

  • result (array) – результат ответа на запрос:
    • profit (array) – массив данных с выбранной информацией о фин.результате;
      • title (string) – заголовок периода;
      • url (string) – ссылка на подробную статистику по периоду;
      • summary (array) – массив валют по которым сгруппирован фин.результат;
        • CURRENCY (string) – идентификатор валюты (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
          • profit (demical) – общий фин.результат с учетом всех комиссий;
          • commission (demical) – сумма комиссии отдельно;
          • turnover (demical) – оборот средств за период;
          • varmargin (demical) – начисленная вариационная маржа;
    • account (array) – информация о счете;
      • active (bool) – активный счет в рамках сервиса (true – активен и обновляется, false – не активен);
      • turbo (bool) – режим турбо обновление у счета (true – подключен, false – не подключен);
      • update_date (DateTime ISO8601) – последнее время обновления счета в MSK;
      • update_period (integer) – период обновления счета в минутах;
      • average_type (string) – способ подсчета средней стоимости бумаг в портфеле (fifo или wap);
      • marker (string) – маркер указывающий на состояние счета (recalc - пересчет операций в процессе, reload - перезагрузка операций в процессе);
  • status (integer) – код ответа.

Пример (detailed=true и varmargin=true)

curl --request GET \ --url 'https://api.investstats.ru/v1/profit?broker=tinkoff&brokerAccountId=1000000001&brokerAccountType=Tinkoff&period=thisDay&detailed=true&varmargin=true' \ --header 'Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx'

{
  "result": {
    "profit": {
      "title": "сегодня, воскресенье",
      "uri": "https://investstats.ru/profit/2024-04-28",
      "summary": {
        "USD": {
          "profit": "300.77",
          "commission": "-4.71",
          "turnover": "12873.56"
        },
        "RUB": {
          "profit": "5268.57",
          "commission": "-53.20",
          "turnover": "322873.56",
          "varmargin": "5321.77"
        }
      },
      "varmargin": {
        "RUB": "-2000.00"
      },
      "data": {
        "AAPL": {
          "profit": "100.77",
          "commission": "-3.48",
          "currency": "USD",
          "type": "Stock"
        },
        "AMZN": {
          "profit": "200.00",
          "commission": "-1.23",
          "currency": "USD",
          "type": "Stock"
        },
        "SiU2": {
          "profit": "3321.77",
          "currency": "ITEM",
          "type": "Future"
        }
      },
      "stat": {
        "all": 3,
        "profit": 3,
        "loss": 0
      }
    },
    "account": {
      "active": true,
      "turbo": true,
      "update_date": "2024-04-28T13:36:00+0300",
      "update_period": 1,
      "average_type": "fifo",
      "marker": ""
    }
  },
  "status": "200"
}

Параметры ответа

  • result (array) – результат ответа на запрос:
    • profit (array) – массив данных с выбранной информацией о фин.результате;
      • title (string) – заголовок периода;
      • url (string) – ссылка на подробную статистику по периоду;
      • summary (array) – массив валют по которым сгруппирован фин.результат;
        • CURRENCY (string) – идентификатор валюты (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
          • profit (demical) – общий фин.результат с учетом всех комиссий;
          • commission (demical) – сумма комиссии отдельно;
          • turnover (demical) – оборот средств за период;
          • varmargin (demical) – начисленная вариационная маржа;
      • varmargin (demical) – массив валют по которым есть текущая вариационная маржа;
        • CURRENCY (demical) – идентификатор валюты (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY);
      • data (array) – массив тикеров с данным фин.результата;
        • TICKER (string) – идентификатор инструмента (тикер);
          • profit (demical) – фин.результат с учетом всех комиссий;
          • profit_(валюта) (demical, опционально) – фин.результат в случае если валюта отличается от основной;
          • commission (demical) – сумма комиссии;
          • commission_(валюта) (demical, опционально) – комиссия в случае если валюта отличается от основной;
          • dividends (demical, опционально) – начисленные дивиденды;
          • dividends_(валюта) (demical, опционально) – дивиденды в случае если валюта отличается от основной;
          • coupons (demical, опционально) – начисленные купонного дохода;
          • repayment (demical, опционально) – погашение облигаций;
          • tax (demical, опционально) – удержание НДФЛ;
          • currency (string) – валюта инструмента (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
          • type (string) – тип инструмента (Stock – акции, Currency – валюты, Etf – фонды, Bond – облигации, Future – фьючерсы, Option – опционы, SP – структурные ноты);
      • stat (array) – статистика сделок за период;
        • all (integer) – общее кол-во сделок;
        • profit (integer) – кол-во успешных сделок;
        • loss (integer) – кол-во неудачных сделок;
    • account (array) – информация о счете;
      • active (bool) – активный счет в рамках сервиса (true – активен и обновляется, false – не активен);
      • turbo (bool) – режим турбо обновление у счета (true – подключен, false – не подключен);
      • update_date (DateTime ISO8601) – последнее время обновления счета в MSK;
      • update_period (integer) – период обновления счета в минутах;
      • average_type (string) – способ подсчета средней стоимости бумаг в портфеле (fifo или wap);
      • marker (string) – маркер указывающий на состояние счета (recalc - пересчет операций в процессе, reload - перезагрузка операций в процессе);
  • status (integer) – код ответа.

Доступ к методу – без ограничений к статистике за вчера (period=previousDay), остальные периоды по подписке.

GET
https://api.investstats.ru/v1/trades Последние операции по счету

Выбор последних операций по счету за текущий торговый день. Максимальное кол-во строк в выборке – 100.

Параметры запроса

broker (string)* – брокер (доступные значения: tinkoff, alor);

brokerAccountId (string)* – идентификатор счёта;

brokerAccountType (string)* – тип брокерского счета (доступные значения: Tinkoff, TinkoffIis для брокера Тинькофф и FOND для Алор);

time (DateTime ISO8601) – время с которого требуется выбрать операции по счету в рамках текущего торгового дня (начало в 07:00 MSK).

* – обязательный параметр.

Пример

curl --request GET \ --url 'https://api.investstats.ru/v1/trades?broker=tinkoff&brokerAccountId=1000000001&brokerAccountType=Tinkoff&time=2024-04-28T13:31:19+0300' \ --header 'Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx'

{
  "result": {
    "trades": [
      {
        "operationId": "120000001",
        "operationType": "Sell",
        "date": "2024-04-28T20:22:38+0300",
        "ticker": "SQ",
        "type": "Stock",
        "exchange": "SPBX",
        "trade_price": "84.53",
        "trade_currency": "USD",
        "trade_quantity": 3,
        "balance_cnt": 0,
        "balance_average": "0.00",
        "profit_sum": "1.52",
        "profit_percent": "0.60",
        "commission": "-0.10",
        "commission_currency": "USD"
      },
      {
        "operationId": "120000000",
        "operationType": "Buy",
        "date": "2024-04-28T15:32:08+0300",
        "ticker": "SQ",
        "type": "Stock",
        "exchange": "SPBX",
        "trade_price": "80.89",
        "trade_currency": "USD",
        "trade_quantity": 1,
        "balance_cnt": 3,
        "balance_average": "84.03",
        "profit_sum": "0.00",
        "profit_percent": "0.00",
        "commission": "-0.03",
        "commission_currency": "USD"
      }
    ],
    "account": {
      "active": true,
      "turbo": true,
      "update_date": "2024-04-28T13:36:00+0300",
      "update_period": 1,
      "average_type": "fifo",
      "marker": ""
    },
    "cnt": "2",
    "time": "2024-04-28T13:36:19+0300"
  },
  "status": "200"
}

Параметры ответа

  • result (array) – результат ответа на запрос:
    • trades (array) – массив операций;
      • operationId (string) – уникальный номер операции;
      • operationType (string) – тип операции (Buy – покупка, Sell – продажа);
      • date (DateTime ISO8601) – дата операции;
      • ticker (string) – идентификатор инструмента;
      • type (string) – тип инструмента (Stock – акции, Currency – валюты, Etf – фонды, Bond – облигации, Future – фьючерсы, Option – опционы, SP – структурные ноты);
      • exchange (string, demo) – биржа (SPBX – СПБ Биржа, MOEX – Московская биржа, OTC – внебиржевой рынок);
      • trade_price (demical) – средняя цена операции за 1 лот;
      • trade_currency (string) – валюта операции (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
      • trade_quantity (integer) – кол-во лотов;
      • balance_cnt (integer) – остаток позиций в портфеле;
      • balance_average (demical) – средняя цена инструмента в портфеле;
      • profit_sum (demical) – фин.результат сделки без учета комиссии;
      • profit_percent (demical) – фин.результат в процентах;
      • commission (demical) – сумма комиссии за операцию;
      • commission_currency (string) – валюта списания комиссии (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY);
    • account (array) – информация о счете;
      • active (bool) – активный счет в рамках сервиса (true – активен и обновляется, false – не активен);
      • turbo (bool) – режим турбо обновление у счета (true – подключен, false – не подключен);
      • update_date (DateTime ISO8601) – последнее время обновления счета в MSK;
      • update_period (integer) – период обновления счета в минутах;
      • average_type (string) – способ подсчета средней стоимости бумаг в портфеле (fifo или wap);
      • marker (string) – маркер указывающий на состояние счета (recalc - пересчет операций в процессе, reload - перезагрузка операций в процессе);
    • cnt (integer) – кол-во операций удовлетворяющих условию. Максимальное кол-во строк в ответе за запрос – 100;
    • time (DateTime ISO8601) – время последней проверки (для подстановки в последующий запрос);
  • status (integer) – код ответа.

Доступ к методу – по подписке.

GET
https://api.investstats.ru/v1/tariff Информация о тарифе

Параметры запроса – отсутствуют

Пример

curl --request GET \ --url 'https://api.investstats.ru/v1/tariff' \ --header 'Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx'

{
  "result": {
    "paid": true,
    "paidTo": "2024-06-01T13:36:00+0300",
    "paidToDays": "34",
    "tariff": "premium",
    "recurring": true,
    "refresh_allow": true,
    "future_allow": true,
    "option_allow": true
  },
  "status": "200"
}

Параметры ответа

  • result (array) – результат ответа на запрос:
    • paid (bool) – платная подписка (true – активна, false – не активна);
    • paidTo (DateTime ISO8601) – последний день активной подписки, либо false если подписка не активна;
    • paidToDays (integer) – кол-во оставшихся дней оплаченных по подписке, либо false если подписка не активна;
    • tariff (string) – текущий тариф в сервисе (invest – Инвестор, trader – Трейдер, premium – Премиум);
    • recurring (bool) – автопродление подписки (true – подключено, false – не подключено);
    • refresh_allow (bool) – возможность принудительного обновления информации по запросу через Telegram бота (true – активен, false – не активен);
    • future_allow (bool) – вывод статистики по фьючерсам (true – активен, false – не активен);
    • option_allow (bool) – вывод статистики по опционам (true – активен, false – не активен);
  • status (integer) – код ответа.

Доступ к методу – без ограничений.

Фьючерсы и опционы

Данные по фьючерсам и опционам в API доступны только по подписке. Если подписка не оформлена, в полях с информацией о фьючерсах и опционах значение будет заменено на "is_hidden". Узнать доступны ли вам данные по фьючерсам и опционам можно в методе "/tariff", обратившись к полю "future_allow" и "option_allow" соответственно.

Валюта

Возможные идентификаторы валют: RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY или ITEM (для фьючерсов).

Коды ответа

200 - запрос успешно выполнен;

401 - ошибка авторизации, токен доступа не найден или указан не корректно;

403 - доступ запрещен, например в том случае, если счет в сервисе не активен или подписка не оформлена;

404 - метод или счет не найдены, проверьте запрос.

Цены на подписку

Инвестор
от 83 руб/мес

Трейдер
от 166 руб/мес

Премиум
от 416 руб/мес

Период обновления операций из API

Частота обновления списка операции из API в автоматическом режиме и пересчет статистики.

1 раз в сутки каждые 20 минут каждые 5 минут

Турбо период обновления операций из API

Увеличенная частота обновления списка операции из API для выбранных счетов.

нет каждые 5 минут
для одного счета
каждые 1-2 минуты
для двух счетов

Статистика по фьючерсам

Просмотр статистики по фьючерсам, начисление вариационной маржи и т.п.. Пока только для брокера Тинькофф Инвестиции.

нет да да

Статистика по опционамBeta

Просмотр статистики по опционам. Пока только для брокера Тинькофф Инвестиции.

нет да да
документация к API

InvestStats.ru API

Доступ к API

Получение информации о доходах или убытках по вашим счетам через наше API.

да
за предыдущий день
да да
открыть брокерский счет

Брокерский счет

Кол-во брокерских счетов доступных для обновления (в т.ч. ИИС и субсчетов).

да
1 счет
да
2 счета
да
4 счета
открыть брокерский счет

Брокерские договора

Кол-во брокерских договоров доступных для обновления. На данный момент только фондовый рынок.

да
1 счет
да
2 счета
да
3 счета

Стоимость подписки

при оплате на год - скидка 15%

Оплата за 1 месяц год

 
100 ₽/мес

 
200 ₽/мес

 
500 ₽/мес