Roschart

Russian official statistics, charted

API for Rosstat statistics

A read-only REST API over the whole catalogue: 27,006 datasets and 52,157,396 values, refreshed every other day. Responses are JSON; every dataset also exports to CSV. The service is free, and browsing needs no key.

Base URL and formats

https://roschart.ru/api

All responses are UTF-8 JSON with Content-Type: application/json. Dataset endpoints accept ?format=csv. The full contract is published as OpenAPI 3.0 — point a code generator at it and you have a client.

Endpoints

EndpointWhat it returns
GET /api/meta catalogue-wide counters and the timestamp of the current upload
GET /api/sections list of sections with dataset counts
GET /api/catalog search and filter: q, section, kind, freq, limit, offset, flat=1 for every edition
GET /api/ids compact list of dataset ids, with since for incremental sync
GET /api/dataset/{id} one dataset: periods, series, values; ?format=csv for a file
GET /api/series/{id}/{n} a single series of a dataset
GET /api/chart/{id} the chart specification the site itself renders: type, axes, series
GET /api/revisions/{id} history of value revisions for a dataset
GET /api/changes what changed in the last uploads

Examples

# find datasets about wages
curl "https://roschart.ru/api/catalog?q=%D0%B7%D0%B0%D1%80%D0%BF%D0%BB%D0%B0%D1%82%D0%B0&limit=5"

# one dataset as JSON
curl "https://roschart.ru/api/dataset/<id>"

# the same dataset as CSV
curl "https://roschart.ru/api/dataset/<id>?format=csv" -o dataset.csv

# what changed since a given date
curl "https://roschart.ru/api/ids?since=2026-01-01"

Search still works on Russian words — titles are the ones Rosstat published. English titles are being added dataset by dataset and will become searchable as they land.

Keys and limits

Without a key: 20 requests per minute, 300 per day, up to 100 rows per page. A free key lifts that to 120 requests per minute and 1 000 rows per page. Keys are issued instantly at roschart.ru/docs/key (the form is in Russian; e-mail and a password is all it asks).

Send the key as a header:

curl -H "X-API-Key: <your key>" "https://roschart.ru/api/catalog?limit=1000"

Rate-limited responses come back as 429 with a Retry-After header. Unknown paths under /api/ return 404 with a JSON error, never an HTML page.

Attribution

The data are official statistics of the Russian Federation published by Rosstat. If you use them, cite Rosstat as the source; a link back to roschart.ru is appreciated but not required. See the licence page for details.