data.vin

the record layer

Data.vin

One VIN opens the full record.

Every fact about every car, cataloged: seven canonical addresses, one featured crosswalk, one batch product — posted coverage, posted license, posted price, keyed to the same seventeen characters.

01 · the catalog

The catalog.

Seven canonical addresses. Every alias resolves to one of them.

Each dataset is a consumer product at its own address and a licensable dataset here. The names the industry uses — odometer, comps, msrp, frontline — hold no address of their own: each serves its canonical, 301 and rel=canonical, zero separate identity.

The record a consumer reads is the record a dealer prices from. Same rows, both registers.

  1. values.vinWhat it is worth — five numbers with their basis: retail, private party, trade-in, wholesale, auction.

    comps · valuation · valuations · worth · pricing · tcovalues.vin

  2. listings.vinIs it for sale — the live-listings spine: price, venue, days on market, and the decode-and-slug grammar.

    listing · ymm · trim · aging · adf · inventories · stocking · syndication · merchandising · frontline · modelslistings.vin

  3. specs.vinThe factory specifications for the vehicle as designed.
  4. recalls.vinIs it safe — open campaigns and remedy status; the retention engine.

    alertsrecalls.vin

  5. sticker.vinHow it left the factory — the window sticker, the birth record: MSRP and factory options, as printed.

    msrp · invoice · invoicessticker.vinmanuals — held

  6. build.vinThe OEM as-built record for one serial number.
  7. vhr.vinflagshipThe full report — history, records, everything, in one paid document: owners, odometer readings, title events, each with its timestamp.

    odometer · flood · theft · totaled · logbookvhr.vinowners — held

A live address links. A held or parked name renders as a plain mark until it returns — a data change, never a layout change.

Vehicle recordvhr.vin/7MMVABDM3RN163785

7MMVABDM3RN163785

2024 Mazda CX-50

  • Title recordin the record
  • Odometer readingsin the record
  • Recall checkrecalls.vin
  • Window stickersticker.vin
  • Market valuesvalues.vin
Retailposts live
Private partyposts live
Trade-inposts live
Wholesaleposts live
Auctionposts live

Figures render live at the address. This page states structure, not prices.

02 · featured

Vindex.vin

The Rosetta Stone of automotive industry data.

One neutral YMMTS spine — year, make, model, trim, style — with every industry provider’s IDs and trim, style, color, and option codes cross-mapped between all of them. A provider’s ID is a sameAs edge on the spine, never a join key; every other row in this catalog joins through it.

A mapping posts only once verified, with its timestamp. Confidence is a number the buyer reads, not an adjective this page uses.

  • resolve(vin | provider:id) → the identity manifest: every known provider ID, each edge scored
  • Pairwise resolution — provider A’s ID to provider B’s, neutral and scored
  • Where the VIN bottoms out at pattern level, candidates enumerate with scores — never a silent pick
  • Coverage posted per provider pair, per model year, before purchase

vindex.vin

The identity manifestvindex.vin/{VIN}
// 200 · every provider's ID for one VIN, evidence-stated
{
  "type": "vindex.identity",
  "vin": "7MMVABDM3RN163785",
  "spine": {
    "year": 2024, "make": "Mazda", "model": "CX-50",
    "trim": <resolved, or candidates with scores>,
    "style": <resolved, or candidates with scores>
  },
  "edges": [
    { "provider": <provider mark>, "id": <that provider's ID>,
      "confidence": <posted, 0–1>, "verified": <RFC 3339> }
  ],
  "coverage": <posted per provider pair, per model year>
}

03 · the batch product

Enrich.vin

Upload the file. The rows come back enriched.

CSV or XLSX, one VIN column. Every row returns with the VIN decoded and the record appended — year, make, model, trim, and the datasets the license names. The same capability runs as API and MCP through apis.vin.

enrich.vin

Batch enrichmentenrich.vin
  • ininventory.csv · one VIN column
  • outthe same file, every row appended: decode · the licensed datasets
  • viaupload at enrich.vin · API and MCP through apis.vin

Per-row price posts at the address — a number is posted or it is absent.

04 · the seam

What and how.

data.vin sells the catalog. apis.vin sells the key.

The WHAT data.vin

Coverage · license · posted price · the x402 per-VIN bundle. The manifest at data.vin/{VIN} states which datasets hold rows and prices the full record as one typed bundle. It renders no member’s face and is noindex by construction — the readings live at the member addresses.

The bundle composes the members’ posted prices; it never undercuts a member’s gate, and a bundle containing the history report credits per vhr.vin’s posted rule — the member’s rule, restated, never re-priced.

  • Freeread the catalog · quote any VIN$0
  • Startermetered · per-call price postedposts live
  • Growthmetered · volume tierposts live
  • Scalemetered · volume tierposts live
  • Bulk / firehosedataset licensing at portfolio scalepriced on paper

Bundles settle when the gate clears: the upstream data license must name catalog resale before any bundle settles; the manifest quotes today, free.

The HOW apis.vin

Key, SDK, quota, and MCP are apis.vin’s job — this page prices what it integrates. One MCP server for the whole platform: apis.vin/mcp. One account, every address: auth.vin.

Every paid action returns a typed, machine-readable offer — posted amount, x402 settlement, expiry — so the worst case is on paper before the first byte moves. An agent buying data reads this same page.

held at this layer

  • records.vinthe full record corpus — decode, spec, build, history, valuation — reserved as its own future face
  • battery · batteries · sohrecord facts, held until an EV source binds
  • driversthe person referent; every address in this family keys to the vehicle

A held name is owned inventory with no bound source: it renders as a plain mark, never an anchor, until a source binds.

For the agent you send

The agent reads the same record you do. Same two routes, three representations — the numbers never differ between them.

motions: B2A · B2A2D

curl https://data.vin/ -H 'accept: text/markdown'        → the markdown twin of this page
curl https://data.vin/{VIN} -H 'accept: application/json' → the record as typed evidence objects
curl https://data.vin/{VIN} -H 'accept: text/markdown'    → the record's markdown twin

Machine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one estate MCP server — apis.vin/mcp (every door a lens; tool results carry the door URL).

Attribution: X-Client-Type: html | md | json | mcp — read for agent-led demand attribution; it never changes the record.