Данные для разработчиков
JSON API FinFly Data: значения, периоды, изменения и статусы источников. Схема 1.0.
Адреса и формат
GET /data.json — все категории в массиве metrics. GET /data/{key}.json — один показатель в корне ответа. Русская версия — /data, английская — /en/data; ключи и расчёты одинаковы. Неизвестный ключ возвращает HTTP 404 с schemaVersion и error. Авторизация не нужна.
JSON читаемо отформатирован по умолчанию и с ?pretty=1. Для компактного ответа — ?pretty=0. Кэш: 15 минут; при фоновом обновлении кэш может сохраняться до суток. Проверяйте период и sourceStatus. CSV сохраняет прежнюю плоскую структуру; схема 1.0 относится к JSON.
Поля
schemaVersion- 1.0
value / valueRaw- value — число, округлённое до двух десятичных знаков; valueRaw — исходное число до округления. JSON не сохраняет конечные нули: 1.70 будет 1.7. Для расчётов и курсов валют используйте valueRaw.
unit- Масштаб значения сохраняется: «млн ₼» / «AZN mn» — миллионы манатов, не манаты.
period- Объект {label, type, date}. label — подпись на выбранном языке; date — дата наблюдения, конец отчётного периода или начало действия ставки в ISO YYYY-MM-DD. Это не дата публикации или загрузки. При неизвестной дате — null.
asOf- Дата основного макроэкономического снимка. Показатели внутри обновляются независимо: для каждого используйте period.date; checkedAt, publicationDate и expectedNextPublication передаются там, где известны.
reportedChangePct- Сохранён прежний процент изменения из источника. Его база зависит от показателя: например, реальный рост г/г или изменение к предыдущему курсу. Он не используется для расчёта change и не равен автоматически изменению номинальной суммы.
source / notes- Первоисточник и примечания, если доступны. publicationDate у Excel ЦБА — дата обновления файла в каталоге, не обязательно первая публикация исторического значения.
change: MoM / YoY
Считаем по исходным значениям, затем округляем результат до двух знаков. abs = текущее − базовое; pct = (текущее − базовое) / базовое × 100. abs имеет единицы показателя; для ставок и инфляции это процентные пункты, а не проценты. pct — относительное изменение самого показателя, не новый темп инфляции или реального роста.
- Месячные значения и запасы на конец месяца: MoM — предыдущий календарный месяц, YoY — тот же месяц год назад.
- Накопленные итоги и средние с начала года: MoM не рассчитывается. YoY возможен только за одинаковый интервал двух лет (например, январь–июль).
- Курсы и показатели на дату: только точное совпадение числа предыдущего месяца или года. Нет такой даты или наблюдения — null; ближайшее значение не подставляем.
- Ставки с датой начала действия: MoM и YoY пока null. История решений не подменяет подтверждённые месячные наблюдения.
- Нет сопоставимой истории, разные единицы или типы периодов: {abs:null,pct:null}. При нулевой базе abs сохраняется, pct:null. Нулевое изменение — 0, а не null. Берётся последняя сохранённая редакция за период; ряды темпов роста не смешиваются с рядами сумм.
period.type
month_end- Запас на конец месяца (M0–M3).
monthly- Значение за отдельный месяц.
year_to_date- Накопленный итог с января по указанный месяц.
year_to_date_average- Среднее за период с начала года (зарплата, текущий ряд инфляции).
daily- Дневной показатель: официальный валютный курс.
point_in_time- Значение на конкретную дату (резервы).
effective_from- Дата начала действия ставки или границы коридора.
unknown- Период не распознан надёжно; изменения не рассчитываются.
sourceStatus
verified- Данные получены и приняты проверками парсера. Это не независимый аудит и не гарантия, что источник ещё не пересмотрел цифру.
stale- Последние доступные значения: проверка/обновление не удались либо срок проверки/ожидаемого релиза истёк. Для мониторинга ЦБА учитываются ошибка, более 48 часов без успешной проверки или просроченный календарный срок. Неизменность месячного числа сама по себе не ошибка.
seed- Резервный начальный набор, а не результат текущей успешной проверки. Для автоматической аналитики не использовать; change пустой.
unknown- Статус отсутствует или не распознан. Не считать подтверждённым; change пустой.
В общей выгрузке корневой статус относится к снимку в целом; статус каждого показателя может быть точнее. В одиночном ответе sourceStatus относится только к выбранному показателю. stale не стирает историю: расчёты по сохранённым значениям доступны, но не означают свежесть данных.
Условный пример (не реальные данные)
{
"schemaVersion": "1.0",
"key": "example",
"value": 120.13,
"valueRaw": 120.1267,
"period": {
"label": "на конец месяца · 31.07.2026",
"type": "month_end",
"date": "2026-07-31"
},
"change": {
"mom": {
"abs": 10.13,
"pct": 9.21
},
"yoy": {
"abs": null,
"pct": null
}
},
"sourceStatus": "verified"
}