API TraderAPI QuantAPI Developer
Consumer price inflation across twelve markets on one endpoint: US CPI-U headline and core, both as an index and as the annual rate; UK CPI and CPIH; euro-area, EU and seven member-state HICP; and the Canadian CPI — each exactly as its own statistics office states it.
These are the prints that move rates, and therefore everything priced off them. Having them in one shape, with the publication date attached to every reading, is what makes them usable in a model rather than in a chart: the annual rate for July is published in August, and a series keyed on the reference month reads it a fortnight before it existed.
Headline and core are both served for the US, so the measure central banks actually watch does not have to be derived.
Available Data Points:
- Period Date: The period the value describes — what the number is about (the valid clock).
- Published At: When the value first became knowable — when the publisher released it (the knowledge clock). Filter on this for anything where look-ahead bias would matter.
- Value: The numeric value, where the series has one.
- Value Text: The textual value, for categorical series such as a trial's status or phase.
- Unit: Unit of the value, e.g.
vehicles,percent,USD. - Value Type:
number,percent,currency,countortext. - Frequency: How often the publisher releases the series.
- Market: The market the reading describes — an ISO-3166 alpha-2 code (
DE), a sub-national one (US-CA), a supranational aggregate (EA,EU) orGLOBAL. - Series Slug: Which series the reading belongs to. Unique within a publisher, not globally.
- Series Name: Human-readable name of the series.
- Source Slug: Publisher/feed identifier, e.g.
kba_registrations. - Source Name: Human-readable name of the publisher or feed.
- Publisher: Who publishes the underlying data.
- Entity Ref: The publisher's own identifier for what the reading is about — a manufacturer name, a securitisation trust, a reactor unit, a country code. Kept so any value can be traced back to the row it was parsed from.
This dataset describes a market, not a company
Every reading here is about a country or a whole market, so there is no ticker in the path and no instrument in the response envelope. That is deliberate: attaching a national print to a listing would be a claim the data does not support. Read it as the context the company-level endpoints are measured against.
Coverage
Four publishers, twelve markets. US CPI-U is the not-seasonally-adjusted index the headline year-on-year rate is computed from, on the BLS's own base. HICP is all-items, annual rate of change, on the Eurostat definition. UK CPI and CPIH are the ONS annual rates.
Release lags run from roughly a day (Eurostat's HICP flash) to about 20 (Canada). History runs as far back as each table goes.
What to look for
An index and a rate are different series and are not interchangeable. cpi_all_items is a level on an arbitrary base; cpi_annual_rate is the year-on-year change already computed. Differencing the index yourself gives a slightly different number from the published rate, because the publisher rounds the components.
HICP and CPI are not the same basket. The UK's CPI is not comparable with the euro area's HICP in levels, though the direction of the two is usually informative.
cpi_annual_rate is published under that slug by three different offices in this dataset, so pair it with market or source.
Two dates on every reading, and the difference is the edge
periodDate is what the number is about. publishedAt is when it first became knowable. The gap between them is the whole point of alternative data — and it is also the trap. A Form 10-D describing July is filed in mid-August, so a backtest that treats the period as the knowledge date reads a document six weeks before it existed.
from_date and to_date filter on periodDate, because that is the axis you plot against. Join on publishedAt when you are joining against returns.
Filtering: one market or all of them
Called with no filters, the endpoint returns every series in the dataset, for every market ORTEX covers it in. Each row names its own market, seriesSlug and sourceSlug, so a single request is enough to chart the whole dataset.
Narrow it with any combination of market (one market), series (one measure) and source (one publisher). Filter values that are each valid but select nothing together return 400 invalidSelection rather than a misleading empty result.
A series slug identifies a series within a publisher, not globally
unemployment_rate is published under that exact slug by the US Bureau of Labor Statistics, the UK Office for National Statistics and Statistics Canada. Where a slug names more than one series in a dataset, passing it alone returns 400 invalidSeries listing the alternatives — pair it with market or source. ORTEX would rather refuse than hand you one country's print labelled as another's.
How much history there is
Several of these publishers overwrite their own pages and keep no archive. Where that is so, the series begins on the day ORTEX started capturing it and lengthens from there — nobody, including the publisher, can supply the days before that. Everything ORTEX has ever fetched is archived on capture, so the series only ever grows.
Try it out! You can test the API with the trial key TEST. Simply include it in your request headers; either here, or add the header "Ortex-Api-Key": "TEST" to your http request.
Trial key restrictions: Trial keys may be limited to a specific date range and set of regions. Requests outside the allowed regions or entirely outside the allowed date range are rejected; a date window that partially overlaps the allowed range is trimmed to it, reported in meta.restriction.
Get full access! Get a key at app.ortex.com/apis
