AutoScout24 Scraper
Car offers from AutoScout24 in Germany, Austria, Belgium, the Netherlands, Italy, Spain, France and the international site as clean JSON: make, model...
Car offers from AutoScout24 in Germany, Austria, Belgium, the Netherlands, Italy, Spain, France and the international site as clean JSON: make, model, price, price rating, year, mileage, fuel, gearbox, power, photos. Dealer or private as a flag; seller identity never collected. Pay per result.
$3.00 / 1,000 · Recently published - building its public record.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
make |
string | The car make to search, as AutoScout24 spells it in its address bar: bmw, mercedes-benz, alfa-romeo, volkswagen. Plain spelling works too ("Mercedes-Benz", "Alfa Romeo"). Leave it out only when you re-check offers through listingIds. |
bmw |
model |
string | Optional model inside the make, as the address bar spells it: 320, golf, c-200, x5. Leave empty for every model of the make. |
- |
country |
string | Which AutoScout24 site to read. Each lists the offers of its own country, with labels in its language; com is the international site with every country's offers in English. | de |
listingIds |
array | Re-check offers you already know instead of searching: one offer ID per line (the long id at the end of every offer address, and the listingId of every dataset item), or the offer's full address. Each one is read from its own page, so it carries the description, the posting time, the site's own status and the full spec sheet. An offer that is gone from the site is skipped, named in the log and not billed. When given, the search fields of this form are ignored and the run status says which; country still picks the site. Up to 50. |
[] |
priceMinEur |
integer | Only include offers priced at least this many euros. | - |
priceMaxEur |
integer | Only include offers priced at most this many euros. | - |
yearMin |
integer | Only include cars first registered in this year or later, e.g. 2018. |
- |
yearMax |
integer | Only include cars first registered in this year or earlier. | - |
mileageMinKm |
integer | Only include cars with at least this many kilometres. | - |
mileageMaxKm |
integer | Only include cars with at most this many kilometres, e.g. 100000. |
- |
fuel |
string | Only include cars running on this fuel. Leave empty for any. | - |
transmission |
string | Only include cars with this gearbox. Leave empty for any. | - |
bodyType |
string | Only include this body type. Leave empty for any. | - |
sellerType |
string | Dealers only, private sellers only, or both. | any |
postcode |
string | Centre of a radius search, a postcode of the chosen country site, e.g. 10115. Needs radiusKm to have an effect. |
- |
radiusKm |
integer | Only include offers within this many kilometres of the postcode. The site accepts 10 to 400. | - |
sortBy |
string | Order of results: newest (best for monitoring), price_asc, price_desc, mileage_asc, year_desc, or relevance (the site's own order). | newest |
maxItems |
integer | Stop after this many offers. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 1000. The site serves 4,000 offers per query; above that the run splits the query by price band to reach the rest. | 1000 |
scrapeDetails |
boolean | The search row carries the price, the key specs and the photos but no description and no posting time. Turn this on to read each offer's own page for the seller's description, the posting time, the site's own status, the net price and VAT, body, seats, doors, colour, gears, drivetrain, emission class, owners, service history, next inspection and the equipment list. One extra request per offer, so a run is slower. Seller name, phone, street and coordinates are never read. | False |
reportFailures |
boolean | When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. | True |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
listingId |
string | AutoScout24 offer id, the same on every country site. |
url |
string | Direct link to the offer on the country site it was read from. |
title |
string | The offer title: the seller's version text when there is one, otherwise make and model. |
make |
string | Make. |
model |
string | Model. |
modelGroup |
string | Model line the model belongs to. |
variant |
string | Body variant as the site classifies it. |
motorType |
string | Engine designation. |
version |
string | The seller's own version text. |
priceCents |
integer | Asking price in euro cents. |
currency |
string | Always EUR when a price is present. |
priceRating |
string | The site's own verdict on the price against comparable offers. Present when the site shows one. |
previousPriceCents |
integer | The earlier price in euro cents when the site shows the offer as reduced. |
firstRegistration |
string | First registration, year and month. |
mileageKm |
integer | Mileage in kilometres. |
fuel |
string | Fuel as the site labels it, in the site's language. |
fuelCode |
string | Fuel as the site codes it, the same on every country site: B petrol, D diesel, E electric, 2 hybrid petrol, 3 hybrid diesel, L LPG, C CNG, H hydrogen. |
transmission |
string | Gearbox as the site labels it, in the site's language. |
powerKw |
integer | Engine power in kW. |
powerHp |
integer | Engine power in horsepower as the site states it. |
engineDisplacementCcm |
integer | Engine displacement in cubic centimetres. |
fuelConsumption |
string | Combined consumption as the site states it. Absent when the seller gave none. |
co2Emission |
string | Combined CO2 emission as the site states it. Absent when the seller gave none. |
offerCode |
string | The site's offer-type code (used, new, pre-registered, demonstration, classic) as it serves it. |
damaged |
boolean | Whether the site flags the car as currently damaged. Search rows only. |
vehicleType |
string | Vehicle kind as the site classifies it. |
countryCode |
string | Country the car is offered in. Matters on the international site, which mixes countries. |
postcode |
string | Postcode of the offer location. Municipality-level only: street and coordinates are never collected. |
city |
string | Town of the offer location. |
sellerType |
string | Whether the offer comes from a dealer or a private seller. The only seller-related field in the output. |
imageUrls |
array | Photos of the offer at 1280x960, in the site's order. The search row carries the first few; the offer page carries all. |
description |
string | The seller's description as plain text. Offer pages only (Fetch offer pages, or listingIds). |
postedAt |
string | When the offer was posted (ISO timestamp). Offer pages only. |
status |
string | The site's own offer status as it reports it, e.g. active. Offer pages only. |
negotiable |
boolean | Whether the seller marked the price as negotiable. Offer pages only. |
netPriceCents |
integer | Net price in euro cents when the dealer states one. Offer pages only. |
vatRate |
number | VAT rate in percent when the dealer states one. Offer pages only. |
vatDeductible |
boolean | Whether the VAT is shown as deductible. Offer pages only. |
condition |
string | new, used, pre_registered, demonstration, employee_car or classic. Offer pages only. |
bodyType |
string | Body type as the site labels it. Offer pages only. |
seats |
integer | Number of seats. Offer pages only. |
doors |
integer | Number of doors. Offer pages only. |
color |
string | Body colour as the site labels it. Offer pages only. |
paintType |
string | Paint type as the site labels it. Offer pages only. |
upholstery |
string | Upholstery as the site labels it. Offer pages only. |
gears |
integer | Number of gears. Offer pages only. |
cylinders |
integer | Number of cylinders. Offer pages only. |
driveTrain |
string | Drivetrain as the site labels it. Offer pages only. |
weightKg |
integer | Kerb weight in kg. Offer pages only. |
emissionClass |
string | Emission class. Offer pages only. |
particleFilter |
boolean | Whether a particle filter is fitted. Offer pages only. |
previousOwners |
integer | Number of previous owners. Offer pages only. |
fullServiceHistory |
boolean | Whether the seller states a full service history. Offer pages only. |
nonSmoking |
boolean | Whether the seller states a non-smoker car. Offer pages only. |
hadAccident |
boolean | Whether the seller declares accident damage. Offer pages only. |
damageConditions |
array | The damage the seller declares, as the site labels it. Offer pages only. |
nextInspection |
string | Next roadworthiness inspection due, year and month. Offer pages only. |
productionYear |
integer | Production year when stated. Offer pages only. |
warranty |
string | Warranty as the dealer states it. Offer pages only. |
equipment |
array | Equipment list as the site labels it. Offer pages only. |
Health
Recently published - building its public record. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.
Questions
Is scraping AutoScout24 legal?
This is not legal advice. The actor reads what any logged-out visitor sees on the AutoScout24 country sites, with no login, no CAPTCHA solving and no private endpoints, and it extracts no seller name, dealer name, contact detail, street or coordinates, so the output holds no personal data. Whether your own use of the offers is allowed under the site's terms and your jurisdiction's rules is yours to assess.
Which AutoScout24 countries does it cover?
Germany, Austria, Belgium in Dutch or French, the Netherlands, Italy, Spain and France, each on its own site, plus the international autoscout24.com in English. The country input picks the site; the columns are the same everywhere, and fuelCode and countryCode stay identical across sites while fuel and transmission carry each site's own label. Switzerland is a separate platform and is not covered.
Can I get only the newest offers?
Sort by newest, keep maxItems to a page or two and schedule the run: each run returns the latest offers for the make, model and filters you set. The site has no posting-date filter, so the daily cap is what keeps a watch cheap. With scrapeDetails on, every row also carries postedAt from the offer page.
How much do 10,000 offers cost?
$30.00, billed per delivered offer at $3.00 per 1,000. That price covers the run's platform usage, and a run that fails or returns nothing bills nothing beyond the actor start.
Does it return dealer or seller phone numbers?
No. The only seller field is whether the offer comes from a dealer or a private person. Names, company names, phone numbers, dealer links, streets and coordinates are never extracted, and a test on every build fails if one ever appears, so this is not a setting that can be switched off.
Does it return the full spec sheet?
Every search row carries make, model, version, price, the site's own price rating, first registration, mileage, fuel, transmission, power, displacement, consumption, CO2, location and photos. Turn on scrapeDetails, or name offers in listingIds, and each row also carries the description, posting time, status, net price and VAT, body, seats, doors, colour, gears, drivetrain, emission class, owners, service history, next inspection, warranty and the equipment list.