145 lines
14 KiB
Markdown
145 lines
14 KiB
Markdown
# Источники кредитных рейтингов облигаций
|
||
|
||
Проверено 10 сентября 2026 года. Исследование для страницы облигации
|
||
WealthLedger: рейтинг агентства, привязанный к конкретному ISIN, без доступа
|
||
пользователя к платным информационным системам. Это исследование источников,
|
||
а не описание уже реализованной интеграции.
|
||
|
||
## Вывод
|
||
|
||
Для первого подключения технически подходит публичный
|
||
[реестр рейтингов эмиссий НКР](https://ratings.ru/ratings/issues/): один обычный
|
||
GET без авторизации возвращает HTML-таблицу с ISIN, рейтингом, датой и ссылкой
|
||
на первоисточник. В проверенном ответе 157 уникальных ISIN, включая 36 записей
|
||
«рейтинг отозван». Это частичное покрытие одного агентства, а не рейтинг любой
|
||
облигации российского рынка.
|
||
|
||
У [Эксперт РА](https://raexpert.ru/ratings/debt_inst/) тоже есть открытые
|
||
рейтинги выпусков. Однако ISIN находится в отдельных карточках, а список
|
||
разбит на страницы. Подключение потребует дополнительных запросов и более
|
||
сложного обхода. Официальная структурированная выгрузка агентства оформлена
|
||
как [подписка](https://raexpert.ru/all-services/rating-export/).
|
||
|
||
Публичное чтение этих страниц проверено. Свободная лицензия на массовое
|
||
переиспользование не установлена: НКР и Эксперт РА отдельно ограничивают
|
||
распространение своей информации. Это не равнозначно техническому запрету
|
||
читать отдельный рейтинг в личном приложении. Перед публичным распространением
|
||
базы или коммерческим предоставлением данных нужно отдельно проверить
|
||
условия правообладателя. Публичный HTML не даёт контракт API или SLA.
|
||
|
||
## НКР: минимальная интеграция
|
||
|
||
Источник: <https://ratings.ru/ratings/issues/>.
|
||
|
||
В HTML есть `table#issues-table`, затем `tbody > tr`. В каждой проверенной
|
||
строке ровно шесть `td`:
|
||
|
||
| Индекс | Содержимое | Использование |
|
||
| --- | --- | --- |
|
||
| 0 | Рейтингуемое лицо, ссылка `/ratings/issuers/.../` | Контекст эмитента |
|
||
| 1 | Название эмиссии, ссылка `/ratings/issues/{id}/` | Ссылка на карточку выпуска |
|
||
| 2 | Рейтинг, например `AAA.ru`, или `рейтинг отозван` | Значение и статус |
|
||
| 3 | ISIN | Точное сопоставление с облигацией |
|
||
| 4 | Регистрационный номер | Дополнительный идентификатор |
|
||
| 5 | Дата `DD.MM.YYYY`, ссылка на пресс-релиз | Дата действия и источник |
|
||
|
||
Например, в ответе на дату проверки:
|
||
|
||
| ISIN | Рейтинг | Дата | Источник |
|
||
| --- | --- | --- | --- |
|
||
| RU000A10EW44 | AAA.ru | 17.04.2026 | [Полюс ПБО-05](https://ratings.ru/ratings/issues/3361/) |
|
||
| RU000A1065B1 | Рейтинг отозван | 24.04.2026 | [Реестр эмиссий](https://ratings.ru/ratings/issues/) |
|
||
|
||
Эти примеры нужны для проверки структуры, не для постоянного отображения
|
||
значений из документа. Прогноза в таблице эмиссий нет. Его нельзя брать из
|
||
случайного текста страницы или переносить с рейтинга эмитента.
|
||
|
||
Кнопка «Загрузить ещё» обслуживается клиентским DataTables:
|
||
[скрипт инициализации](https://ratings.ru/js/initDataTable.js) задаёт
|
||
`pageLength` и вызывает `table.page.loadMore()`, без `ajax` или `serverSide`.
|
||
В проверенном HTML уже присутствуют все 157 строк таблицы; дополнительные
|
||
запросы на каждую карточку для извлечения перечисленных полей не нужны.
|
||
Это наблюдение текущей версии сайта, не обещание неизменного формата.
|
||
|
||
Предлагаемый подход для личного приложения:
|
||
|
||
1. Загружать таблицу на backend с ограничением времени и размера ответа.
|
||
Объединять параллельные загрузки и кэшировать общий публичный справочник,
|
||
а не запрашивать сайт отдельно для каждого пользователя и ISIN.
|
||
2. Проверять заголовки и структуру таблицы; сопоставлять только точный ISIN.
|
||
Не угадывать рейтинги по названию, тикеру или группе компаний.
|
||
3. Показывать исходное обозначение `AAA.ru`, агентство «НКР», дату действия
|
||
и ссылку на карточку или пресс-релиз.
|
||
4. Отзыв показывать отдельным статусом. При отсутствии строки говорить
|
||
«Нет данных НКР», а не «Рейтинг отсутствует»: другие агентства могут
|
||
иметь действующий рейтинг.
|
||
5. Недоступность сайта или изменение HTML не должны ломать цену, купоны
|
||
и портфель. Время получения данных и дата рейтингового действия имеют
|
||
разный смысл; давнюю дату решения нельзя автоматически считать отзывом.
|
||
|
||
Это рекомендации реализации, вытекающие из проверенной структуры;
|
||
период кэша и обработка ошибок остаются решениями приложения.
|
||
|
||
В footer [сайта НКР](https://ratings.ru/ratings/issues/) указано:
|
||
«Не допускается распространение настоящей информации любым способом и в любой
|
||
форме без предварительного согласия со стороны ООО „НКР“ и ссылки на источник».
|
||
Разрешение на публичную перераздачу и стабильный машинный интерфейс этой
|
||
проверкой не получены. Авторизация или обход защиты для чтения таблицы
|
||
не использовались.
|
||
|
||
## Эксперт РА
|
||
|
||
В [таблице долговых инструментов](https://raexpert.ru/ratings/debt_inst/)
|
||
есть название выпуска, рейтинг, прогноз, дата обновления и ссылки на
|
||
пресс-релизы. В проверенном HTML списка ISIN нет. Переход по ссылке
|
||
[Россети 001Р-21R](https://raexpert.ru/database/securities/bonds/1000074695/)
|
||
даёт реквизит `ISIN = RU000A10G148` и таблицу `.object-rating-table`
|
||
с `ruAAA` от `09.09.2026`.
|
||
|
||
Список использует серверную пагинацию: `setRatingPageHash(...)` отправляет
|
||
запрос на `/ratings/index/ajax-set-rating-page-hash/`. Поэтому одного GET
|
||
списка недостаточно для полного справочника. Не следует строить массовый
|
||
сканер карточек только ради добавления второго агентства в первую версию.
|
||
|
||
Официальная [услуга выгрузки](https://raexpert.ru/all-services/rating-export/)
|
||
описывает SOAP, REST и Excel как виды подписки. REST использует уникальный
|
||
код доступа; документация содержит методы получения рейтинг-листа и
|
||
рейтинговых действий, параметры даты и отозванных рейтингов. Наличие кнопки
|
||
«Экспорт» на публичной странице не доказывает бесплатность выгрузки.
|
||
|
||
В footer агентство требует предварительное согласие и ссылку на источник
|
||
для распространения информации. Как и для НКР, возможность чтения карточки
|
||
не следует представлять как открытую лицензию на распространение базы.
|
||
|
||
## Другие проверенные варианты
|
||
|
||
| Источник | Проверенный результат | Вывод для первого подключения |
|
||
| --- | --- | --- |
|
||
| [MOEX ISS CCI](https://iss.moex.com/iss/reference/781) | Официально документирован список актуальных рейтингов выпусков. Проверенный анонимный запрос `/iss/cci/rating/securities.json?iss.meta=off` вернул пустое тело | Не считать пустое тело валидным отсутствием рейтингов; пригодный ответ и условия доступа не подтверждены |
|
||
| [MOEX CCI: выпуск компании](https://iss.moex.com/iss/reference/867) | Документирован путь с ID компании и ISIN, пример `1113/RU000A1051U1` | Документация существует, но рабочая бесплатная интеграция не доказана |
|
||
| [АКРА](https://www.acra-ratings.ru/ratings/) | `/ratings/`, `/ratings/issuers/` и главная страница вернули HTTP 403 в проверенной среде | Не обходить ограничение; доступный источник данных здесь не подтверждён |
|
||
| [НРА](https://www.ra-national.ru/ratings/) | Публичный HTML содержит реестр и названия облигационных выпусков, но точный ISIN в проверенном списке не обнаружен | Нужна отдельная проверка карточек и условий; сейчас менее прямой путь, чем НКР |
|
||
| [Cbonds API](https://cbonds.ru/api/) | Официальный продукт включает кредитные рейтинги, публичную демоверсию и индивидуальный доступ. Цена зависит от набора данных | Вариант структурированной интеграции после получения доступа; демо не означает бесплатную полную базу |
|
||
| [Интерфакс / RusBonds](https://www.rusbonds.ru/) | Запрос вернул страницу JavaScript challenge, а не данные облигаций | Рабочий анонимный источник рейтингов и условия API этой проверкой не установлены |
|
||
|
||
Наблюдаемый HTTP 403, challenge или пустой ответ не доказывают отсутствие
|
||
данных у провайдера. Это ограничения конкретной проверки; они не дают
|
||
основания выдумывать поля API, доступ или цены.
|
||
|
||
## Предметные границы
|
||
|
||
[Банк России](https://www.cbr.ru/finm_infrastructure/ra/) различает мнение
|
||
агентства о способности организации исполнять обязательства и оценку риска
|
||
отдельного финансового обязательства или инструмента. Поэтому рейтинг
|
||
эмитента не должен молча становиться рейтингом любой его облигации.
|
||
|
||
При добавлении других агентств следует сохранять агентство и исходную шкалу:
|
||
`ruAAA`, `AAA.ru` и `AAA(RU)` нельзя свести к одному безымянному `AAA`.
|
||
Банк России отдельно публикует
|
||
[сопоставление российских шкал](https://www.cbr.ru/press/pr/?file=638557747357168625INFR.htm),
|
||
что не отменяет необходимость показывать происхождение оценки.
|
||
|
||
Стабильный открытый API с проверенным полным покрытием всех агентств в рамках
|
||
этого исследования не найден. Публичный реестр НКР даёт практически полезное
|
||
начало без покупки доступа и без подмены рейтинга уровнем риска брокера.
|