Developer data
FinFly Data JSON API: values, periods, changes and source statuses. Schema 1.0.
Endpoints and format
GET /en/data.json — all categories in the metrics array. GET /en/data/{key}.json — one indicator at the response root. Russian: /data; English: /en/data. Keys and calculations are identical. An unknown key returns HTTP 404 with schemaVersion and error. No authentication required.
JSON is pretty-printed by default and with ?pretty=1; use ?pretty=0 for compact output. Cache: 15 minutes, with up to one day of stale-while-revalidate. Check the period and sourceStatus. CSV retains its previous flat format; schema 1.0 applies to JSON.
Fields
schemaVersion- 1.0
value / valueRaw- value is rounded to two decimal places; valueRaw preserves the number before rounding. JSON does not retain trailing zeros: 1.70 is 1.7. Use valueRaw for calculations and exchange rates.
unit- Units retain their scale: “млн ₼” / “AZN mn” means million manat, not manat.
period- Object {label, type, date}. label is localized; date is the observation date, reporting period end or rate effective date in ISO YYYY-MM-DD. It is not the publication or retrieval date. Unknown dates are null.
asOf- Main macroeconomic snapshot timestamp. Indicators update independently: use each period.date. checkedAt, publicationDate and expectedNextPublication are included where known.
reportedChangePct- Preserves the previous source-reported change percentage. Its basis varies by indicator, e.g. real y/y growth or change from the previous exchange-rate quote. It is never used to calculate change and is not automatically the change in a nominal amount.
source / notes- Original source and notes where available. For CBAR Excel, publicationDate is the catalogue update date, not necessarily the first publication of a historical value.
change: MoM / YoY
Calculated from raw values, then rounded to two decimals. abs = current − base; pct = (current − base) / base × 100. abs uses the indicator unit; for rates and inflation this means percentage points, not percent. pct is the relative change of the indicator itself, not a new inflation or real-growth rate.
- Monthly values and month-end stocks: MoM compares with the previous calendar month; YoY with the same month a year earlier.
- Year-to-date totals and averages: no MoM. YoY requires the same interval in both years (e.g. January–July).
- Daily rates and point-in-time values: only the exact calendar day in the preceding month or year. Missing date or observation means null; no nearest-value substitution.
- Effective-from rates: MoM and YoY remain null. A decision history is not a series of confirmed monthly observations.
- Missing comparable history, different units or period types: {abs:null,pct:null}. With a zero base, abs is retained and pct is null. No change is 0, not null. The latest stored revision is used; growth-rate series are never mixed with amount series.
period.type
month_end- Month-end stock (M0–M3).
monthly- A value for an individual month.
year_to_date- Cumulative total from January through the indicated month.
year_to_date_average- Average over the year-to-date period (salary, the current inflation series).
daily- Daily observation: official exchange rate.
point_in_time- Value as of a specific date (reserves).
effective_from- Effective date of a policy rate or corridor bound.
unknown- Period cannot be reliably classified; changes are not calculated.
sourceStatus
verified- Data was retrieved and accepted by parser checks. This is not an independent audit or a guarantee that the source has not revised the figure.
stale- Last available values: a check/update failed or its check/release deadline expired. CBAR monitoring considers an error, over 48 hours without a successful check or an overdue release deadline. An unchanged monthly value is not itself an error.
seed- Fallback initial dataset, not the result of a current successful check. Do not use for automated analysis; change is empty.
unknown- Status is missing or unrecognized. Do not treat as verified; change is empty.
The collection root status describes the overall snapshot; individual indicators may have more specific statuses. In a single-indicator response, sourceStatus describes that indicator. stale does not erase history: calculations on stored values remain available but do not imply freshness.
Illustrative example (not actual data)
{
"schemaVersion": "1.0",
"key": "example",
"value": 120.13,
"valueRaw": 120.1267,
"period": {
"label": "month-end · 2026-07-31",
"type": "month_end",
"date": "2026-07-31"
},
"change": {
"mom": {
"abs": 10.13,
"pct": 9.21
},
"yoy": {
"abs": null,
"pct": null
}
},
"sourceStatus": "verified"
}