Market data
Instruments, quotes, and the tape: how live listings become a priced, historied market grammar.
The platform treats the live vehicle market the way an exchange treats securities: define the instrument (what is being priced), publish a quote (the live book, summarized), and keep a tape (every observation, rolled up into history). Once you read one quote card you can read them all.
Instruments: what is being priced
An instrument is a slice of the market with enough liquidity to price. Two grains do most of the work:
model-year:— "Honda CR-V 2026" as one instrument. Thousands of live listings back it; medians are stable; this is the grain for market overviews, dashboards, and "what do these go for."squish:— the first 9 meaningful VIN characters: one exact configuration of one model year. Far fewer listings, far sharper answer; this is the grain for "what is this car worth," appraisal, and trade-in logic. Derive it from any VIN, offline, forever.
Between them sit qualified sub-grains (mmy, mmy.drive, mmy.fuel, mmy.body, squish) that split a model year by
drive, fuel, or body where those materially reprice the vehicle.
Use GET /v2/instruments?q= for symbology search, or take the
instrument link any VIN decode or entity response hands you.
Reading a quote card
curl "https://api.cardog.app/v2/quotes/model-year:honda%2Fcr-v%2F2026" \
-H "x-api-key: $CARDOG_API_KEY"Example
13 keysHow to read it:
liveCount— active listings backing the quote right now. It is the quote's confidence: a median over 31,192 cars is a market fact; a median over 4 is an anecdote. Check it before trusting the numbers.bestPrice/priceP25/priceMedian/priceP75— the book's shape. Median is the market price; the P25–P75 band is the honest spread; best is the floor (and often an outlier — that gap between best and P25 above is real, and typical).avgDomDays— average days-on-market: how fast the market clears.cuts30d/avgCutPct30d— price cuts observed in the trailing 30 days and their average size. Cuts are the market conceding; rising cut counts lead falling medians.sightings30d— observation volume behind the trailing stats.asOf— when this quote was computed. Quotes describe a moment, not a promise.
Need several instruments at once? GET /v2/quotes?refs=a,b,c quotes up to
20 refs in one request, returned in request order.
History: daily bars over a window
curl "https://api.cardog.app/v2/tape/history/model-year:honda%2Fcr-v%2F2026?window=1m" \
-H "x-api-key: $CARDOG_API_KEY"History returns ascending daily bars — day, median, p25,
p75, best, plus count or prints depending on the bar's
source. A "fold" bar is a once-daily snapshot of the live book; a
"prints" bar is built from the individual observations on days with no
snapshot. The set of sources is open. Windows: 1w, 1m, 3m, 6m, ytd, 1y, 3y, 5y, 10y, all.
The tape: prints
A print is one observation of one listing — a price seen on a seller's site at a moment in time, projected onto its instrument:
curl "https://api.cardog.app/v2/tape/live" -H "x-api-key: $CARDOG_API_KEY"Each print carries the instrument ref, price, the seller domain
it was observed on, the timestamp, and vinTail — the last 6 of the VIN,
enough to dedup a vehicle across sites without ever publishing the full VIN.
The live feed also reports throughput (perMinute, today), which is
the honest answer to "how alive is this data."
Everything above is derived from prints: bars aggregate prints, quotes aggregate bars plus the live book. The tape is the ground truth.
What we are, and are not
Cardog runs the rails: we observe the market, publish the instruments, and serve the same quotes to everyone. We hold no inventory, take no side of any trade, and sell no placement in the numbers — a quote reads the same whether the asker is a buyer, a dealer, or a lender. Neutral market infrastructure is the product; the moment the rail trades on its own rail, the quote stops being worth citing.