LOTCLOCK

A market-position endpoint for used vehicles.

Ask it about one car and it answers with that car's standing in its local market — not a page of rows for you to reduce yourself.

Endpoints

GET/v1/valuation Where one vehicle sits: percentile, rank, price band, days-supply, and a confidence object naming which dimension had to be relaxed to find the comparables.
GET/v1/comps The comparable vehicles behind that answer. Thin factual rows, each naming its dealership and linking to that dealership's own listing.
GET/v1/health When the archive was last updated, and per-county coverage. Fails loudly rather than serving stale numbers quietly.

What a valuation looks like

This is now the shape the engine actually returns, taken from a real reading rather than sketched. Nothing serves it over HTTP yet.

GET /v1/valuation?vin=3C4NJDCN3RT…&mileage=33098&zip=48307

{
  "ask": {
    "percentile": 28,
    "rank": 27,
    // What `rank` is out of, and NOT the same as `of_n`: the subject
    // is one of the cars being ranked and the comparables are the others,
    // so this is always `of_n` + 1. Reading rank against of_n produces
    // "10th lowest of 9".
    "rank_of": 103,
    "of_n": 102,
    "median": 23357,
    "p25": 22334,
    "p75": 24489,
    "median_at_mileage": 22928,
    "mileage_adjusted": true,
    // The subject is priced so far outside its comparables that it is
    // probably a different specification. The market figures stay true;
    // "over market by X" is withheld. See the refusals below.
    "subject_out_of_range": false
  },
  "confidence": {
    "tier": "high",
    "n": 102,
    "radius_mi": 20,
    "relaxed_dimension": null,
    // p75/p25. Near 1 is one specification; far above it is a mixed pile.
    "spread": 1.11,
    "mixed": false
  },
  "as_of": "2026-09-05",
  "disclaimer": "Asking prices from public dealer listings. Not sold prices, not a trade appraisal, not a transaction estimate."
}

days_on_market is not in this response and will not be until it is real. The archive began on 3 September 2026 and records every car that leaves from that date; publishing a median before enough of them have left would be the one number here that cannot be checked by anyone reading it.

Two things that are unusual, on purpose

Terms, plainly

If you are building something that would use this — a CRM, a marketplace, an appraisal tool, an agent — write to hello@lotclock.io and say what shape you need. The contract is easier to change now than after anyone depends on it.