AutoScout24 API

Search AutoScout24 car listings across ten country editions

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

A
/autoscout24/v1

7 active endpoints. Every call is 1 credit.

  • POST/autoscout24/v1/search
  • POST/autoscout24/v1/listing
  • POST/autoscout24/v1/makes
  • POST/autoscout24/v1/models
  • POST/autoscout24/v1/filter_options
  • POST/autoscout24/v1/seller_listings
  • POST/autoscout24/v1/browse_links

What AutoScout24 endpoints does ReefAPI ship?

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

7 endpoints

search

1 cr

Paginated car search by make (+ model/filters) across EU TLDs.

required
optional
make, model, model_group, country, page, sort, desc, price_min, price_max, year_min, year_max, mileage_min, mileage_max, fuel, transmission, body_type, zip, radius, power_min, power_max, super_deal, seller_type, offer_type

listing

1 cr

Full listing detail by url/path or id (description, prices, vehicle, images, seller, leasing,…

required
optional
url, path, id, country

makes

1 cr

Vehicle makes taxonomy from search hub page.

required
optional
country

models

1 cr

Models taxonomy for a make (query-param filters.

required
make
optional
country

filter_options

1 cr

Available filter dimensions (fuel, body, transmission, etc.) from taxonomy blob.

required
optional
make, country

seller_listings

1 cr

Listings for a dealer/private seller by customer id (cid).

required
cid
optional
country, page, seller_id

browse_links

1 cr

SEO browse graph.

required
optional
make, country

Every parameter, every allowed value →

AutoScout24 API

3 of 7 endpoints, ready to run

View docs ↗

The model and model-group slugs under one make — what you need before a search can be narrow.

1 credit1 required · 1 optional
POST/autoscout24/v1/models
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 AutoScout24 API works

AutoScout24 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 /autoscout24/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.

Resolve the slugs, then search with them

Make and model are slugs, not free text, and a wrong slug is rejected rather than guessed at. Two cheap lookups turn a car you can name into a search you can run.

01models
POST/autoscout24/v1/models
{"make": "bmw", "country": "de"}

Model and model_group are two different filters and the response gives you both. Needed once per make, not once per run.

02search
POST/autoscout24/v1/search
{"make": "bmw", "model_group": "3er", "country": "de"}

Every row carries the listing id and its full URL, so detail is optional if the search row already has what you need.

Two credits to go from a make name to a filtered result page. Slug lookups are worth caching — they change far more slowly than the listings do.

request
curl -X POST https://api.reefapi.com/autoscout24/v1/models \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"make":"bmw"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "autoscout24",
    "endpoint": "models",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

AutoScout24 country editions and what each one returned

Each country value is a separate AutoScout24 marketplace with its own host, its own language for the vehicle labels and its own inventory. The table records what a live make=bmw search returned for each of the twelve accepted values on 2026-08-27, including the two that did not answer, so you know which ones you can build on.

countryHostLive search on 2026-08-27BMW listings reported
deautoscout24.deanswered62,735
atautoscout24.atanswered13,420
itautoscout24.itanswered29,614
esautoscout24.esanswered16,805
nlautoscout24.nlanswered22,223
frautoscout24.franswered11,079
luautoscout24.luanswered1,059
plautoscout24.planswered169,381
roautoscout24.roanswered169,381
hrautoscout24.hranswered169,381
chautoscout24.chHTTP 403, marked retryablenot measured
beautoscout24.beHTTP 404, error code NOT_FOUNDnot measured

pl, ro and hr returned the identical total and the identical lead listing, so those three editions serve one shared cross-border pool behind localized hosts and labels rather than three national inventories; de, at, it, es, nl, fr and lu each returned distinct stock. Whatever the country, total_pages came back capped at 200 pages of 20, so at most 4,000 listings are reachable per query no matter how large total is. Narrow with make, model, price and year filters instead of paging deeper.

Ten working editions, and three that share one pool

AutoScout24 publishes a site per country and the country parameter picks one. What that actually gets you is not uniform, and the difference is the sort of thing that only shows up when you run the same search twice and compare the rows. We did.

Editions that work

Germany, Austria, Italy, France, Netherlands, Spain, Poland, Romania, Croatia and Luxembourg answered on the measurement date.

Against us — two that do not

The Swiss edition returned a hard refusal and the Belgian one a not-found, on repeated attempts. They are listed as accepted values and they do not currently return cars. Do not build a European rollup that assumes twelve.

What country does — and where it stops meaning a country

Germany, the Netherlands, France and the other domestic editions returned cars located in that country, twenty out of twenty. Poland, Romania and Croatia returned something else: the identical result count and the identical first page as each other, made of cars in the Netherlands, Germany, Italy and Belgium. Those three editions are one shared cross-border pool, not a local market.

Currency

Euro everywhere, including on the Polish and Romanian editions where the local currency is not the euro. That is a genuine convenience and it is also a trap if you assumed the site's country implied its currency.

Listing ids

A UUID, and the same UUID is repeated at the end of the listing URL — so unlike most classifieds in this category, you can read the id straight off a link. The path in front of it changes per edition, so a single URL pattern will not match all ten.

Against us — there is no numeric price

Price arrives as a formatted string only, and the thousands separator changes with the edition: a full stop on the German, Italian and Spanish sites, a space on the Austrian, French and Polish ones. Mileage does the same. A parser written against one edition will silently misread another by a factor of a thousand.

Against us — the deal rating is not everywhere

The price evaluation that makes this source interesting to dealers came back populated on the German, Austrian, Italian and Spanish editions and empty on the Dutch, Polish, Romanian, Croatian and Luxembourg ones. Null there means not offered, not average.

What people build with AutoScout24

The jobs this data is most often used for.

7

endpoints

1

credit per call

01

Automotive pricing tools call search to track used-car prices and spot super-deals by make and model.

02

Dealer-intelligence products use seller_listings to audit a competitor dealership's inventory.

03

Market analysts use makes, models and filter_options to size supply across the European car market.

What AutoScout24 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/autoscout24/v1/models \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"make":"bmw"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/autoscout24/v1/models",
    headers={"x-api-key": REEF_KEY},
    json={
  "make": "bmw"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up AutoScout24.

Get a free key →
Is the AutoScout24 price a number I can compare?

Not on a search card. search returns price_formatted as a localized string, measured as '€ 7.990' on de, '€ 2 885' on pl and '€ 10 490' on fr, with the thousands separator following the local convention. The listing action gives you the number: prices.public.priceRaw came back as 7990 for that same car, alongside netPriceRaw 6714, vatRate 19 and taxDeductible false. Call listing when you need arithmetic, or strip the separators yourself.

What does price_evaluation mean on an AutoScout24 listing?

It is AutoScout24's deal rating as an integer category, 0 being the cheapest band and 6 the most expensive relative to the market. A single BMW search page on 2026-08-27 returned categories 0, 1, 2 and 4 plus three cards with null, so null means the rating is simply not published for that car. The listing action shows the arithmetic behind it: for one 7,990 euro car it returned median 8500 and an evaluationRanges array giving the price window per category, for example category 1 as 5901-7600 and category 2 as 7601-8500. super_deal is a separate flag for cars priced well below market.

Is mileage in kilometers, and is power in kW or hp?

Mileage is kilometers and power is reported both ways. A search card returns mileage_km as a localized string, '100.000 km' on de and '161 299 km' on pl, while the listing action returns vehicle.mileageInKmRaw as the integer 100000. Power comes back as power_kw '75 kW' and power_ps '102 PS' on the same listing, and the search card's vehicle_details array carries the combined string '75 kW (102 PS)'. The power_min and power_max search filters take kW.

What format is the first-registration date?

Three forms, depending on where you read it. A search card returns first_registration as MM-YYYY, measured as '11-2014'. Inside vehicle_details the same value appears as '11/2014'. The listing action carries both vehicle.firstRegistrationDate '11/2014' and vehicle.firstRegistrationDateRaw '2014-11-01', which is the only ISO-shaped date in the response and the one to parse. The year_min and year_max filters take a plain four-digit year.

Why do fuel and transmission come back as German or Polish words?

Because what you filter on and what you get back are two different vocabularies. You filter with AutoScout24's codes: fuel B for petrol, D for diesel, E for electric, 2 for LPG, 3 for CNG, and transmission A for automatic, M for manual. What comes back is the storefront's own display label, measured as 'Benzin', 'Diesel', 'Elektro' and 'Schaltgetriebe' or 'Automatik' on de, 'Benzyna' on pl, 'Benzină' on ro and 'Benzine' on nl. Map on the codes you sent, not on the strings you got back.

What does an AutoScout24 listing id look like?

A UUID, for example e1a37c14-3c6f-47c6-903b-bdacbb870023. Every search card carries it as id along with url and path, and the listing action accepts any of the three. The path is the site-relative form, /angebote/... on de, /oferta/... on pl and /aanbod/... on nl, so a path from one country's search only resolves against that same country value.

What does a full AutoScout24 listing include beyond the search card?

A measured listing call returned the complete vehicle block with makeId, modelId, motorTypeName, hsnTsn, bodyType, numberOfSeats, numberOfDoors, bodyColor plus bodyColorRaw and bodyColorOriginal, the equipment list, every image, the free-text description, warranty ('12 Monate'), leasing_details, status 'Active' and created_at as an ISO timestamp. The seller block carries the dealer id, company name, contact name, phone numbers and a ratings object, measured at ratingsCount 33, ratingsAverage '4,5' and per-category stars. Feed the seller id into seller_listings to pull that dealer's whole stock.

How do I find valid make, model and body_type values?

Ask the taxonomy actions rather than guessing. makes returns every brand with id, name and slug for a country, models returns that make's models, model_groups and model_lines, and filter_options returns the available filter dimensions with their option codes, which is where the body_type and offer_type codes come from. make and model are slugs such as bmw and 320, and both reject an unknown value rather than silently ignoring it.

What is the AutoScout24 API?

AutoScout24 API is a ReefAPI endpoint group for autoscout24 It returns live JSON through POST requests under /autoscout24/v1.

Is the AutoScout24 API free to try?

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

Do I need an AutoScout24 login or account?

No login to AutoScout24 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 AutoScout24 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 AutoScout24 API use?

AutoScout24 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 AutoScout24 from an AI assistant or MCP client?

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

4 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling AutoScout24, 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. Field notes were captured on 2026-08-27.