← FinFly Data

Данные для разработчиков

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 — относительное изменение самого показателя, не новый темп инфляции или реального роста.

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"
}