Блог им. empenoso

Где можно получить исторические фундаментальные данные по российским компаниям через API?

Добрый день!

Ищу решение для автоматизированного получения исторических фундаментальных данных по российским компаниям. Нужна история изменения P/E, P/S, ROE, EPS, выручки и других показателей за несколько лет для построения скринера и проведения фундаментального анализа.

Проанализировал два доступных API, но везде есть ограничения:

T-Invest API

GetAssetFundamentalsResponse(fundamentals=[
StatisticResponse(asset_uid='40d89385-a03a-4659-bf4e-d3ecba011782',
currency='RUB',
market_capitalization=6878249241240.0,
high_price_last_52_weeks=330.45,
low_price_last_52_weeks=219.2,
average_daily_volume_last_10_days=65639361.43,
average_daily_volume_last_4_weeks=60348494.76,
beta=0.8,
free_float=0.48,
forward_annual_dividend_yield=0.0,
shares_outstanding=21586948000.0,
revenue_ttm=8676400000000.0,
ebitda_ttm=0.0,
net_income_ttm=1580300000000.0,
eps_ttm=73.21,
diluted_eps_ttm=0.0,
free_cash_flow_ttm=0.0,
five_year_annual_revenue_growth_rate=0.0,
three_year_annual_revenue_growth_rate=33.48,
pe_ratio_ttm=4.35,
price_to_sales_ttm=0.79,
price_to_book_ttm=0.96,
price_to_free_cash_flow_ttm=0.0,
total_enterprise_value_mrq=0.0,
ev_to_ebitda_mrq=0.0,
net_margin_mrq=0.0,
net_interest_margin_mrq=0.0,
roe=23.36,
roa=2.81,
roic=0.0,
total_debt_mrq=0.0,
total_debt_to_equity_mrq=0.0,
total_debt_to_ebitda_mrq=0.0,
free_cash_flow_to_price=0.0,
net_debt_to_ebitda=0.0,
current_ratio_mrq=0.0,
fixed_charge_coverage_ratio_fy=0.0,
dividend_yield_daily_ttm=10.45,
dividend_rate_ttm=33.3,
dividends_per_share=33.3,
five_years_average_dividend_yield=8.36,
five_year_annual_dividend_growth_rate=0.0,
dividend_payout_ratio_fy=45.49,
buy_back_ttm=0.0,
one_year_annual_revenue_growth_rate=55.49,
domicile_indicator_code='',
adr_to_common_share_ratio=0.0,
number_of_employees=0.0,
ex_dividend_date=datetime.datetime(2024,7,11,0,0,tzinfo=datetime.timezone.utc),
fiscal_period_start_date=datetime.datetime(1970,1,1,0,0,tzinfo=datetime.timezone.utc),
fiscal_period_end_date=datetime.datetime(1970,1,1,0,0,tzinfo=datetime.timezone.utc),
revenue_change_five_years=181.25,
eps_change_five_years=87.02,
ebitda_change_five_years=0.0,
total_debt_change_five_years=0.0,
ev_to_sales=0.0)])

FinanceMarker.ru API

  • Плюсы: Есть фундаментальные показатели
  • Минусы: Ограничение в 400 запросов в день для частных лиц
  • Запрос: /fm/v2/stocks/{exchange}:{code} Получить данные по компании
  • Ответ:
  «ratios»: [
    {
      «active»: true,
      «capex_revenue»: 0,
      «capital»: 0,
      «changed_at»: «2025-03-13T06:04:44.836Z»,
      «code»: «GAZP»,
      «current_ratio»: 0,
      «debt_equity»: 0,
      «debt_ratio»: 0,
      «debtebitda»: 0,
      «dpr»: 0,
      «ebitda_margin»: 0,
      «ev_ebit»: 0,
      «evebitda»: 0,
      «evs»: 0,
      «exchange»: «MOEX»,
      «gross_margin»: 0,
      «interest_coverage»: 0,
      «month»: 0,
      «net_margin»: 0,
      «net_working_capital»: 0,
      «netdebt_ebitda»: 0,
      «operation_margin»: 0,
      «pbv»: 0,
      «pcf»: 0,
      «pe»: 0,
      «period»: «string»,
      «pfcf»: 0,
      «pffo»: 0,
      «ps»: 0,
      «roa»: 0,
      «roce»: 0,
      «roe»: 0,
      «roic»: 0,
      «ros»: 0,
      «type»: «string»,
      «year»: 0
    }
  ],

Пробовал смотреть в сторону:

  1. MOEX ISS API — но там только рыночные данные и котировки
  2. Парсинг сайтов — но это сложнее поддерживать, тем более я частное лицо.

Вопросы к сообществу:

  1. Какие еще API предоставляют исторические фундаментальные данные по российским компаниям?
  2. Возможно ли где-то получить поквартальную/годовую историю изменения ключевых показателей?
  3. Как вы решаете задачу фундаментального скрининга по историческим данным?
  4. Может есть какие-то платные решения с разумной ценой?

Буду благодарен за любые идеи и рекомендации!

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
2.1К | ★1
22 комментария
Странно, что сама Мосбиржа не предоставляет такие данные. Как нет и экспорта истории котировок в CSV. Видимо там нет денег и нет специалистов это организовать.
avatar
Alexide, с дневными котировками нет проблем можно по API с Мосбиржи получать. Как и почти все показатели по облигациям например
Михаил Шардин, да, я получаю текущие котировки через API Мосбиржи.
Но нет истории котировок.
avatar
Alexide, история котировок дневных во всяком случае есть на API мосбиржи
Михаил Шардин, добрый день!

Напишите нам на почту или в чат на financemarker — может быть сможем помочь. 
Роман Кобленц, у меня всё работает
Alexide, 

Через iss и history можно за любую дату, за любой диапазон, начиная с любой даты получить. Потом функция importxml загружает это в google-spreadsheet. Аналогично для excel/openoffice

Примеры

История рпс сделок за определенную дату
iss.moex.com/iss/history/engines/otc/markets/ndm/securities.html?date=2024-04-18

История курсов валют за период
iss.moex.com/iss/history/engines/currency/markets/selt/boards/cets/securities/USD000UTSTOM.HTML?from=2020-02-15&till=2020-02-25

История курсов валют с заданной даты
https://iss.moex.com/iss/history/engines/currency/markets/selt/boards/cets/securities/USD000UTSTOM?from=2020-02-15
avatar
__rtx, Вы утверждаете, что API Мосбиржи умеет отдавать через xml страницу историю котировок акций хотя бы за 10 лет? По разным таймфреймам.
Я разработчик ПО по главной специальности и в т.ч. отлично владею ChatGPT.
avatar
__rtx, я благодарен Вам за ответ, но Вы должны понимать, что сфера разработки ПО огромна и все знать невозможно. Я специализируюсь на разработке ПО для Windows и macOS с 1998 года. Веб-технологии знаю поверхностно.
avatar

Ещё такие нашел в закладках. Сам ничего не юзаю для автоматического получения фундаментальных данных.

rudata.info/rd-api

conomy.ru/partnership

avatar
Replikant_mih, спасибо!
Как вы решаете задачу фундаментального скрининга по историческим данным?

tradingview


Базовые показатели и основные строки из отчетности встроены в сервис. Остальное — через скрипт все что угодно можно придумать.
avatar
Кактус, вы имеете в виду язык Pine — это язык программирования, разработанный TradingView и используемый для написания собственных индикаторов и стратегий?

Михаил Шардин, 

Да. Но там и без него много встроенных возможностей.
На график можно вывести практически любую строчку из отчетности, любой макроэкон. показатель. Например,



А скрипт, например, нужен, когда какую-то срочку в отчете в долларах посмотреть (для котировок акций это можно прямо вверху в формуле прописать, а вот когда какую-нибудь строчку в отчете захотим поделить на курс доллара, на цену нефти и т.д., то уже скрипт).

Пример скрипта tradingview что бы вывести капитал сбера в долларах_с_учетом_инфляции (CPI)
//@version=5
indicator(«Мой скрипт»)
book = request.financial('MOEX:SBER','BOOK_VALUE_PER_SHARE','FQ')
usdrub = request.currency_rate('usd', 'rub')
uscpi = request.economic('US', 'CPI')
 
plot(book /(usdrub*uscpi/308))

avatar
Кактус, спасибо вам за пример!
Михаил Шардин, 

Просто я не верю, что стандартных p/bv, roe, roa достаточно. Да они уже и реализованы на куче скринингов. А чтобы искать более тонкие индикаторы, как раз tradingview хорош.
avatar
Кактус, а такую табличку с данными, по которой строится график, можно оттуда как то скачать?
avatar

Читайте на SMART-LAB:
Фото
Кто может выплатить дивиденды осенью
Летний дивидендный сезон на российском рынке завершён. Следующие выплаты ожидаются по результатам I полугодия или II квартала 2026 года....
Фото
🔔 Уважаемые инвесторы!
20 июля завершено размещение на первичном рынке выпуска облигаций ООО МФК «ПСБ Финанс» серии 002Р-02.  Выпуск ПСБ Фин2P2 размещен в объеме...
Фото
Консенсус-прогноз по чистой прибыли за 6 месяцев 2026 года
Консенсус-прогноз по чистой прибыли ДОМ.PФ за 6 месяцев 2026 года по МСФО составил 57 млрд рублей при рентабельности капитала выше 23% Свою...
Фото
Включаем "Антикризис" на полную катушку! А вдруг?
Сегодня я был снова вынужден прервать свой отвратительный отпуск, чтобы заниматься делами своего инвестиционного портфеля и даже для того, чтобы...

теги блога Михаил Шардин

....все тэги



UPDONW
Новый дизайн