AutoTrader API

Get AutoTrader data with one API

The AutoTrader UK API returns used- and new-car listings from one of the UK's largest car marketplaces as clean JSON.

A
/autotrader/v1

2 active endpoints. Every call is 1 credit.

  • POST/autotrader/v1/search
  • POST/autotrader/v1/listing_detail

What AutoTrader endpoints does ReefAPI ship?

2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

2 endpoints

search

1 cr

UK car listings (make/model + filters, paginated).

required
optional
make, model, postcode, min_price, max_price, min_year, max_year, min_mileage, max_mileage, fuel, body_type, transmission, radius, page, market

listing_detail

1 cr

Full advert (price+priceIndicator+deviation, mileage, full spec [fuel/trans/body/doors/seats/…

required
id
optional
postcode, market

Every parameter, every allowed value →

AutoTrader API

2 of 2 endpoints, ready to run

View docs ↗

UK car listings (make/model + filters, paginated).

1 credit0 required · 4 optional
POST/autotrader/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the AutoTrader API works

AutoTrader is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 185 engines.

02
Call
POST /autotrader/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 credit per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

What an AutoTrader UK search row actually contains

The search action returns 20 listings per page, and several values people expect as their own fields are not fields at all. Mileage, the price-indicator rating and the registration plate identifier all live inside the badges array. These values were read off live BMW 3 Series and Ford Fiesta searches on 2026-08-27.

FieldMeasured valueWhat it means
advert_id"202608135062814"15-digit string; the first 8 digits are a YYYYMMDD stamp (2026-08-13). This is the number in a /car-details/<id> URL.
price / price_formatted7795 / "£7,795"price is a plain integer in GBP, price_formatted is display text. currency is always "GBP".
badges[0]"Great price", "Good price", "Lower price"AutoTrader's price indicator for the advert. There is no separate price-indicator field on a search row.
badges (mileage)"63,000 miles", "183,000 miles"Mileage is a formatted string inside badges. Search returns no numeric mileage field.
badges (plate)"2017 (66 reg)", "2019 (19 reg)"Year plus the UK registration plate identifier. The numeric year is also on the row as year.
seller_type"TRADE" or "PRIVATE"Uppercase. TRADE rows also carry dealer_link; private rows return dealer_link null.
location / distance"Altrincham (8 miles)" / {value: 8, unit: null}Distance from the postcode you passed, in miles. unit comes back null, and the radius parameter is miles too.
rrp, discount, monthly_finance, dealer_ratingnullAll four were null on every used-car row sampled. rrp is a new-car field.
condition / vehicle_category"used" / "car"Lowercase values on every row sampled.
market"uk"market="us" returns the error code MARKET_UNAVAILABLE, not an empty list. Use the cars-com engine for US listings.

Pagination is 20 listings per page. A BMW 3 Series search anchored on SW1A 1AA returned total_results 6884 across page_count 345; a filtered Ford Fiesta search near M1 1AE returned 1157 across 58 pages. total_results is the market-wide count for your filters, not the number of rows in the response.

What people build with AutoTrader

The jobs this data is most often used for.

2

endpoints

1

credit per call

01

Automotive pricing tools call search to track used-car prices by make, model and mileage.

02

Dealer-intelligence products filter search by seller type to monitor trade vs private listings.

03

Market analysts use listing_detail to study price-vs-RRP and depreciation across the UK market.

What AutoTrader data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 185 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/autotrader/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"make":"BMW","model":"3 Series","postcode":"SW1A 1AA","market":"uk"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/autotrader/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "make": "BMW",
  "model": "3 Series",
  "postcode": "SW1A 1AA",
  "market": "uk"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up AutoTrader.

Get a free key →
Is this AutoTrader UK or AutoTrader US?

AutoTrader UK, autotrader.co.uk. The market parameter accepts "us", but a US search returns the error code MARKET_UNAVAILABLE rather than listings, measured on 2026-08-27. For US car listings use the cars-com engine instead. Everything else follows from that: prices are GBP, mileage is miles, and locations are anchored on a UK postcode.

What is the format of an AutoTrader advert_id?

A 15-digit string whose first eight digits are a date in YYYYMMDD form. Six ids sampled on 2026-08-27 decoded to 2026-08-25, 2026-08-13, 2026-07-30, 2026-07-24, 2026-06-18 and 2026-05-22, so the leading block tells you roughly how long an advert has been up. It is the same number that appears in the advert URL as /car-details/<id>, and it is what listing_detail takes as id.

Where is the mileage? There is no mileage field on a search result.

Mileage is a formatted string inside badges, for example "63,000 miles". Search rows carry price, year, make, model and condition as typed fields, but mileage, the price-indicator rating and the plate identifier are all badge entries. If you need a number, strip the commas and the word yourself, or use min_mileage and max_mileage to filter server-side, since those parameters do take integers.

What does the "Great price" or "Lower price" badge mean?

It is AutoTrader's own price indicator for the advert, comparing the asking price against what the site thinks the car is worth. Values seen on live results include "Great price", "Good price" and "Lower price", and they always sit first in the badges array when present. Not every advert has one, and those rows open straight onto the mileage badge instead.

Why does listing_detail reject a request that only has url?

Despite the parameter description reading "Provide id OR url", sending only url returns MISSING_PARAM with the message "missing: id", measured 2026-08-27. Parse the digits out of the /car-details/<id> path yourself and send them as id. url is best treated as an extra hint alongside id rather than a substitute for it.

What does a TARGET_BLOCKED response from listing_detail mean?

It means the advert page did not come back on that attempt, and it is flagged retryable: true, so a repeat is the right response rather than a code change. In a 2026-08-27 check listing_detail returned TARGET_BLOCKED on four consecutive advert ids while search kept working normally. Search rows already carry price, year, make, model, images, seller_type and the mileage badge, so most pipelines can fall back to search while retrying detail.

How many results per page, and how deep can I page?

20 listings per page. The response repeats page, page_count and total_results in meta and again in data.page_info, plus a search_id that ties the pages of one query together. total_results is the number of adverts matching your filters market-wide, 6884 for BMW 3 Series near SW1A 1AA on 2026-08-27, so divide by 20 to see how deep page_count goes before you start looping.

Which fuel, body_type and transmission values does search accept?

transmission is a strict pair, Manual or Automatic. fuel is documented as Petrol, Diesel, Electric, Hybrid and Plug-in Hybrid, and body_type as Hatchback, Saloon, Estate, SUV, Coupe, Convertible and MPV, but both are pass-through: other AutoTrader labels are forwarded rather than rejected. All three ignore an invalid value, so a label the site does not recognize silently drops the filter instead of erroring. Compare total_results with and without it if you need to be sure a filter took.

What is the AutoTrader API?

AutoTrader API is a ReefAPI endpoint group for new and used car listings with prices and specs. It returns live JSON through POST requests under /autotrader/v1.

Is the AutoTrader API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. AutoTrader calls use the same shared credit balance as every other ReefAPI engine.

Do I need an AutoTrader login or account?

No login to AutoTrader is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the AutoTrader data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the AutoTrader API use?

AutoTrader actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call AutoTrader from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call autotrader actions with the same key, credit pool and JSON envelope used by normal REST requests.

37 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling AutoTrader, you are one call away from the rest of the category — no second contract, no second integration.

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts.