Changelog¶
Unreleased¶
GET /v1/latest(and thelatesttool) returnsdata.missing: the requested ids that are not registered series. It is left out when no ids are requested.GET /v1/sources/freshness(andsource_freshness): the rawlast_errortext is removed; the newlast_error_kindis one ofblocked,unavailable,format,partial,other, ornullwhen the source never failed.last_error_atis kept and now also covers partial runs.- A company INN that is not 10 or 12 digits returns 400
bad_request(GET /v1/companies/{inn},get_company, and a non-emptyinnin company search); a well-formed unknown INN is still 404. - Company search: a
querythat normalises to nothing gets a message explaining that, instead of "give at least one filter". GET /v1/restrictions/{hs}states the 4-digit minimum in its 400 message.- Notes and error texts no longer name internal tables (for example the
buyersnote of the product dossier).
1.0.0 (2026-11-13)¶
First release of the TRRU API and the remote MCP server.
REST API (/v1)
- Macro series:
GET /v1/series(discover),GET /v1/series/{id}(observations withstart,end,resample),GET /v1/latest(newest value of one or many series). 693 series across rates, FX, inflation, reserves, markets, Russian fiscal and payments data, Turkish and Russian trade, energy, tourism, transport, real estate and company formation. - Product check:
GET /v1/products/{hs6}, a one-call dossier on an HS6 product (suppliers to Russia, prices, seasonality, restrictions, buyer base). - Companies:
GET /v1/companies/searchandGET /v1/companies/{inn}over about 3.5 million Russian legal entities, with sanctions flags. - Sanctions and restrictions:
GET /v1/sanctions/check(EU, OFAC, UK, UN, US CSL) andGET /v1/restrictions/{hs}(EU Regulation 833/2014 annexes, US CHP list, Russia's parallel-import list). - Tourism and border:
GET /v1/border/arrivals. - Calendar, documents and news:
GET /v1/calendar,GET /v1/docs/search,GET /v1/news/search,GET /v1/news/latest. - Data operations:
GET /v1/sources,GET /v1/sources/freshness,GET /v1/changes. GET /v1/healthwithout a key.
MCP server
POST /mcp, streamable HTTP, stateless JSON, 17 tools over the same data (18 for keys with theadminscope, which also get the raw read-only SQL toolquery_sqland company contact details).
Platform
- Bearer-key authentication with scopes
dataandadmin; keys are stored hashed and shown once. - Per-key token-bucket rate limit, default 120 requests per minute, shared by REST and MCP.
- One response envelope (
data,meta.sources,meta.request_id,meta.truncated) with provenance for every number:source_id,fetched_atandas_of. - One error shape for every failure, including unknown routes and wrong methods.
X-Request-Idon every response.- Read-only: the API never writes data. No CORS headers: server-to-server use only.
Known limits at release (details in Coverage and freshness)
- Rosstat history other than CPI starts in 2025-01.
- EU Regulation 269/2014 is not loaded; EU restrictions cover Regulation 833/2014.
- China monthly trade after 2024-12 is at HS-chapter level only.
- Mirror data are incomplete for some reporters and months; Belarus monthly mirror data ends in 2022-03.
- Some Russian news feeds are unreachable at times, and the Bank of Russia calendar refresh is sometimes blocked.
- No pagination: result size is controlled by
limit, date windows and filters.
Planned¶
No dates are committed.
- An email bulletin built on the API. It is a separate project that will consume this API like any other client.
- An iOS app on the API. Also a separate project.
Changes to the API itself will be listed here under a new version heading. Clients should ignore response fields they do not know.