Used car price data API: sold prices, market statistics and days to sell

Last updated: 9 November 2026

Ask for any make, model and filter (year, fuel, gearbox, mileage, location and more) and get prices from UK dealer adverts: median, mean and percentile prices of cars for sale now and cars sold in the last 90 days, days to sell, price bands for charts, and cars whose asking price has been cut. No registration needed. Calls cost 10p a call on Pay As You Go, down to 3p on Enterprise. Sandbox keys are free. They answer from a stored sample of fictional adverts for the test models at GET /v1/sandbox/market-presets, and every filter, sort, count and statistic works on the sample, so totals describe the sample, not the market.

"Sold" is inferred: the advert ended and the same car did not reappear within 7 days. The price is the last asking price, not a confirmed sale price.

To price one particular car, send its registration to pricing insights or market insights: they find cars like it for sale and sold, and say where an asking price sits.

Prices per call

Prices in force today, per call, by package. Errors are not charged except where the API reference says so. Live keys only: sandbox calls are free.

EndpointPay As You GoStarterProEnterprise
Market statistics
POST /api/v1/market/stats
Median, mean and percentiles of price, mileage and days on market over every matching car.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p5p3p
Market overview
POST /api/v1/market/overview
Live supply and prices, sold in 90 days, days to sell and turnover, in one call.
Daily cap per account: 200 / 750 / 2,000 / 5,000
20p16p10p6p
Sold listings search
POST /api/v1/market/sold-listings
Cars sold in the last 90 days by any filter, with last asking price and days to sell.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p5p3p
Price and mileage bands
POST /api/v1/market/distribution
Counts of matching cars in equal bands of price, mileage or days, for charts.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p5p3p
Price drops
POST /api/v1/market/price-drops
Cars whose asking price has been cut, biggest cut first.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p5p3p
Pricing insights (by registration)
POST /api/v1/pricing/insights
Where an asking price sits against matching adverts, with a recommended price range.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p6p4p
Market insights (by registration)
POST /api/v1/market/insights
Supply, demand, sold prices, days to sell and a market rating for cars like this one.
Daily cap per account: 200 / 750 / 2,000 / 5,000
10p8p6p4p

Price change: from 15 December 2026, pricing insights (by registration) is 20p Pay As You Go, 16p Starter, 14p Pro, 12p Enterprise.

Price change: from 15 December 2026, market insights (by registration) is 20p Pay As You Go, 16p Starter, 14p Pro, 12p Enterprise.

Pay As You Go has no monthly fee (top up from £10). On Starter, Pro, Enterprise the monthly fee comes back as plan credit to spend on calls, expiring at the end of each monthly billing period. Package limits per second, minute and day are on the pricing page.

Example request and answer

Every endpoint is a JSON POST under https://www.dealerpricing.co.uk/api with your key in the X-API-Key header. This request uses a sandbox test value, so it is free with a sandbox key.

curl -X POST https://www.dealerpricing.co.uk/api/v1/market/stats \
  -H "X-API-Key: your_sandbox_key" \
  -H "Content-Type: application/json" \
  -d '{"scope":"sold","make":"Ford","model":"Focus","stats":["price","mileage","days_on_market"]}'

The answer (long lists shortened; fields not held for a vehicle are left out):

{
  "success": true,
  "data": {
    "scope": "sold",
    "total_found": 9420,
    "stats": {
      "price": {
        "count": 9420,
        "missing": 0,
        "min": 1495,
        "max": 26995,
        "mean": 10380,
        "median": 9995,
        "stddev": 4120,
        "p5": 3995,
        "p25": 7495,
        "p75": 12995,
        "p90": 15995,
        "p95": 17995,
        "p99": 21995
      },
      "mileage": {
        "count": 9420,
        "missing": 31,
        "min": 8120,
        "max": 162300,
        "mean": 51800,
        "median": 47600,
        "stddev": 18350,
        "p5": 19800,
        "p25": 32500,
        "p75": 57800,
        "p90": 71200,
        "p95": 80100,
        "p99": 98700
      },
      "days_on_market": {
        "count": 9420,
        "missing": 0,
        "min": 0,
        "max": 212,
        "mean": 35,
        "median": 24,
        "stddev": 37,
        "p5": 3,
        "p25": 13,
        "p75": 57,
        "p90": 92,
        "p95": 118,
        "p99": 171
      }
    }
  },
  "meta": {
    "request_id": "req_3f9a1c0d2b7e4a5f6c8d9e01",
    "cost_pence": 10,
    "balance_pence": 990,
    "is_sandbox": false
  }
}

What you get

scope
live (for sale now) or sold (sold in the last 90 days)
total_found
How many cars match the filters
stats
For price, mileage, days on market or days at dealer: count, min, max, mean, median, stddev and the 5th to 99th percentiles

Every field, with its type and meaning, is in the API reference.

What developers use it for

  • Price stock against what similar cars sold for in the last 90 days.
  • Charts of prices and mileage by model, year or region.
  • Find stock to buy from cars whose asking price has been cut.

Questions

Where can I get UK used car price data through an API?

DealerPricing's market data endpoints return prices from UK dealer adverts for any make, model and filter: statistics for cars for sale now and sold in the last 90 days, price bands, the market overview and price drops. Prices start at 10p a call on Pay As You Go, down to 3p on Enterprise.

Are sold prices real sale prices?

No. A car counts as sold when its advert ended and it did not reappear within 7 days, and the price is the last asking price. That makes it a good guide to what cars sell at, but it is not a confirmed sale price.

Do I need a registration?

No. These endpoints search by make, model and any other filter. Pricing insights and market insights are the exceptions: they take a registration and find cars like it.

How much do the calls cost?

Most market calls are 10p Pay As You Go, 8p Starter, 5p Pro, 3p Enterprise. The market overview makes two data requests and costs twice that. On the monthly packages the whole fee comes back as plan credit to spend on calls. It expires at the end of each monthly billing period.

How fresh is the data?

Adverts come from UK dealer websites and are refreshed daily. Statistics on live data are approximate.

Can I test it for free?

Sandbox keys are free. They answer from a stored sample of fictional adverts for the test models at GET /v1/sandbox/market-presets, and every filter, sort, count and statistic works on the sample, so totals describe the sample, not the market.

Documentation and next steps