Skip to main content
Everything the API serves is an observation: one value, for one indicator, for one entity, over one period, from one source. Turkish inflation, Apple’s quarterly revenue and the EUR/USD reference rate all arrive in this shape. Learn it once.

Identity

Three fields locate a row. indicatorId names the concept. Stable across countries: cpi_inflation_yoy means the same thing everywhere it appears. entityId names the subject. Countries are country_TUR, companies company_AAPL, instruments instrument_EURUSD. country is a convenience alias for the country case. periodEnd anchors the row in time.
periodEnd is when the data is about. releaseDate is when it was published, which is typically weeks later. Backtests must use releaseDate, or the model sees figures before the market did.

Value

actual is the reading and previous the prior period, already aligned so you do not have to fetch two rows to compute a change. unit is not decoration. See Units and periods.

Provenance

source and attribution name the publisher, sourceUrl links the release, and sourceTier ranks how authoritative it is. Every figure can be traced back to where it came from. Where several publishers carry the same series, the API returns one per period, preferring the national source over harmonised international copies. Pass ?sources=all to receive every provider instead.

Trust

The remaining fields describe whether the row is safe to use. They have their own page, and it is the one to read before building anything quantitative: Trust metadata.

Fetching them

Two endpoints cover nearly all use. /observations/latest returns the current reading of each series, one row per indicator. This is the call behind a dashboard. /observations returns history, filtered and paginated. This is the call behind a chart or a backtest.