Layer 3 · Data

Everything true about a vehicle that a model cannot see.

Sourced from best-in-class providers per country, then normalised into one schema behind the same key. You integrate once instead of once per country.

7 domains · sourced per country · normalised into one schema · same key

Why this layer

We do not compute any of this ourselves.

A model cannot see a service history or an outstanding finance claim. That data is bought, per country, from whoever is genuinely best in that country — and every provider has its own contract, schema and quirks. You integrate our schema once instead of theirs once per market.

The domains

7 domains behind the same key.

Coverage and freshness vary by country, because the underlying sources do. What does not vary is the shape of the response.

01
Identity
VIN decode, build sheet, factory options, plate → VIN lookup
02
Specs
Technical data, equipment, dimensions, powertrain
03
Value
Market pricing, residuals, depreciation curves
04
History
Mileage records, ownership, accidents, write-off status
05
Compliance
Recalls, service campaigns, emissions, homologation, taxes
06
Parts
OEM references and catalogues — feeds pricing/repair
07
Risk
Stolen and outstanding-finance checks

Where it joins

Data on its own is a lookup. Joined to the models, it is an answer.

You can call these domains directly. Most of their value shows up where a Layer 2 endpoint reads them mid-computation.

  • IdentityPOST/v1/plate/read

    Plate OCR with country detection is the bridge in — read the plate, resolve the VIN, and the build sheet follows

  • ValuePOST/v1/pricing/vehicle

    Market valuation needs both halves: identity and residuals from here, observed condition from the models

  • PartsPOST/v1/pricing/repair

    OEM references turn a detected damage into a part with a price rather than a bounding box

What we do not claim

No country is covered on every domain, and we will tell you which ones are thin before you build on them. Where a source is missing, the field comes back empty rather than guessed.

Start with a plate.

Send one to /v1/plate/read and follow what comes back. That single call is the doorway into all 7 domains.