One car, five prices.

Auction, wholesale, trade-in, private party, retail: the full spread for any VIN, posted with source, timestamp, and the comps behind it. Free. No account.

2025 Mazda CX-5 · check digit 1 · verified

JM3KFBXY1S0597748

What the trade paysWhat a store charges

  1. Auction

    Posts live

    The lane: what the car brings when the trade bids on it.

    Source · timestamp

  2. Wholesale

    Posts live

    What the trade pays outright: the band a cash offer is written against.

    Source · timestamp

    Turn this number into cashoffers.vin/JM3KFBXY1S0597748
  3. Trade-in

    Posts live

    What the desk offers against your next car.

    Source · timestamp

  4. Private party

    Posts live

    What one person pays another, no store in between.

    Source · timestamp

  5. Retail

    Posts live

    What a store charges for it, front line, ready to sell.

    Source · timestamp

The comps behind each bandCurrent listings · posted per band
SourceDateMilesPrice
The sourceThe dateThe milesPosts live
  • The source · the date · the milesPosts live

Comp rows render live at the address. A band without a comp set behind it says so: “Reported, not yet verified.” Figures render live at the address. This page states structure, not prices.

One spread, both sides of the desk.

The value a consumer reads is the value a dealer prices from.

Same numbers, both registers.

Selling or trading it

You read from the wholesale end

Private party is what you can ask; wholesale is what the trade pays. The cash offer at offers.vin is written against the wholesale band on this page: the number and the offer sit on the same spread.

The ask-to-comp spread · the day supply

At the desk

You pencil from the auction end

Appraise at values.vin/{VIN} at desk speed. Opening ACV: the pencil is wholesale, less recon, less pack. The auction and wholesale bands that anchor it are posted here with their comps, the same page the customer is reading.

The ACV · the recon · the pack
The lane range · the last run

Paste. Read the spread. Take one number.

  1. 01Paste

    Free · no account

    The VIN, at values.vin/{VIN}. One question if the trim is ambiguous.

  2. 02Read the spread

    Five bands, low to high

    Five bands, low to high, each posted with source and timestamp, comps attached. Where you read from depends on the side: selling starts at wholesale, buying starts at retail.

  3. 03Take one number

    Wholesale, retail, or the record

    Wholesale to offers.vin for a cash offer. Retail to listings.vin to check an asking price. The record behind the value at vhr.vin.

  • Postedvalues.vin fee: $0 · every VIN, every visit
  • Signed inThe full comp table, every row, free at login for humans, forever · per-comp detail and cost-to-own depth.
  • AgentsThe same five bands as typed JSON at the same address, via Accept negotiation.

Questions with posted answers.

Why five numbers instead of one?

The same car trades at different numbers at auction, wholesale, trade, private party, and retail. One number hides the spread; five state it. Which one applies depends on which side of the desk you sit on, so all five are posted.

Where do the numbers come from?

Live market data and current listings, posted with source and timestamp on each band. A band without a comp set behind it says so: “Reported, not yet verified.”

What does it cost?

$0, posted above like every other number. Signing in is free too; what it unlocks is posted on the comp table’s last row.

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 representationsvalues.vin
1curl https://values.vin/ -H 'accept: text/markdown'
2 # the markdown twin of this page
3curl https://values.vin/{VIN} -H 'accept: application/json'
4 # the record as typed evidence objects
5curl https://values.vin/{VIN} -H 'accept: text/markdown'
6 # the record's markdown twin
On this host
  • Motionsb2aThe buyer is an agent: no human leaf; discover, bind, pay, worst-case cost posted before the call
  • 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.