Paste the VIN.
Read the record.

Paste.Read.Decide.

Title history, odometer readings, open recalls with remedy status, the original window sticker, five market values: one report from one VIN. Full report $19.99 · cached $9.99, both posted below.

An agent reading for you is offered this same report at these same posted prices: you appear once, to approve the pull, and what it brings back survives being shown to you.

2025 Mazda CX-5 · check digit 1 · verified

Free rung, every VIN: recall-watch, the record’s structural count (how many records across how many categories, never values), garage save, and both posted prices with the last pull’s timestamp.

JM3KFBXY1S0597748

2025 Mazda CX-5

  • Title historyWithheld · $19.99 unlocks
  • Odometer readingsWithheld · $19.99 unlocks
  • Open recalls · remedy statusFree · every VIN
  • Original window stickerWithheld · $19.99 unlocks
  • Five market valuesWithheld · $19.99 unlocks
  • Five value types, figures rendered on the report
  • RetailWithheld
  • Private partyWithheld
  • Trade-inWithheld
  • WholesaleWithheld
  • AuctionWithheld
Full report$19.99

Cached $9.99 · last pull timestamp posted on the record

Every fact posts as value · source · timestamp · verification state; withheld is a value held behind the report, never a missing one. Figures render live at the address. This page states structure, not prices.

The report, in five rows.

Every fact in it is posted as value · source · timestamp · verification state.

Facts we can’t verify say “Reported, not yet verified.” We never blend the two.

  • Title historyEvery title event on the record, in order, each with its source and timestamp.
  • Odometer readingsEach reading as reported, dated and sourced, so the sequence reads at a glance.
  • Open recallsChecked against the federal recall register (NHTSA) at load time, with remedy status. Zero is stated, not celebrated.
  • Original window stickerThe car as built: factory spec on the record, so changes surface as deltas.
  • Five market valuesRetail, private party, trade-in, wholesale, auction: the sources under each number, no adjective before it.

The seller sees this exact page. Flaws are data: stated, never hidden.

Get the full report · $19.99

Not yet open · upstream redistribution license + NMVTIS consumer class before the paid report

Cached $9.99 · last pull timestamp posted on the record

Posted.

Every price on this page is a number at the address, the same for every reader.

  • Full reportTitle history, odometer readings, open recalls with remedy status, the original window sticker, five market values. One payment step, no subscription.$19.99
  • Cached reportThe same report when this VIN was pulled recently. The pull’s timestamp is posted beside both prices, on the record, before you pay.$9.99
  • Free rungRecall-watch on this VIN · the structural count, how many records exist, across how many categories; anatomy, never values · garage save and entitlement persistence · cache-price visibility, the last pull's timestamp, both posted prices beside it. Every VIN, no account to start.Free

An agent reading this door is offered the same report at the same posted prices. One price surface, either reader. Nothing else is for sale on this page.

Get the full report · $19.99

Not yet open · upstream redistribution license + NMVTIS consumer class before the paid report

Cached $9.99 · last pull timestamp posted on the record

The plan.

Paste, read, decide.

  1. 01Paste

    The address is the record

    The VIN goes in above. Every report lives at vhr.vin/{VIN}.

  2. 02Read

    Free rung first

    Recall-watch, structural count, both prices. The full report is one payment step behind it.

  3. 03Decide

    Both sides read it

    You decide on a record both sides can read. Ready to buy? The report is step zero at buy.vin.

For the desk.

This door serves desks: the record a consumer reads is the record a dealer prices from.

Same page, same numbers, pulled at speed.

  • The address is the formvhr.vin/{VIN} in the browser bar opens the record directly, from any system that stores VINs, no landing page in between.
  • The second pull is cheaperA VIN pulled recently posts at $9.99, its pull timestamp beside the price. Desks that pull often pay the cached price often.
  • The garage holds your workSaves and entitlements persist on the VIN, on the one Vin account, issued at auth.vin. A report you bought stays open; the second visit starts where the first one ended.
  • Keyboard first/ focuses the input, paste fills and checksum-verifies it, Enter opens the record. No step on this page needs a mouse.
Get the full report · $19.99

Not yet open · upstream redistribution license + NMVTIS consumer class before the paid report

Cached $9.99 · last pull timestamp posted on the record

Reading by machine.

The same record returns as typed JSON via Accept negotiation, and the paid report is a typed offer at the posted price.

One MCP server for the platform: apis.vin/mcp.

The same two numbers, machine-readGET /{VIN}/report
1// the wire’s shape: prices from the one gate config
2{
3 "outcome": "OFFER",
4 "action": "vehicle_history_report",
5 "price": { "amount": "19.99", "currency": "USD" }, // 1999 US cents, the rate card’s number
6 "ceiling": { "amount": "19.99", "currency": "USD" }, // the ceiling IS the price
7 "cached": { "amount": "9.99", "currency": "USD" }, // 999 US cents · last pull timestamp posted
8 "settle": { "checkoutUrl": <relay checkout link> },
9 "description": <the report, named>
10}
11// no third figure exists: one price surface, either reader

For the agent you send.

The agent reads the same record you do.

Same two routes, three representations: the numbers never differ between them.

Three representationsvhr.vin
1curl https://vhr.vin/ -H 'accept: text/markdown'
2 # the markdown twin of this page
3curl https://vhr.vin/{VIN} -H 'accept: application/json'
4 # the record as typed evidence objects
5curl https://vhr.vin/{VIN} -H 'accept: text/markdown'
6 # the record's markdown twin
On this host
  • Motionsb2h2aThe human appears once, where the act is legally load-bearing; then the agent resumes
  • 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.