One car for sale.
One address.
Search.Resolve.Route.
The market lists a car in many places; the VIN names it once. Every venue where the car is listed renders on one page (dealer, auction, private seller), each fact posted: price · venue · source · timestamp. Free. No account.
Hand the hunt to an agent that works for you: you appear only where you are load-bearing, choosing the car and authorizing the close, and everything it does posts to a receipt that survives being shown to you.
JM3KFBXY1S0597748
2025 Mazda CX-5 · decoded from the VIN · check digit 1
- Every venue this VIN is listedOne row per venue
- DealerSource · timestamp · verification statePosts live
- AuctionA lot is a listing in an auction venue · source · timestampPosts live
- Private sellerSource · timestamp · verification statePosts live
Delta vs. market value: a signed number, never an adjective · basis values.vin/JM3KFBXY1S0597748
- The record behind the listing
- vhr.vin/JM3KFBXY1S0597748History and recalls: the record behind the asking price
- values.vin/JM3KFBXY1S0597748Five value bands: the spread the delta is measured against
- sticker.vin/JM3KFBXY1S0597748The original window sticker, free
The exit is stated: the listing id rides to buy.vin/JM3KFBXY1S0597748; the deal starts from this record.
Figures render live at the address. This page states structure, not prices. Unverified facts read “Reported, not yet verified.”
Every venue, one field.
A listing is a record, not an ad.
Dealer, auction, and private-seller supply sit on one spine, keyed to the same seventeen characters. Verified and reported facts are labeled, never blended.
Hunting one car
The by-VIN read
You are not reading a thousand rows; you are resolving one. The car’s page holds every venue it is listed, each price beside its source and timestamp, and the delta against the value spread; then the deal starts from the record.
The price · the delta vs. value · the venue · the verification state
The dealer’s counter
Supply on rails
Your inventory is addressable by its numbers, and the buyer who found the car found your car, not a portal’s ad unit. Leads export as ADF (Auto-lead Data Format, the file a dealer CRM ingests), and the lead is yours; the fee posts on the export sheet before you send. Your entrance is dealers.vin.
The listing state · lead export ADF · fee posted on export
The listing a buyer reads is the listing the dealer posted. Same page, both sides.
No VIN yet. Browse narrows to one.
Facets are the way in, not the destination.
Every search ends at a seventeen-character address: each result row is a VIN, and opening it opens the car’s page, not an ad.
- Year make modelPosts liveThe venue
- Year make modelPosts liveThe venue
- Year make modelPosts liveThe venue
Results render live at listings.vin/?browse=1, the instrument itself. Every row resolves to listings.vin/{VIN}, the page above. The field takes the same grammar: year make model rides the address bar as year_make_model.
The plan.
Search. Resolve. Route.
- 01SearchFacets or the field, every venue: a VIN opens the car; year make model narrows to one. Every result is a VIN.
- 02Resolvelistings.vin/{VIN}: one car, every posted fact. Price beside source and timestamp, the delta against the value spread a signed number, unverified facts labeled.
- Postedlistings.vin search: $0 · every VIN, every visit · no account
- Your agentHand the hunt to your agent: it searches, reads every venue, and routes the deal; you appear only where you are load-bearing: choosing and authorizing. Everything it does posts to a receipt that survives being shown to you.
Questions with posted answers.
Is this every car for sale?
Dealer, auction, and private-seller venues on one spine: an auction lot is a listing in an auction venue. Coverage posts on the page as a fact with source and timestamp; gaps are stated, not hidden.
Why does a price read “Reported, not yet verified”?
Because the venue posted it and the record has not confirmed it. Verified and reported facts are labeled; they are never blended.
What does it cost?
$0 for search, every VIN, every visit, posted above like every other number. Developer and agent access is metered per call; the rate card posts at apis.vin. A dealer’s lead fee posts on the export sheet before you send.
I’m a dealer. Who owns the lead?
You do. Leads export as ADF straight into your CRM. No portal sits between you and the buyer. Your entrance is dealers.vin.
Can my agent hunt instead of me?
Yes. It reads the same page (every venue row, every posted fact) as typed JSON at the same address, and where it acts for you, every step posts to a receipt that survives being shown to you. The machine surface is below.
The same corpus, typed.
Agents read this door the way you do: one VIN resolves to one listing.
As typed JSON at the same address. Who buys and who gets the receipt are stated motions.
- b2a.vinAn agent searches and buys on its own account
- The capability embeds downstream: a dealer’s systems ingest the lead as ADF; the dealer’s entrance is dealers.vin.
- Evidence
- One MCP server for the whole platform: apis.vin/mcp.
- Every listing renders as typed JSON at the same address.
- API access is metered per call · rate card posted at apis.vin.
The listing is one face of the record.
The other addresses read the same seventeen characters.
- Know the car
- vhr.vinHistory: records posted for any VIN · each with source and timestamp
- values.vinValue: posted for any VIN · source · timestamp
- Do the deal
- buy.vinBuy: checklist close for any VIN, distance-to-done posted at every step
- transport.vinShip: delivery quote posted from a VIN and two zips
- The dealer’s counter: dealers & builders
- dealers.vinDealers: inventory addressable by VIN; leads export as ADF into your CRM
- apis.vinDevelopers: this corpus by API and MCP, metered per call, rate card posted
For the agent you send.
The agent reads the same record you do.
Same two routes, three representations: the numbers never differ between them.
- Motionsb2aThe buyer is an agent: no human leaf; discover, bind, pay, worst-case cost posted before the callb2a2dThe capability embeds downstream: reserved acts route back to a credentialed human leaf
- Machine surfaces/llms.txt/icp.json/.well-known/agents.json
- One MCP serverapis.vin/mcp serves the whole platform: every door’s tools in one server, each result carrying its door’s URL.
- AttributionX-Client-Type: html | md | json | mcp names which reader arrived; it never changes the record.
- The gateNo gate on this door's two routes: keyless reads, no account. Gated actions elsewhere return a typed OFFER or a NEEDS_HUMAN handoff, never a dead end.