AutoScout24 Scraper
AutoScout24 used-car listings as rows: price, mileage, first registration, fuel, gearbox, power, town and dealer name, from a make or a search link.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
make,model,keyword(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00043 per car listing = $0.43 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Car listing scraped | One car listing returned in the dataset. Repeats, and listings that don't match your search, are never charged. | $0.00043 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-14, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
make | The make the way AutoScout24 spells it: BMW, Volkswagen, Mercedes-Benz, Alfa Romeo. Leave it empty if you only use search links below. | string |
model | Optional. The model in English, as autoscout24.com names it: 3 Series, Golf, C-Class, Model 3. If the site doesn't know the name, the run returns nothing, charges nothing, and lists the model names it does know in RUN_REPORT. | string |
keyword | Optional. A word or two the listing title has to contain, like the site's Model version box: 320d, Touring, M Sport. | string |
country | Where the car is for sale. | string |
condition | As the seller listed the car. Employee's cars, classics, demonstration and pre-registered cars are all used cars here; Offer type below picks them out. | string |
priceFrom | Lowest asking price, in euros. | integer |
priceTo | Highest asking price, in euros. | integer |
yearFrom | Earliest year the car was first registered. | integer |
yearTo | Latest year the car was first registered. | integer |
mileageFrom | Lowest mileage, in kilometres. | integer |
mileageTo | Highest mileage, in kilometres. | integer |
fuel | Hybrids are listed under their own two entries. | string |
transmission | Automatic, manual or semi-automatic. | string |
sellerType | Dealers, private sellers, or both. | string |
sort | The order listings are read in. With a limit below the number of listings, this decides which ones you get. | string |
searchUrls | Or paste up to 10 results pages from any AutoScout24 country site (autoscout24.de, .com, .at, .it, .fr, .es, .nl, .be, .lu), with the filters you set there. Each link needs a make in it. The form fields don't apply to links. | array |
maxItems | The most listings returned in one run, across all searches. Each one returned is charged. Repeats are skipped and not counted. | integer |
location | A postcode is the surest. A town name is read AutoScout24's way: "Munich" once came back as Münichham, a village about 85 km east. The status and RUN_REPORT say which place was searched. With all eight countries picked, the site can't place it, so the run asks for one country. | string |
radiusKm | How far from the place. Left empty, AutoScout24 uses 200 km. | string |
offerTypes | Pick one or more; empty means all of them. The rows still say Used for employee's cars, classics, demonstration and pre-registered cars, because that's how the results page lists them. | array |
accidentVehicles | Cars the seller lists as having had an accident. AutoScout24 leaves them out unless you ask. | string |
maxPreviousOwners | Once this is set, cars whose listing doesn't say how many owners they had are left out too. | string |
warranty | Only cars sold with a warranty. | boolean |
fullServiceHistory | Only cars listed with a full service history. | boolean |
nonSmoking | Only cars listed as non-smoking. | boolean |
newInspection | Cars that have just passed the German roadworthiness and emissions test, the site's "HU/AU new". | boolean |
powerFrom | In the unit picked below. | integer |
powerTo | In the unit picked below. | integer |
powerUnit | Kilowatts or horsepower, for the two fields above. | string |
electricRangeFrom | Only electric cars and plug-in hybrids have one, so this leaves everything else out. | integer |
electricRangeTo | Highest electric range, in kilometres. | integer |
bodyTypes | Pick one or more; empty means all of them. | array |
seatsFrom | Fewest seats. | integer |
seatsTo | Most seats. | integer |
doorsFrom | The site's own buttons are 2/3, 4/5 and 6/7: from 4 to 5 is its 4/5. | integer |
doorsTo | Most doors. | integer |
colors | Pick one or more; empty means any colour. | array |
metallic | Only cars listed with metallic paint. | boolean |
interiorColors | Pick one or more; empty means any. | array |
upholstery | Pick one or more; empty means any. | array |
emissionClass | Euro 6 also brings Euro 6b, 6c, 6d and 6e cars, the way the site's own filter works. | string |
emissionSticker | The Umweltplakette. Blue found no cars at all in our tests. | string |
particulateFilter | Only cars listed with a particulate filter. | boolean |
equipment | Every item you pick has to be on the car, as on the site. The list is AutoScout24's own. | array |
priceRatings | AutoScout24's own price badge. Pick one or more; empty means any. Once you pick one, cars the site hasn't rated are left out. | array |
vatDeductible | Cars sold with the VAT shown on the invoice, which a business buyer can reclaim. In practice these are dealers' cars. | boolean |
onlineSince | Only listings that went up on AutoScout24 in that time. | string |
financeRateFrom | The monthly rate AutoScout24 lists for financing the car. | integer |
financeRateTo | Highest monthly finance rate, in euros. | integer |
leasingOnly | The leasing fields below narrow the search to leasing offers on their own too. | boolean |
leasingRateFrom | Lowest monthly leasing rate, in euros. | integer |
leasingRateTo | Highest monthly leasing rate, in euros. | integer |
leasingMonthsFrom | Shortest leasing term, in months. | integer |
leasingMonthsTo | Longest leasing term, in months. | integer |
leasingMileageFrom | The fewest kilometres a year the lease has to include. | integer |
leasingAvailableNow | Only leasing cars you can have straight away. | boolean |
leasingTradeIn | The site's trade-in tick. It found no cars in our tests. | boolean |
leasingEnvironmentBonus | The site's Umweltbonus tick. It found no cars in our tests. | boolean |
What you get
A structured dataset — each result includes fields like:
titlepricecurrencymileageKmfirstRegistrationfueltransmissionpowerKwcitycountryCodesellerTypedealerNameurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
AutoScout24 Scraper: used car listings, prices and specs across eight countries
Pick a make, add a model and whatever filters you want, or paste search links you already set up on the site. Every listing comes back as a row: price, mileage, first registration, fuel, gearbox, power, town, dealer or private seller, the link and the photos.
The honest limit is depth. AutoScout24 stops showing results at page 200, so one search tops out around 4,000 cars whatever the counter at the top says.
| Input | A make and filters, or up to 10 AutoScout24 search links |
| Output | One row per listing |
| Ceiling | About 4,000 listings per search, 40,000 per run |
| Account needed | None |
| Price | $0.43 per 1,000 listings, flat on every plan |
🚗 What AutoScout24 Scraper does
Eight country sites, one set of columns: Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands.
The form covers what the site's own filter panel covers: the everyday price, year, mileage, fuel and gearbox, and under them power, body, seats, doors, colour, interior, upholstery, equipment, emission class, previous owners, price rating, VAT, and the finance and leasing rates.
Every filter sent is checked against the site's own echo before anything is read. If AutoScout24 quietly drops one, the run stops that search and names the filter it ignored instead of billing you for the wrong cars. That is not hypothetical: a pasted autoscout24.de link carrying the used-or-new parameter is refused, because the German site ignores it.
You need a make. A search with none is refused before any request.
📥 What you give it
{
"make": "BMW",
"model": "3 Series",
"country": "DE",
"condition": "used",
"priceTo": 20000,
"yearFrom": 2015,
"sort": "newest",
"maxItems": 500
}
| Field | Default | What it is |
|---|---|---|
make | none | As AutoScout24 spells it: BMW, Volkswagen, Mercedes-Benz, Alfa Romeo. |
model | none | The English name autoscout24.com uses: 3 Series, Golf, C-Class, Model 3. |
keyword | none | A word the title must contain, like 320d or M Sport. |
country | all | One of the eight, or all of them. |
condition | any | used, new or both. |
priceFrom, priceTo | none | In euros. |
yearFrom, yearTo | none | First registration year. |
mileageFrom, mileageTo | none | In kilometres. |
fuel, transmission | any | The site's own codes, picked from a list in the form. |
sellerType | any | dealer, private or both. |
sort | newest | Also price, mileage, power, registration, nearest first, or AutoScout24's own order. |
searchUrls | none | Up to 10 results pages from any of the country sites. The form fields do not apply to these. |
maxItems | 1000 | 1 to 40,000, across every search in the run. |
location, radiusKm | none | A postcode or town, and how far out. Needs exactly one country. |
offerTypes, accidentVehicles, maxPreviousOwners, warranty, fullServiceHistory, nonSmoking, newInspection | see the form | Condition and history. |
powerFrom, powerTo, powerUnit, electricRangeFrom, electricRangeTo, bodyTypes, seatsFrom, seatsTo, doorsFrom, doorsTo | none | Engine and body. |
colors, metallic, interiorColors, upholstery | none | Colour and interior. |
emissionClass, emissionSticker, particulateFilter | none | Environment. |
equipment | none | The site's own equipment list. Every item you pick has to be on the car. |
priceRatings, vatDeductible, onlineSince | none | Price badge, VAT status, how recently it was listed. |
financeRateFrom, financeRateTo, leasingOnly, leasingRateFrom, leasingRateTo, leasingMonthsFrom, leasingMonthsTo, leasingMileageFrom, leasingAvailableNow, leasingTradeIn, leasingEnvironmentBonus | none | Finance and leasing. |
A postcode beats a town name. AutoScout24 places a town its own way: "Munich" once came back as Münichham, a village about 85 km east. The status message and the run report name the place it used.
An unrecognised model name returns nothing and charges nothing, and the run report lists the names that site does know, so the second attempt lands.
📤 What you get back
A real row, from run alcPHnw8R8ifoArEp, its 23 photo links cut to two:
{
"listingId": "7cfbd242-0983-4193-9b0e-7199765090d5",
"title": "BMW 318 d Aut. Sport|LED|Navi|PDC|Sitzhz|Temp|Keyless",
"make": "BMW", "model": "318", "modelGroup": "3 Series",
"version": "d Aut. Sport|LED|Navi|PDC|Sitzhz|Temp|Keyless",
"price": 14790, "currency": "EUR", "priceRating": "fair",
"mileageKm": 116500, "firstRegistration": "2015-10",
"fuel": "Diesel", "transmission": "Automatic",
"powerKw": 105, "powerHp": 143,
"condition": "Used",
"countryCode": "DE", "zip": "82538", "city": "Geretsried", "distanceKm": null,
"sellerType": "dealer", "dealerName": "PZ-CARS", "dealerId": "51338238",
"url": "https://www.autoscout24.com/offers/bmw-318-d-aut-sport-led-navi-pdc-...",
"images": [
"https://prod.pictures.autoscout24.net/listing-images/7cfbd242-...-af60fb803682.jpg",
"https://prod.pictures.autoscout24.net/listing-images/7cfbd242-...-31e5566ba208.jpg"
],
"imageCount": 23,
"searchUrl": "https://www.autoscout24.com/lst/bmw/3-series?atype=C&cy=D%2CA...",
"page": 1,
"scrapedAt": "2026-09-14T02:57:48.422Z"
}
| Field | What it is |
|---|---|
listingId | The site's own id. Your dedupe key across runs. |
firstRegistration | YYYY-MM, and null on a new car. |
fuel, transmission, condition | Written out in English whichever country site the car is on. |
priceRating | The site's own price badge: top, good, fair, somewhat-expensive or expensive. null where it has not rated the car. |
distanceKm | Only on a search around a place. null otherwise. |
images | Full-size photo links, not thumbnails, and imageCount says how many. |
searchUrl, page | Which search and which page the row came from. |
No phone numbers, contact names or street addresses are read, ever. On top of that, anything a seller typed into a free-text field is scrubbed: an email becomes [email removed], a phone number becomes [phone removed]. That scrub reads patterns, so an oddly written number can slip through.
🧾 Reading the output
The dataset holds listings and nothing else. No refusal rows and no blank lines.
Everything about how the run went is in a key-value record called RUN_REPORT: the totals, why the run stopped, and an entry per search with what it resolved to, how many results the site claimed, pages loaded, repeats skipped and rows dropped for falling outside the search.
The statuses worth knowing on those entries:
| Status | What it means |
|---|---|
not-found | The make or model is not one this site knows. The entry carries the names it does know. |
filters-ignored | The site did not apply something you asked for. ignoredFilters names it, and nothing was read or charged. |
no-results | The search ran and matched nothing. Loosen a filter. |
site-ceiling | The search has more cars than AutoScout24 will page through. |
Some inputs are refused before any request, with the reason in the report: a place without exactly one country, a radius with no place, an unknown value, or a "from" above its "to".
▶️ How to run it
1. Open AutoScout24 Scraper, click Try for free. 2. Put a make in Make, and a model if you have one. 3. Set Country, then the price, year and mileage bands. 4. Or paste results pages into Search links and leave the form alone. 5. Set Maximum listings, click Start, then download the dataset as JSON, CSV or Excel.
💰 How much does it cost?
$0.43 per 1,000 listings. The same rate on every Apify plan, with no volume tiers.
One charge per listing row. A car seen twice in a run is dropped before it is billed, and so is one that falls outside your search. A search that finds nothing, names an unknown model, or is refused for an ignored filter delivers no rows and bills none.
💡 What people use it for
- Tracking asking prices for one make and model week by week, keyed on
listingId. - Pulling comparables before pricing a part-exchange or a stock car.
- Mapping which dealers hold which stock, using
dealerNameanddealerId. - Watching a niche across all eight countries at once.
- Measuring how long cars stay listed, by re-running a search and diffing.
🚧 What it does not do
- Nothing from the listing page. No seller description, no per-car equipment list, no VIN. It
all comes from the results pages.
- No contact details, by design.
- About 4,000 cars per search, because the site stops paging at 200 pages.
- A make is required, so there is no searching everything at once.
- Employee's, demonstration, pre-registered and classic cars read
Used, which is how the
results page files them. Use offerTypes to pick them out.
- **Body, colour, interior, equipment, emission class, owners, VAT, keyword, finance and leasing
have no per-car value on a results card.** They narrow the search; the row cannot confirm them.
currencycomes from the price text. Every page seen so far has been in euros.- The radius is the site's, not a straight line. A 50 km search returned a car 52 km out, so
rows are kept a little past the radius rather than dropped on a rounding difference.
- Model names must be the English ones autoscout24.com uses.
3eris not3 Series. - 10 search links per run.
🧭 Which classifieds scraper do you need?
| If you want | Use |
|---|---|
| Used cars across eight European countries | This one |
| Classified ads in Russia on Avito | Avito Listings Scraper |
| Classified ads in Spain on Milanuncios | Milanuncios Scraper |
| Cars, flats and goods in Israel on Yad2 | Yad2 Scraper |
| Classified ads on Craigslist | Craigslist Scraper |
❓ Questions people ask
Do I need an AutoScout24 account? No. Nothing to paste in, nothing to renew.
Form or pasted link? A link keeps the search you already checked on the site. The form is easier to schedule and to change from the API. Both are read the same way.
Why did my search stop at about 4,000 cars? That is where AutoScout24 stops paging. Narrow it by price band, year or country and run the pieces.
Why is a filter I set missing from the rows? Some filters have no value on a results card, so they narrow the search without becoming a column. The run report confirms the site applied them.
What if the site ignores one of my filters? The run stops that search, names it in ignoredFilters and charges nothing, rather than handing you the wrong cars.
Is this legal? These are public results pages and no contact details are collected. Rows still carry dealer names, which data-protection law covers, and AutoScout24's own terms apply to you as a user of the site. Apify's write-up on scraping and the law is a fair start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the make, model or link you used, and paste the RUN_REPORT record from the run's key-value store: it carries a status for every search.