AutoScout24 Scraper — Used & New Cars in 8 EU Countries avatar

AutoScout24 Scraper — Used & New Cars in 8 EU Countries

Pricing

from $1.05 / 1,000 result items

Go to Apify Store
AutoScout24 Scraper — Used & New Cars in 8 EU Countries

AutoScout24 Scraper — Used & New Cars in 8 EU Countries

AutoScout24 car listings for dealers, importers, pricing analysts and AI agents: 293 makes in 8 EU countries, filters for model version, price, year, mileage, power, fuel, gearbox, body, owners, seller and postcode radius. Typos in make/model are auto-corrected. Price rating, price per km.

Pricing

from $1.05 / 1,000 result items

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Structured car listings from autoscout24.com, Europe's largest car marketplace, across Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands. Search by any of 293 makes and their models with every major site filter — price, first registration, mileage, power, fuel, gearbox, body, colour, emission class, previous owners, equipment, dealer or private seller, postcode radius — and get price, autoscout24's price rating, price per 1 000 km, specs, location and the seller with phone numbers. detail: true adds the description, full equipment list, drivetrain, weight, emission class, CO₂ and consumption, previous owners and coordinates. Built for car dealers and importers, leasing and remarketing, price analysts and AI agents.

No proxies, no browser, no API key — reads the JSON embedded in the public pages. Cars are saved page by page as they are read, so a run that hits your spending limit or its timeout keeps (and bills) exactly the cars it saved.

Use cases

  • Import sourcing — cheapest 2019+ automatic Golf under €20 000 in DE/AT/NL, only "top/good price" ratings, sorted by price.
  • Dealer lead generation — the Sellers view lists dealers with phones, ratings and dealer pages for a make/region.
  • Residual value & pricing analytics — pull 1 000+ listings of a model and regress price on year, mileageKm, powerKw; pricePer1000Km and priceLabel help spot outliers.
  • Stock monitoring — sort: "age" (latest offers first) scheduled hourly for a narrow search to catch new cars before competitors.
  • Local market scan — zip + radiusKm + sort: "distance" around your showroom.
  • Spec-level research — detail: true for equipment, emission class and consumption for EV/hybrid comparisons.

Input

All fields are optional. Select fields (country, countries, condition, offerTypes, powerUnit, fuel, gear, body, sellerType, bodyColors, emissionClass, maxPreviousOwners, priceLabels, sort) take only the codes listed below — Apify refuses any other value before the run starts and shows the allowed ones. The free-text fields make, model, version, equipment and fields are forgiving (see each row).

FieldTypeDefaultAllowed values / notes
makestring– (prefill bmw)Slug, name or id (mercedes-benz, Volkswagen, Lynk & Co, 13). Empty = all makes. Typos are auto-corrected (Volkswagon, Mercedes, VW). Reference → Makes.
modelstring–Model or series slug from the site URL (x5, golf, 3-series, c-class, id-4). Typos are auto-corrected (sendiro → sandero, golff → golf); extra words go to version (sandero stepway). No close model → run fails listing the valid slugs.
versionstring–Model version words, like the site's "Model version" box (stepway, gti, touring, amg). Every word must appear in the listing's version title; a misspelt word is corrected from real listing titles when nothing matches.
countrystring"" = all 8 countries (Console prefill D)A, B, D, E, F, I, L, NL, "" = all of Europe
countriesstring[][]Several countries; overrides country.
zip, radiusKmstring, integer–Postcode search inside the selected country.
conditionstringallall, used, new
offerTypesstring[][]N, U, J employee car, O classic, D demo, S pre-registered
priceFrom / priceTointeger–EUR
yearFrom / yearTointeger–First registration year
mileageFrom / mileageTointeger–km
powerFrom / powerTo, powerUnitinteger, string–, kwkw or hp
fuelstring[][]B, D, E, 2, 3, L, C, H, M, O (Reference → Fuel)
gearstring[][]A, M, S
bodystring[][]1–7, 12, 13 (Reference → Body type)
sellerTypestringallall, dealer, private
bodyColorsstring[][]Colour codes (Reference → Body colour)
emissionClassstring""Minimum Euro class code (Reference → Emission class)
maxPreviousOwnersstring""1, 2, 3, 4 (4+)
doorsFrom/doorsTo, seatsFrom/seatsTointeger–
equipmentstring[][]Equipment names or ids, all required (e.g. Navigation system, 37 Guarantee). Letter case, spaces and hyphens do not matter; an unknown name fails the run with the closest names (it is never silently dropped).
priceLabelsstring[][]Client-side: top-price, good-price, fair-price, increased-price, high-price, toolow-price, no-rating
extraParamsobject{}Any other /lst URL parameter copied from the site
sortstringstandardstandard, price, age, mileage, year, power, make, distance
sortDescendingbooleanautoDefault ascending; age defaults to newest first
maxItemsinteger401–4000 (20 per page)
maxPagesinteger– (empty = until maxItems)1–200. Optional cap on search pages, e.g. to bound a priceLabels scan; the status says when it stopped the run before maxItems.
detailbooleanfalse+1 request per car (about 1.5 s)
dedupebooleantrue
fieldsstring[]– (all columns)Keep only these output columns, in this order; id and url are always kept. Letter case and small typos are corrected (shown in the status), unknown names are ignored with a warning, and the run fails if none is a column. Columns that come only from listing pages need detail: true.

autoscout24 silently shows all cars when it does not understand a make or model; this actor checks what the site actually applied. An obvious typo is auto-corrected against autoscout24's own make/model list (e.g. " Dacia " + "sendiro stepwy" → Dacia · sandero · version stepway) — the correction is logged as a warning, shown in the run's status message and stored in the SUMMARY record. Anything not clearly close still fails with a clear message listing the valid slugs. Legacy inputs (make, model, country, priceFrom, priceTo, yearFrom, sort, maxItems) keep working. Since 02.10.2026 a run without country searches all 8 countries (it used to search Germany only) and an empty maxPages no longer stops a run at 400 cars.

Reference

Countries (country, countries)

CodeCountry
AAustria (AT)
BBelgium (BE)
DGermany (DE)
ESpain (ES)
FFrance (FR)
IItaly (IT)
LLuxembourg (LU)
NLNetherlands (NL)
""All of Europe

Makes (make)

293 makes. Pass the slug, the name or the id.

Models — use the slug from the site URL /lst/<make>/<model>. Both single models (x5, golf, a4, c-220, id-4) and series / model lines (3-series, c-class, range-rover-sport) work. Typos are corrected when one model is clearly the closest (≤2 edits, ≤30 % of the length); a wrong model with no close match fails the run and lists the valid slugs for that make. Words after the model (sandero stepway, golf gti clubsport) become the version filter.

Fuel (fuel)

CodeMeaning
2Electric/Gasoline
3Electric/Diesel
BGasoline
CCNG
DDiesel
EElectric
HHydrogen
LLPG
MEthanol
OOthers

Gearbox (gear)

CodeMeaning
AAutomatic
MManual
SSemi-automatic

Body type (body)

CodeMeaning
1Compact
2Convertible
3Coupe
4SUV/Off-Road/Pick-Up
5Station Wagon
6Sedan
7Other
12Van
13Transporter

Offer type (offerTypes)

CodeMeaning
NNew
UUsed
JEmployee's car
OAntique / Classic
DDemonstration
SPre-registered

Seller (sellerType)

Valueautoscout24 custtype
all–
dealerD
privateP

Body colour (bodyColors)

CodeMeaning
1Beige
2Blue
3Brown
4Bronze
5Yellow
6Grey
7Green
10Red
11Black
12Silver
13Violet
14White
15Orange
16Gold

Emission class (emissionClass)

CodeMeaning
1Euro 1
2Euro 2
3Euro 3
4Euro 4
5Euro 5
6Euro 6
7Euro 6c
8Euro 6d
9Euro 6d-TEMP
10Euro 6e
11Euro 6b

Price rating (priceLabels, output priceLabel)

ValueMeaning
top-priceTop price
good-priceGood price
fair-priceFair price
increased-priceIncreased price
high-priceHigh price
toolow-priceSuspiciously low price
no-ratingNo price rating

Sort (sort)

ValueMeaning
standardBest results (site default)
pricePrice
ageLatest offers first
mileageMileage
yearFirst registration
powerPower
makeMake/Model
distanceBy distance (needs zip)

Equipment (equipment)

Examples

Import sourcing — 2019+ automatic Golf under €20 000, good deals only, DE/AT/NL

{ "make": "volkswagen", "model": "golf", "countries": ["D", "A", "NL"], "yearFrom": 2019, "mileageTo": 100000, "priceTo": 20000, "gear": ["A"], "sellerType": "dealer", "priceLabels": ["top-price", "good-price"], "sort": "price", "maxItems": 200 }

Trim level — Dacia Sandero Stepway, used, 2021+, under €15 000

{ "make": "dacia", "model": "sandero", "version": "stepway", "offerTypes": ["U"], "yearFrom": 2021, "priceTo": 15000, "maxItems": 100 }

Stock alert — newest BMW X5 diesel listings in Germany, hourly

{ "make": "bmw", "model": "x5", "country": "D", "fuel": ["D"], "sort": "age", "maxItems": 40 }

Local dealer leads — used cars within 50 km of Munich

{ "make": "", "country": "D", "zip": "80331", "radiusKm": 50, "sellerType": "dealer", "condition": "used", "sort": "distance", "maxItems": 500 }

EV residual values — Tesla Model 3 across Europe with specs

{ "make": "tesla", "model": "model-3", "country": "", "fuel": ["E"], "detail": true, "maxItems": 300 }

Family car shortlist — station wagons, 1 previous owner, full service history, Euro 6

{ "make": "skoda", "model": "octavia", "body": ["5"], "maxPreviousOwners": "1", "equipment": ["49"], "emissionClass": "6", "priceTo": 25000, "maxItems": 100 }

Output

One dataset item per car. Example (real run, trimmed, detail: true):

{
"id": "226560e1-e735-4bd6-940a-6d9e7b3376f1",
"url": "https://www.autoscout24.com/offers/bmw-318-d-business-paket-pdc-navi-diesel-black-cat_ma13mo1640-226560e1-…",
"title": "BMW 318 d *BUSINESS-PAKET*PDC*NAVI*",
"make": "BMW", "model": "318", "modelGroup": "3 Series", "variant": "Touring",
"offerType": "Used", "price": 11399, "currency": "EUR", "priceLabel": "top-price",
"firstRegistration": "2019-04", "year": 2019, "mileageKm": 161668, "pricePerKm": 0.071, "pricePer1000Km": 71,
"fuel": "Diesel", "transmission": "Manual", "powerKw": 110, "powerHp": 150, "engineCcm": 1995,
"consumption": "4.3 l/100 km (comb.)", "co2": "114 g/km (comb.)",
"countryCode": "DE", "zip": "85276", "city": "Pfaffenhofen an der Ilm",
"sellerType": "dealer", "sellerId": "24363553", "sellerName": "MYAUTOCENTER OHG",
"sellerPhones": ["+498441797960200", "+498441879460"], "sellerRating": 4.5, "sellerRatingsCount": 251,
"imagesCount": 50, "sponsored": true, "position": 1, "searchTotal": 2721, "fetchedAt": "2026-09-13T08:24:40.607Z",
"bodyType": "Station Wagon", "seats": 5, "doors": 4, "color": "Black", "upholstery": "Cloth",
"cylinders": 4, "driveTrain": "Rear Wheel Drive", "weightKg": 1575, "emissionClass": "Euro 6",
"co2Gkm": 114, "consumptionL100km": 4.3, "previousOwners": 2,
"equipment": ["Air conditioning", "Armrest", "Automatic climate control", "Navigation system", "…"],
"lat": 48.52184, "lon": 11.54022, "createdAt": "2026-05-14T00:32:46.153Z", "status": "Active"
}
FieldDescription
id, crossReferenceId, url, titleListing GUID, secondary id, listing URL, title
make, model, modelGroup, variant, versionVehicle identity
offerType, offerTypeCodeUsed / New / Demonstration / …
price, currency, priceFormattedPublic price in EUR
priceLabelautoscout24 price rating (top-price, good-price, fair-price, increased-price, high-price, toolow-price)
firstRegistration, year, mileageKmYYYY-MM, year, km
pricePerKm, pricePer1000Kmprice / mileageKm (null for 0 km cars)
fuel, transmission, powerKw, powerHp, engineCcm, consumption, co2, damagedSpecs from the card
countryCode, zip, city, streetLocation
sellerType, sellerId, sellerName, sellerPhones, sellerRating, sellerRatingsCount, sellerInfoUrlDealer / private seller
image, imagesCount, sponsored, leadsRangeMedia, paid placement flag (true only with sort: "standard", see Limits), autoscout24 interest bucket
position, searchTotal, searchUrl, fetchedAtRank, total matching cars (market size), search URL, timestamp
With detail: truedescription, bodyType, seats, doors, color, colorOriginal, paintType, upholstery, cylinders, gears, driveTrain, weightKg, emissionClass, co2Gkm, consumptionL100km, electricRangeKm, previousOwners, hsnTsn, equipment, equipmentByCategory, lat, lon, createdAt, status, warranty, vatDeductible, negotiable, netPrice, vatRate, sellerContactName, sellerRecommendPercent, offerReference, imagesCountFull
detailErrorDetail mode only: present when the listing page could not be opened — the car is still saved with its search data ("not opened: …" when the run stopped opening listing pages after a block, see Limits)

With fields, each item keeps only id, url and the columns you listed, in your order.

The key-value store record SUMMARY describes the run: searched (make, model, version and the exact search URL actually used), typed (the input as given), corrections (auto-corrected typos), warnings, fields, searchTotal, saved, pagesRead, maxPages, endedBy (maxItems, end of the search, maxPages, searchError, detailBlock or stopped by the spending limit / timeout), searchError, detail (opened, failed, notOpened, blocked), skippedByPriceLabel, skippedSponsored, reorderedClientSide, orderBreaksAcrossPages, sort, sortDescending, delivered, stoppedBy and status. searchUrl in every item is the corrected search URL.

Use it from code / agents

curl -X POST "https://api.apify.com/v2/acts/yadroo~autoscout24-cars/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"make":"audi","model":"a4","country":"D","priceTo":20000,"yearFrom":2018,"sort":"price","maxItems":50}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/autoscout24-cars').call({ make: 'bmw', model: 'x5', sort: 'age', maxItems: 40 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/autoscout24-cars").call(run_input={"make": "tesla", "model": "model-3", "country": "", "detail": True})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to Claude / Cursor / any MCP client and call the yadroo/autoscout24-cars tool with the same JSON input.

Pricing

Pay per event: $0.005 per run start + $0.0015 per car. Bronze −10 %, Silver −20 %, Gold and above −30 % on the car price; the start event is the same on every plan; platform usage is included (no proxy or browser costs). Typical runs: 40 cars ≈ $0.065; a 1 000-car pricing dataset ≈ $1.505; an hourly 20-car stock alert ≈ $0.035/run. detail: true costs the same per car but adds about 1.5 s per car. Set "Maximum cost per run" and the run stops there with exactly the cars it was paid for: status "Stopped at your spending limit: N rows delivered".

Limits & FAQ

  • Depth — autoscout24 serves 20 cars per page and at most 200 pages (4 000 cars) per search; the log tells you when a search is bigger. Split by price or year range.
  • Run time — search only: about 600 cars per minute. detail: true: about 1.5 s per car (1 000 cars took 25 minutes in a cloud test), so the default 1-hour timeout fits about 2 300 cars. Cars are saved page by page; a run near its timeout stops starting new pages, keeps every car it saved and ends SUCCEEDED with "Stopped before the run timeout: N rows saved" — raise the timeout or split the search for more.
  • Rate limits and blocks — ~0.8 s between search pages and ~0.9 s between listing pages; 429/5xx retried with backoff. If the first search page cannot be read (403, unknown page layout), the run fails with a clear error. If a later search page fails, the run ends SUCCEEDED with the cars already saved and says at which page it stopped. If listing pages are refused (403, a page without data, or 5 failures in a row) in detail mode, no more listing pages are opened: the cars of that search page are saved without details (detailError: "not opened: …", billed like any car — they carry the full search data), paging ends and the status says so. A removed listing (404) keeps its car with detailError and does not stop the run.
  • Filters not available — autoscout24's URL does not honour drivetrain, "online since" or damaged-car parameters, so they are not offered; priceLabels is applied client-side.
  • Typos in make/model — auto-corrected, never silently widened: Volkswagon → volkswagen, golff → golf, sendiro stepwy → sandero + version stepway. Check the log warning, the status message or the SUMMARY record (searched, corrections) to see exactly what was searched. A model with no close match fails the run with the list of valid slugs.
  • Sponsored cars and sort order — autoscout24 pins 1–3 paid ("sponsored") cars to the top of every result page whatever the sort, so on the site a price-sorted list is not strictly ascending. These are extra slots: the same car also appears organically at its sorted position (checked on a 41-car search: 41 organic cars, contiguous and sorted across pages). So with any sort other than standard the actor skips the sponsored inserts and the dataset follows the requested order; for price, mileage and power it also re-checks the order client-side within each page of 20 (stable, empty values last) — cars are written page by page, so a break of autoscout24's own order between two pages is counted in SUMMARY.orderBreaksAcrossPages, not repaired. The SUMMARY record shows skippedSponsored and reorderedClientSide. With sort: "standard" (best results) sponsored cars are kept and flagged sponsored: true.
  • 0 cars — the run still succeeds; the log and status message say so. Widen price, year or mileage.
  • Countries — the 8 autoscout24 markets listed above; the .com site shows the same stock as local domains.
  • Freshness — live at run time.
  • Roadmap — vans/motorbikes (atype), dealer inventory mode (all cars of one dealer), price-drop tracking between runs.

Made by Yadroo. Sibling actors: kolesa-kz (cars in Kazakhstan), krisha-kz (real estate), kaspi-kz-products (marketplace prices), hh-kz-vacancies (jobs), marktplaats-nl, kleinanzeigen-de, willhaben-at.