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.
A VIN is 17 characters and never uses I, O, or Q.
- data.vinThe coverage manifest — which datasets hold rows, quoted as one typed bundle
- vhr.vinWhat happened to it — the full history record
- values.vinWhat it is worth — five numbers, each with its basis
- listings.vinIs it for sale — the live-listing corpus
- sticker.vinThe original window sticker, as printed
- recalls.vinOpen campaigns and remedy status
- specs.vinThe factory specifications
- build.vinThe OEM as-built record
- vindex.vinEvery provider’s ID for this car, on one spine
the coverage manifest at data.vin/{VIN}: free · every VIN · no account
01 · the catalog
The catalog.
Seven canonical addresses.
Each dataset is a consumer product at its own address and a licensable dataset here.
The record a consumer reads is the record a dealer prices from. Same rows, both registers.
- values.vinWhat it is worth — five numbers with their basis: retail, private party, trade-in, wholesale, auction.
- listings.vinIs it for sale — the live-listings spine: price, venue, days on market, and the decode-and-slug grammar.
- specs.vinThe factory specifications for the vehicle as designed.
- recalls.vinIs it safe — open campaigns and remedy status; the retention engine.
- sticker.vinHow it left the factory — the window sticker, the birth record: MSRP and factory options, as printed.
- build.vinThe OEM as-built record for one serial number.
- vhr.vinflagshipThe full report — history, records, everything, in one paid document: owners, odometer readings, title events, each with its timestamp.
JM3KFBXY1S0597748
2025 Mazda CX-5
- Title recordin the record
- Odometer readingsin the record
- Recall checkrecalls.vin
- Window stickersticker.vin
- Market valuesvalues.vin
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
// 200 · every provider's ID for one VIN, evidence-stated { "type": "vindex.identity", "vin": "JM3KFBXY1S0597748", "spine": { "year": 2025, "make": "Mazda", "model": "CX-5", "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.
- 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.
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
- B2A — the buyer is an agent — no human leaf; discover, bind, pay, worst-case cost posted before the call
- B2A2D — the capability embeds downstream — reserved acts route back to a credentialed human leaf
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 twinMachine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one MCP server for the whole platform — 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.