Документация к InvestStats API v1.2 Beta
Экспериментальное API для получения статистических данных из сервиса статистики. Доступно всем зарегистрированным пользователям. Данные за текущий торговый день, а так же данные о начислении вариационной маржи (по фьючерсам), доступны с оформленной подпиской. Если есть вопросы обратитесь в техническую поддержку.
Авторизация в API
Для успешной работы с API требуется передавать наш токен доступа в header каждого запроса. Токен можно получить в настройках аккаунта.
Формат заголовка:Authorization: Bearer [токен доступа сервиса InvestStats]
Например:Authorization: Bearer i.x00xx000000-00000x000x000x00-x00000x00x00-00xx00000x00x0x0xx
Методы
Параметры запроса
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) – начисленная вариационная маржа;
- CURRENCY (string) – идентификатор валюты (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
- 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 - перезагрузка операций в процессе);
- profit (array) – массив данных с выбранной информацией о фин.результате;
- 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) – начисленная вариационная маржа;
- CURRENCY (string) – идентификатор валюты (RUB, USD, EUR, HKD, GBP, CHF, JPY, CNY, TRY, ITEM - пункт);
- 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 – структурные ноты);
- TICKER (string) – идентификатор инструмента (тикер);
- 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 - перезагрузка операций в процессе);
- profit (array) – массив данных с выбранной информацией о фин.результате;
- status (integer) – код ответа.
Доступ к методу – без ограничений к статистике за вчера (period=previousDay), остальные периоды по подписке.
Выбор последних операций по счету за текущий торговый день. Максимальное кол-во строк в выборке – 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) – время последней проверки (для подстановки в последующий запрос);
- trades (array) – массив операций;
- status (integer) – код ответа.
Доступ к методу – по подписке.
Параметры запроса – отсутствуют
Пример
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 - метод или счет не найдены, проверьте запрос.
Цены на подписку
Инвестор |
Трейдер |
Премиум |
|
Период обновления операций из API Частота обновления списка операции из API в автоматическом режиме и пересчет статистики. |
1 раз в сутки | каждые 20 минут | каждые 5 минут |
Турбо период обновления операций из API Увеличенная частота обновления списка операции из API для выбранных счетов. |
нет | каждые 5 минут для одного счета |
каждые 1-2 минуты для двух счетов |
Статистика по фьючерсам Просмотр статистики по фьючерсам, начисление вариационной маржи и т.п.. Пока только для брокера Тинькофф Инвестиции. |
нет | да | да |
Статистика по опционамBeta Просмотр статистики по опционам. Пока только для брокера Тинькофф Инвестиции. |
нет | да | да |
документация к API
InvestStats.ru API |
|||
Доступ к API Получение информации о доходах или убытках по вашим счетам через наше API. |
да за предыдущий день |
да | да |
открыть брокерский счет
Тинькофф Инвестиции |
|||
Брокерский счет Кол-во брокерских счетов доступных для обновления (в т.ч. ИИС и субсчетов). |
да 1 счет |
да 2 счета |
да 4 счета |
открыть брокерский счет
Алор Брокер |
|||
Брокерские договора Кол-во брокерских договоров доступных для обновления. На данный момент только фондовый рынок. |
да 1 счет |
да 2 счета |
да 3 счета |
Стоимость подписки при оплате на год - скидка 15% |
|
|
|