API TraderAPI QuantAPI Developer
New-car registrations by manufacturer, from the national authority that licenses the vehicle, across 30 markets. Every car sold has to be registered before it can be driven, the registry records who made it, and most registries publish that breakdown within weeks of the month closing. It is the closest thing to a unit-sales tape the automotive sector has — and none of it comes from the carmaker.
That is where the lead comes from. Volkswagen's German registrations for July are a count of actual cars, published by the Kraftfahrt-Bundesamt in August, against a Q3 statement that lands in late October. When a marque turns in six European registers at once, the turn is in this data a quarter before it is in an earnings call.
Request it for one listing and you get every market ORTEX counts that company in — Germany, the UK, Spain, Italy, Poland, Japan, India, Australia and more — with each row naming its own register, so a single call is enough to build the whole picture. Registrations map by exposure rather than by name: a marque's volumes attach to the listed parent that owns it, so Skoda and SEAT count towards Volkswagen Group where the series is reported at group level.
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.
Coverage
Thirty publishers. National licensing and statistics authorities — Germany's KBA, the UK's DfT, Spain's DGT, the Netherlands' RDW, Poland's CEPiK, Ireland's CSO, Italy's MIT, Finland's Traficom, Austria's Statistik Austria, plus Australia, Switzerland, Greece, Hong Kong, Japan, Malaysia, Mexico, New Zealand, Singapore, Latvia, Luxembourg, Estonia, Czechia, Belgium, India's VAHAN, California's ZEV series and two US states — alongside the European Environment Agency's CO2 monitoring dataset, which breaks 29 European countries out by make.
Mostly monthly, published between two days and three months after the month closes; the UK is quarterly and Greece daily. Passenger cars unless a series name says otherwise — vans, heavy goods vehicles and two-wheelers are separate series where the register publishes them.
Carmakers' own monthly unit sales are listed too: Hyundai, Kia and KG Mobility's Korea Exchange filings under KR, and nine Indian vehicle makers' BSE filings under IN. No reuse terms could be read for either exchange, so their raw values are not served here; their ORTEX signals are.
What to look for
Compare a marque against its own history in the same register. Registers are not comparable with each other: they count different populations on different calendars, and one that counts used imports is measuring a different thing from one that counts new sales.
Series within a market are alternatives, not addends. A battery-electric series is a subset of that market's total, so adding the two double-counts; group-level and marque-level European series are the same cars counted one level apart. The EU and EU+EFTA+UK series are two populations, never a sum.
Watch publishedAt as closely as the value. A month a register has not released yet is missing, not zero, and plotting it as zero turns a publication calendar into a demand collapse. The gap between the two dates is the information edge; treating it as noise is how a backtest quietly reads the future.
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.
Raw readings here; comparable ones next door
This endpoint serves the publisher's numbers. Raw values are frequently not comparable — receivables of $10.9bn against $4.9bn say nothing without each book's size, and a 5.3% charge-off rate means something different on a subprime book than a prime one. The Alt Data signals endpoint serves the same series as percentiles and z-scores against a stated comparison set, which is the form a screen or a backtest wants.
Why a company you expect may be missing
Three reasons, and none of them is a bug:
- The dataset is a window, not a census: Several of these publishers release a rolling window rather than a complete history.
- The filer is not the listed company: Registers name a marque, a charter or a trust. ORTEX maps those to the listed parent where the link is defensible and leaves them unmapped where it is not — a wrong mapping silently attributes another company's data to your ticker.
- The population is genuinely narrow: Not every listed company appears in every register, and no amount of mapping changes that.
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.
What ORTEX may republish, and what it may not
Public-sector publications are served as the publisher wrote them. A handful of sources are derived from a company's or a trade body's own website, and their raw values are not ours to redistribute — those are excluded from this endpoint, and naming one explicitly returns 403 seriesNotAvailable. Their derived ORTEX signals (percentiles, z-scores) are available from the Alt Data signals endpoint, because a computed comparison is ORTEX's own work rather than the publisher's data.
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
