AutoScout24 Scraper
Pricing
from $0.10 / 1,000 results
AutoScout24 Scraper
Scrape AutoScout24 car listings across Europe: prices, specs, price ratings, dealer contacts and GPS. Fast HTTP-only scraping, no 4,000-result limit, incremental mode for cheap monitoring.
Pricing
from $0.10 / 1,000 results
Rating
0.0
(0)
Developer
Cocoa Kit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
Extract car listings from AutoScout24, Europe's largest online car market, as clean structured data: prices, AutoScout24's own price ratings, mileage, specs, photos, dealer details and GPS coordinates. Search by make, model and country, or paste any AutoScout24 search URL.
Built to be fast and cheap: it reads AutoScout24's own data feed over plain HTTP. No browser, no proxy needed, and up to 400 listings per request.
Why this scraper
- Fast. 100 listings in about 4 seconds. 30,000 listings in about 80 seconds.
- No 4,000-result ceiling. AutoScout24 never shows more than 4,000 results for one search. This Actor splits large searches automatically and returns every listing, so you can pull a whole country or a whole make.
- Pay only for what changed. Incremental mode remembers earlier runs and returns only new listings and price or mileage changes. A daily monitoring run usually costs a small fraction of a full scrape.
- Price ratings included. Every listing carries AutoScout24's deal classification (
top-price,good-price,fair-price, ...), so you can rank deals without building your own valuation model. - Full-size photos. Image URLs are returned at 1280x960, not as thumbnails.
- Two depths, your choice. Search-result data is rich enough for pricing and market analysis. Turn on full details when you need the description, equipment list, colours, emissions, owner history and coordinates.
- Any search works. Every filter on the website is supported: configure the search in your browser and paste the URL.
- Eight markets. Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands, separately or combined: more than 2 million listings.
What data do you get?
Always (search-result data):
| Group | Fields |
|---|---|
| Vehicle | make, model, model line, variant, version text, condition, first registration, mileage, fuel, transmission, power (kW and hp), engine size |
| Price | price in EUR, formatted price, AutoScout24 price rating, previous price on price drops |
| Seller | dealer or private, dealer name, contact person, phone numbers, dealer page, dealer rating and number of ratings |
| Location | country, city, postal code, street |
| Media | all photo URLs in full size, photo count |
With "Include full details":
| Group | Fields |
|---|---|
| Description | seller's description as clean text, full equipment list |
| Body | body type, colour, manufacturer colour name, paint type, upholstery, seats, doors |
| Drivetrain | gears, cylinders, drive train, weight |
| Environment | emission class, emission sticker, CO2 (g/km), combined consumption, electric range |
| History | previous owners, full service history, non-smoker, accident history, next inspection, warranty |
| Price | net price, VAT rate, VAT deductible, negotiable |
| Extras | GPS latitude and longitude, listing creation date, German HSN/TSN key, dealer stock number, country version |
How to use it
- Enter a make (for example
bmw) and pick one or more countries, or paste an AutoScout24 URL. - Set Max results. Use
0for everything. - Click Start, then download the results as JSON, CSV or Excel, or read them through the API.
That is all. Every other setting is optional.
Input examples
All BMW 3 Series in Germany and Austria, cheapest first
{"make": "bmw","model": "3-series-all","countries": ["DE", "AT"],"sort": "price-asc","maxResults": 500}
Recent low-mileage diesel estates under EUR 25,000, with full details
{"make": "audi","model": "a4","countries": ["DE"],"priceTo": 25000,"yearFrom": 2020,"mileageTo": 60000,"fuelTypes": ["diesel"],"bodyTypes": ["station-wagon"],"includeDetails": true,"maxResults": 200}
Every electric car listed in the Netherlands
{"countries": ["NL"],"fuelTypes": ["electric"],"maxResults": 0}
Paste a search or listing URL from the website
{"startUrls": [{ "url": "https://www.autoscout24.com/lst/tesla/model-3?cy=D&fregfrom=2021&kmto=80000" },{ "url": "https://www.autoscout24.de/lst/porsche/911?cy=D&sort=price" }],"maxResults": 1000}
Daily monitoring: only new listings and price changes
{"make": "volkswagen","model": "golf","countries": ["DE"],"maxResults": 0,"incrementalMode": true,"emitExpired": true}
Output example
One record per listing. This one was scraped with full details (photo and equipment lists shortened here):
{"listingId": "74bf7a1a-65ac-4841-a8c0-9456f0b93109","url": "https://www.autoscout24.com/offers/volkswagen-golf-vii-lim-comfortline-bmt-ahk-el-auskl-gasoline-silver-cat_ma74mo2084-74bf7a1a-65ac-4841-a8c0-9456f0b93109","title": "Volkswagen Golf VII Lim. Comfortline BMT, AHK el.auskl.","make": "Volkswagen","model": "Golf","modelGroup": "Golf","variant": "Standard Model","modelVersion": "VII Lim. Comfortline BMT, AHK el.auskl.","vehicleType": "Car","condition": "Used","price": 9900,"priceFormatted": "€ 9,900","currency": "EUR","priceEvaluation": "top-price","previousPriceFormatted": null,"mileageKm": 72200,"firstRegistration": "2013-01","fuelType": "Gasoline","transmission": "Manual","powerKw": 103,"powerHp": 140,"engineDisplacementCcm": 1395,"sellerType": "Dealer","sellerId": "64123646","sellerName": "Example Automobile GmbH","sellerContact": "Sales team","sellerPhone": "+49231000000","sellerPhones": ["+49231000000"],"dealerUrl": "https://www.autoscout24.com/dealerinfo/example-automobile-dortmund?atype=C","sellerRatingStars": 4.5,"sellerRatingCount": 81,"country": "DE","city": "Dortmund","zip": "44225","street": "Musterstraße 3","imageCount": 16,"images": ["https://prod.pictures.autoscout24.net/listing-images/74bf7a1a-..._ea0df614-....jpg/1280x960.webp","https://prod.pictures.autoscout24.net/listing-images/74bf7a1a-..._f593a5f1-....jpg/1280x960.webp"],"scrapedAt": "2026-10-03T18:30:14.813Z","netPrice": null,"vatRate": null,"vatDeductible": false,"priceNegotiable": false,"gears": null,"cylinders": 4,"driveTrain": "Front Wheel Drive","weightKg": 1268,"bodyType": "Sedan","bodyColor": "Silver","bodyColorOriginal": "TUNGSTEN SILVER","paintType": "Metallic","upholstery": "Cloth","upholsteryColor": "Grey","numberOfSeats": 5,"numberOfDoors": 4,"emissionClass": "Euro 6","emissionSticker": "4 (Green)","co2EmissionsGKm": 119,"fuelConsumptionCombined": 5.2,"electricRangeKm": null,"previousOwners": 2,"hasFullServiceHistory": true,"nonSmoking": true,"hadAccident": false,"nextInspection": null,"warranty": null,"originalMarket": "Germany","hsnTsn": "0603/BJG","offerReference": null,"equipment": ["Air conditioning", "Armrest", "Automatic climate control", "Hill Holder", "Leather steering wheel"],"description": "Sonderausstattung:\nKlimaanlage Climatronic 2-Zonen, Metallic-Lackierung, Scheibenwaschdüsen heizbar, Sitzheizung vorn ...","sellerRecommendPercentage": 92,"latitude": 51.47501,"longitude": 7.43732,"createdAt": "2026-09-30T11:10:15.715Z"}
Without full details you get the fields down to scrapedAt. Values AutoScout24 does not publish for a listing are null.
The dataset has two ready-made views: Overview (the car) and Sellers (dealer and contact columns for lead lists).
Monitoring with incremental mode
Turn on Incremental mode and schedule the Actor. Each run compares the search with what earlier runs delivered and saves only:
NEW: listings that were not there beforeUPDATED: listings whose price or mileage changed, withpreviousPriceEXPIRED(optional): listings that disappeared, which usually means sold. Includes the last known price andfirstSeenAt, so you can measure days on marketUNCHANGED(optional): everything else
Unchanged listings are skipped before any detail page is opened, so they cost neither time nor money. The first run delivers the whole search and builds the baseline.
Memory is kept per search. Set a State key if you want to name it yourself, for example to share one baseline between several schedules.
EXPIRED records are only produced by runs that cover the whole search (Max results 0, or higher than the number of matches), because a partial run cannot tell what is gone.
Speed and limits
| Job | Typical time |
|---|---|
| 100 listings | about 4 seconds |
| 30,000 listings | about 80 seconds |
| 1,000 listings with full details | about 4 minutes |
| 3,000 listings with full details | about 11 minutes |
Search-result data comes 400 listings at a time, so it is fast at any size. Full details need one request per listing, and AutoScout24 limits how many requests one address may send (roughly 300 per minute). The Actor paces itself just under that limit, which works out to about 16,000 detailed listings per hour. For large detail jobs, either use incremental mode so only new and changed listings are opened, or split the job into several runs.
How much does it cost?
You pay per listing saved; see the Pricing tab for the current rate. There is nothing else to budget for: the Actor needs no proxy and no browser.
Tips to keep costs low:
- Leave Include full details off unless you need description, equipment or coordinates. Search-result data already covers price, mileage, power, fuel, seller and photos.
- Use Incremental mode for anything you run on a schedule.
- Set Max results to what you need.
Use cases
- Price and market analysis: track asking prices, depreciation and supply by model, year and country.
- Deal finding: filter for
top-priceandgood-pricelistings the moment they appear. - Dealer lead generation: build dealer lists with address, phone, rating and stock.
- Inventory monitoring: watch a competitor's stock, see what sells and how fast.
- Cross-border arbitrage: compare the same model across eight countries.
- Data for apps and AI: feed valuation models, dashboards or agents with clean JSON.
Integrations and API
Run the Actor from the Apify Console, on a schedule, or from code. Results are available as JSON, CSV, Excel, XML or RSS, and connect to Make, Zapier, n8n, Google Sheets, Slack and webhooks through Apify's integrations.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("cocoa_kit/autoscout24-scraper").call(run_input={"make": "bmw", "countries": ["DE"], "maxResults": 200})for car in client.dataset(run["defaultDatasetId"]).iterate_items():print(car["title"], car["price"], car["priceEvaluation"])
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('cocoa_kit/autoscout24-scraper').call({make: 'bmw',countries: ['DE'],maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
AI agents can call the Actor through the Apify MCP server. Keep Include full details off and set Max images per listing to 0 or 1 for compact responses.
FAQ
Is there an official AutoScout24 API? Not for public listing data. This Actor is the practical alternative: the same data you see on the website, as structured records.
How do I find the right make and model names?
Use them as they appear in AutoScout24 URLs: mercedes-benz, volkswagen, golf, a4, c-200, model-3. Model lines work too, for example 3-series-all. The easiest route is to run the search on the website and paste the URL. If a name is not recognised, the run stops with a clear message instead of scraping the wrong cars.
Can I use filters that are not in the input form? Yes. Set them on autoscout24.com and paste the resulting URL into AutoScout24 URLs. Equipment, colour, seats, emission class and every other filter work this way.
Can I scrape single listings? Yes. Paste listing URLs into AutoScout24 URLs. They are always returned with full details.
Do national sites work? Yes. URLs from autoscout24.de, .at, .it, .fr, .es, .be, .nl and .lu are accepted, and text values come back in that site's language. Searches built from the filter fields use autoscout24.com and return English values.
Is Switzerland covered? No. autoscout24.ch is a separate marketplace with different technology.
Why do I get slightly fewer results than the website's count?
The website's count is live and changes while a run is in progress, and promoted duplicates are removed. Every result is unique by listingId.
Do I need a proxy? No. The Actor works without one, and in our tests a direct connection was faster than datacenter proxies. The proxy option exists for the rare case that requests start failing.
Does the output contain personal data? Listings show the seller's business contact, and private sellers may show a name and phone number. Turn off Include seller contact if you do not need them. If you do use them, you are responsible for complying with GDPR and local marketing rules.
Is scraping AutoScout24 legal? The Actor reads only publicly visible listing data. Scraping public data is generally lawful, but how you use it matters: review AutoScout24's terms and the laws that apply to you, especially for personal data.
Support
Found a bug or missing a field? Open an issue on the Issues tab.
This Actor is not affiliated with or endorsed by AutoScout24. All trademarks belong to their owners.