AutoScout24 Scraper — Cars, Prices, Specs & Dealer Contacts
Pricing
from $1.50 / 1,000 results
AutoScout24 Scraper — Cars, Prices, Specs & Dealer Contacts
Scrape AutoScout24 car listings across 8 European markets (DE, AT, BE, ES, FR, IT, LU, NL) by make, model, filters or URL. Get price, mileage, power, fuel, transmission, location, dealer name & phone, photos and specs. Export to JSON/CSV/Excel for price monitoring and automotive leads.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
a day ago
Last modified
Categories
Features
Share
AutoScout24 Scraper 🚗🇪🇺 — Cars, Prices, Specs & Dealer Contacts
Extract structured car listings from AutoScout24, Europe's largest pan-European automotive marketplace, with zero login and zero coding. This AutoScout24 scraper turns search results across 8 European markets (Germany, Austria, Belgium, Spain, France, Italy, Luxembourg, and the Netherlands) into a normalized, ready-to-use dataset — price (€), price deal evaluation, mileage (km), first registration, power (kW & PS), fuel, transmission, engine displacement, fuel consumption, CO₂ emissions, full location, seller type, dealer name, dealer phone number, and photo gallery.
Export your AutoScout24 data in bulk to JSON, CSV, Excel, XML, or via the Apify API for automotive price intelligence, dealer lead generation, and cross-border car sourcing.
Built for used-car dealers and traders running daily repricing, data teams building vehicle-valuation and depreciation models, B2B lead-generation agencies harvesting dealer phone numbers and addresses, market analysts tracking EV and ICE supply across Europe, and automotive arbitrage buyers hunting under-priced vehicles.
⚡ At a glance
| Feature | Details |
|---|---|
| Covered markets | Germany (D), Austria (A), Belgium (B), Spain (E), France (F), Italy (I), Luxembourg (L), Netherlands (NL) |
| Targeting modes | Brand/model dropdowns + 12 search filters, custom brand slug (makeOther), or direct AutoScout24 search URLs (startUrls) |
| Core data extracted | Listing ID, title, make, model, variant, price (€), price rating, condition, registration date/year, mileage, kW/PS, fuel, gearbox, cc, CO₂, consumption, address, dealer name, phone, photos |
| Optional detail mode | fetchDetails: true adds full seller description, exterior bodyColor, and warranty duration |
| Pagination & 1,000+ scale | Automatic page traversal (page=1..20) + automatic price-band, year-band, sort & brand partitioning when maxItems > 400 to bypass the 20-page single-search cap |
| De-duplication | 100% unique vehicles per run — deduplicated across all pages and partitions by listingId |
| Speed & cost | ~100 listings in ~15–25 seconds; ~500 listings in ~45 seconds on low-cost default proxy with automatic residential fallback |
| Export formats | JSON, CSV, Excel (XLSX), HTML, XML, RSS, and live REST API / webhooks |
🔎 Why scrape AutoScout24?
AutoScout24 hosts over 2 million active vehicle listings from tens of thousands of commercial dealerships and private sellers across continental Europe. Every listing combines three critical datasets in one place:
- Market pricing & deal scoring — numeric asking price in euros (
price), formatted price text, and AutoScout24's proprietary deal evaluation (priceEvaluation, indicating whether a vehicle is priced as a top deal, good price, or above market). - Standardized technical specifications — odometer mileage in kilometers, engine power in both kW and PS, fuel type (Petrol, Diesel, Electric, Hybrid, LPG, CNG), transmission type, engine displacement (
engineCc), combined fuel consumption, and CO₂ emissions. - B2B dealership contact intelligence — seller type (
Dealervs.PrivateSeller), dealership company name (sellerName), sales contact (sellerContact), direct phone number (phone), street address, postal code, city, country, and dealer profile link (dealerUrl).
Collecting this data manually across 20-car search pages — or trying to normalize localized terminology across eight countries — is slow and error-prone. This AutoScout24 data extractor automates the entire workflow: it paginates automatically, partitions large searches to unlock 1,000+ results pagination, normalizes fuel and gearbox values into clean English, deduplicates by listingId, and outputs an analysis-ready table.
✨ What this AutoScout24 scraper does
- ✅ Two flexible targeting modes: Pick a Make from 31 major brands (or type any exotic brand in
makeOther), narrow by Model and filters, or paste any pre-filtered AutoScout24 search URL into Start URLs. - ✅ Automatic 1,000+ deep pagination: AutoScout24 restricts any single search query to 20 pages (400 listings). When you set
maxItems > 400(e.g.1000or0for unlimited), the scraper automatically partitions your search across price brackets, registration-year bands, sort directions, and brands so you can collect 1,000+ unique car listings in a single run. - ✅ Complete pricing & deal rating: Captures numeric euro
price, formattedpriceText, and AutoScout24's integerpriceEvaluationdeal indicator. - ✅ Full technical specs in English: Extracts numeric
mileage(km),powerKw,powerPs,engineCc,fuelConsumption,co2Emissions, and normalizesfuel(Petrol,Diesel,Electric,Hybrid (Petrol),Hybrid (Diesel),LPG,CNG) andtransmission(Automatic,Manual,Semi-automatic) to English. - ✅ Rich B2B dealer lead extraction: Separates
DealerfromPrivateSellerads and extractssellerName,sellerContact, directphonenumber,dealerUrl,street,zip,city, andcountry. - ✅ Full image gallery: Returns the primary thumbnail (
imageUrl), total photo count (imageCount), and the complete array of vehicle photo URLs (images). - ✅ Optional detail-page enrichment (
fetchDetails): Opens individual vehicle pages in parallel when you also need the full sellerdescription,bodyColor, andwarranty.
🎯 Use cases
| Persona | How they use AutoScout24 Scraper |
|---|---|
| Used-Car Dealers & Auto Traders | Monitor competitor inventory and asking prices daily across Germany, Austria, Belgium, and the Netherlands to reprice stock competitively. |
| Cross-Border Car Sourcing & Arbitrage | Spot under-priced vehicles (priceEvaluation = 1 or 2) across 8 EU countries the moment they are listed and contact the dealer immediately. |
| B2B Lead Generation Agencies | Build targeted European car-dealership lead lists with company names, street addresses, cities, and direct phone numbers segmented by brand or fleet size. |
| Vehicle Valuation & Insurance Teams | Assemble large comparable cohorts (make + model + year + mileage + powerKw) to train residual-value, leasing, and depreciation models. |
| Automotive Marketplaces & Portals | Ingest a clean, language-neutral European vehicle feed with standardized specs and photo galleries. |
| Equity & Market Researchers | Track EV vs. ICE inventory trends, average days-on-market proxies, and dealership pricing across European markets. |
📥 Input parameters
Every input field is optional. Running with default settings immediately collects 100 newest listings from Germany (D). Running with no filters at all returns a diverse multi-brand sample.
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
make | string (select) | "" (All makes) | Choose from 31 popular brands (volkswagen, bmw, mercedes-benz, audi, porsche, tesla, etc.) or leave on "All makes". |
makeOther | string | "" | Advanced: enter any brand slug not in the dropdown (e.g. aston-martin, ds-automobiles, ferrari). Overrides make. |
model | string | "" | Optional model slug (e.g. 3er, a4, golf, 911, octavia). Leave empty for all models of the brand. |
countries | array<string> | ["D"] | European country markets: D (Germany), A (Austria), B (Belgium), E (Spain), F (France), I (Italy), L (Luxembourg), NL (Netherlands). |
adType | string (select) | "both" | Vehicle condition filter: "both" (New & Used), "N" (New only), or "U" (Used only). |
fuelType | string (select) | "" (Any) | Filter by fuel: "B" (Petrol), "D" (Diesel), "E" (Electric), "2" (LPG), "3" (CNG). |
transmission | string (select) | "" (Any) | Filter by gearbox: "M" (Manual), "A" (Automatic), "S" (Semi-automatic). |
priceFrom / priceTo | integer | Empty | Minimum and maximum price in euros (€). |
yearFrom / yearTo | integer | Empty | Earliest and latest first-registration year (e.g. 2018 to 2024). |
mileageFrom / mileageTo | integer | Empty | Minimum and maximum odometer reading in kilometers (km). |
excludeDamaged | boolean | false | When true, hides accident and currently damaged vehicles. |
sortBy | string (select) | "age" | Ordering: "age" (Newest first — recommended), "price", "mileage", or "standard" (relevance). |
fetchDetails | boolean | false | Open each listing detail page to add description, bodyColor, and warranty. Leave false for fast collection. |
maxItems | integer | 100 | Maximum number of unique listings to collect (0 = unlimited, 1000+ = auto-partitioned deep scrape). |
startUrls | array<string> | [] | Advanced: paste full AutoScout24 search URLs built on the website. Overrides the filter fields above. |
proxyConfiguration | object | { "useApifyProxy": true } | Apify Proxy configuration. Uses low-cost datacenter proxy by default and automatically escalates to DE residential if needed. |
Example 1 — Deep 1,000+ brand scrape across Germany & Austria
{"make": "bmw","countries": ["D", "A"],"adType": "U","sortBy": "age","maxItems": 1200}
Example 2 — Targeted model valuation search (Audi A4, 2019+, Diesel, Automatic)
{"make": "audi","model": "a4","countries": ["D", "NL", "B"],"yearFrom": 2019,"priceTo": 35000,"fuelType": "D","transmission": "A","excludeDamaged": true,"sortBy": "price","maxItems": 400}
Example 3 — Detail enrichment mode (Porsche 911 with full description & color)
{"make": "porsche","model": "911","countries": ["D"],"fetchDetails": true,"maxItems": 100}
Example 4 — Direct AutoScout24 Search URLs (startUrls)
{"startUrls": ["https://www.autoscout24.de/lst/mercedes-benz/e-klasse?atype=C&cy=D&fregfrom=2020&priceto=45000"],"maxItems": 1000}
📤 Output & field reference
Each vehicle listing is stored as a structured JSON object. Below is a real record from a live run:
{"listingId": "1342d3b6-7a7e-476e-bba9-f12564e5dc18","title": "BMW X1 sDrive20i xLine /Navigation/Autom./Klima/LED Park-Assist./Sitzhzg.","make": "BMW","model": "X1","modelGroup": "X1","variant": "sDrive20i xLine /Navigation/Autom./Klima/LED Park-Assist.","price": 19990,"priceText": "€ 19.990","priceEvaluation": 1,"condition": "Used","firstRegistration": "11/2017","year": "2017","mileage": 47454,"powerKw": 141,"powerPs": 192,"fuel": "Petrol","transmission": "Automatic","engineCc": 1998,"fuelConsumption": "5,70 l/100 km (komb.)","co2Emissions": "130 g/km (komb.)","damaged": false,"country": "DE","city": "Ravensburg","zip": "88213","street": "Zuppingerstr. 9","sellerType": "Dealer","sellerName": "Autohaus Dreher, Wildmoser GmbH & Co. KG","sellerContact": "Verkaufsteam Autohaus Dreher","phone": "+4975118526049","dealerUrl": "https://www.autoscout24.de/haendler/autohaus-dreher-wildmoser-gmbh-und-co-kg-ravensburg?atype=C","imageUrl": "https://prod.pictures.autoscout24.net/listing-images/1342d3b6-..._fd4e2dfc-....jpg/250x188.webp","imageCount": 28,"images": ["https://prod.pictures.autoscout24.net/listing-images/1342d3b6-..._fd4e2dfc-....jpg/250x188.webp"],"url": "https://www.autoscout24.de/angebote/bmw-x1-sdrive20i-xline-...-1342d3b6-7a7e-476e-bba9-f12564e5dc18","description": null,"bodyColor": null,"warranty": null,"searchTerm": "bmw","scrapedAt": "2026-11-01T23:47:10.191Z"}
🚘 Vehicle identity & pricing fields
| Field | Type | Coverage | Description |
|---|---|---|---|
listingId | string | 🟢 High (100%) | Unique AutoScout24 listing UUID. Used as the global de-duplication key. |
title | string | 🟢 High (100%) | Full vehicle headline (make + model + variant). |
make | string | 🟢 High (100%) | Vehicle manufacturer / brand name (e.g. BMW, Volkswagen, Audi). |
model | string | 🟢 High (100%) | Vehicle model name (e.g. X1, Golf, A4). |
modelGroup | string | 🟢 High (~98%) | Model series / family group. |
variant | string | 🟢 High (~95%) | Trim line, engine badge, and headline equipment summary. |
price | integer | 🟢 High (100%) | Numeric asking price in euros (€). |
priceText | string | 🟢 High (100%) | Formatted display price (e.g. € 19.990). |
priceEvaluation | integer | 🟢 High (~96%) | AutoScout24 deal score (1 = Top price, 2 = Good price, 3 = Fair price, etc.). |
condition | string | 🟢 High (100%) | Normalized condition (Used, New, Demonstration, Annual car, Employee car, Classic). |
url | string | 🟢 High (100%) | Direct link to the vehicle listing page on AutoScout24. |
⚙️ Technical specification fields
| Field | Type | Coverage | Description |
|---|---|---|---|
firstRegistration | string | 🟢 High (~96%) | First registration month and year (MM/YYYY, or null for brand-new unregistered cars). |
year | string | 🟢 High (~96%) | 4-digit registration year extracted from firstRegistration. |
mileage | integer | 🟢 High (100%) | Odometer reading in kilometers (km, integer). |
powerKw | integer | 🟢 High (~99%) | Engine power in kilowatts (kW). |
powerPs | integer | 🟢 High (~99%) | Engine power in metric horsepower (PS / hp). |
fuel | string | 🟢 High (100%) | Normalized English fuel type (Petrol, Diesel, Electric, Hybrid (Petrol), Hybrid (Diesel), LPG, CNG, Hydrogen). |
transmission | string | 🟢 High (~99%) | Normalized English gearbox (Automatic, Manual, Semi-automatic). |
engineCc | integer | 🟡 Conditional (~90%) | Engine displacement in cm³ (present on combustion/hybrid vehicles; null on pure EVs). |
fuelConsumption | string | 🟢 High (~95%) | Combined fuel or energy consumption string. |
co2Emissions | string | 🟢 High (~95%) | Combined CO₂ emissions string (g/km). |
damaged | boolean | 🟢 High (100%) | Whether the vehicle is flagged as currently damaged. |
📍 Location, dealer lead & media fields
| Field | Type | Coverage | Description |
|---|---|---|---|
country | string | 🟢 High (100%) | ISO 2-letter country code (DE, AT, BE, ES, FR, IT, LU, NL). |
city | string | 🟢 High (100%) | City or municipality where the vehicle is located. |
zip | string | 🟢 High (100%) | Postal / ZIP code of the vehicle location. |
street | string | 🟡 Conditional (~65%) | Street address (populated on commercial dealership listings; hidden by private sellers). |
sellerType | string | 🟢 High (100%) | Seller classification: Dealer or PrivateSeller. |
sellerName | string | 🟡 Conditional (~75%) | Dealership / company name (present on all Dealer listings). |
sellerContact | string | 🟡 Conditional (~70%) | Named sales contact or team at the dealership. |
phone | string | 🟡 Conditional (~75%) | Direct seller phone number (present on ~88–91% of commercial dealer ads). |
dealerUrl | string | 🟡 Conditional (~75%) | Link to the dealership's AutoScout24 showroom page. |
imageUrl | string | 🟢 High (~98%) | Primary vehicle photo URL. |
imageCount | integer | 🟢 High (100%) | Total number of photos attached to the listing. |
images | array<string> | 🟢 High (~98%) | Array of all gallery photo URLs. |
🔎 Optional detail-mode & metadata fields
| Field | Type | Coverage | Description |
|---|---|---|---|
description | string | 🟡 Conditional (fetchDetails) | Full plain-text vehicle description from the detail page (populated when fetchDetails: true). |
bodyColor | string | 🟡 Conditional (fetchDetails) | Exterior paint color (populated when fetchDetails: true). |
warranty | string | 🟡 Conditional (fetchDetails) | Warranty duration in months (populated when fetchDetails: true). |
searchTerm | string | 🟢 High (100%) | Search label or URL that produced this record. |
scrapedAt | string | 🟢 High (100%) | ISO-8601 UTC timestamp of extraction. |
🔁 Pagination & 1,000+ scale
AutoScout24 displays 20 vehicles per search page and enforces a platform limit of 20 pages (400 listings) per single search query.
To let you extract 1,000+ car listings seamlessly in a single run without manual query splitting, this actor includes automatic search partitioning:
- Standard pagination (up to 400 items): For runs with
maxItems <= 400, the scraper walkspage=1, 2, …, 20on your exact search criteria and finishes in seconds. - Automatic multi-partition expansion (
maxItems > 400or0): Whenever your requestedmaxItemsexceeds a single search window, the scraper automatically generates complementary partitions — slicing across 7 euro price bands (€0–8k,€8k–14k,€14k–20k,€20k–28k,€28k–40k,€40k–65k,€65k+), 7 registration-year cohorts (2024+,2022–2023,2020–2021,2018–2019,2015–2017,2010–2014,≤2009), multiple sort directions (age,price,mileage), and (when no specific brand is selected) 20 top automotive brands. - Global UUID deduplication: Every vehicle across every page and partition is checked against an in-memory
SetoflistingIdUUIDs, guaranteeing 0 duplicates even when partitions overlap.
⚙️ How to use
- Open the actor in Apify Console: Select a Make (or leave on All makes), optionally type a Model, choose your target Countries, and set any price, year, mileage, fuel, or gearbox filters.
- Set
maxItems: Keep100for a fast ~20-second sample, or set1000–5000(or0for unlimited) to trigger automatic multi-partition deep scraping. - Click Start: Listings stream into the Dataset tab in real time.
- Export or integrate: Download as JSON, CSV, Excel (XLSX), HTML, or XML, or connect the dataset directly to Google Sheets, Airtable, Make, Zapier, n8n, or your database via the Apify API.
Run via API (cURL, Node.js & Python)
cURL
curl -X POST "https://api.apify.com/v2/acts/haketa~autoscout24-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"make": "bmw","countries": ["D", "A", "NL"],"sortBy": "age","maxItems": 1000}'
JavaScript (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('haketa/autoscout24-scraper').call({make: 'volkswagen',model: 'golf',countries: ['D'],yearFrom: 2019,maxItems: 1000,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Collected ${items.length} unique VW Golf listings`);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("haketa/autoscout24-scraper").call(run_input={"make": "mercedes-benz","countries": ["D", "B", "NL"],"maxItems": 1000,})for car in client.dataset(run["defaultDatasetId"]).iterate_items():print(car["title"], car["price"], car["mileage"], car["phone"])
💡 Pro tips
- Leave
fetchDetails: falsefor 10× faster runs: Search result pages already contain the price, deal evaluation, mileage, kW/PS, fuel, gearbox, CO₂, full dealer address, and dealer phone number. Only enablefetchDetails: truewhen you specifically need the free-text seller description, exterior paint color, or warranty months. - Filter for B2B dealer leads: In your exported CSV/Excel or pipeline, filter on
sellerType = "Dealer"andphone != nullto get an immediate cold-calling or CRM outreach list of active European dealerships. - Spot instant arbitrage deals: Filter on
priceEvaluation = 1(Top Price) to isolate vehicles priced significantly below AutoScout24's market valuation model. - Get high-resolution photos: Replace
/250x188.webpat the end of any URL inimageswith/1280x960.webpto load full-resolution showroom images.
⚠️ Limitations & notes
- Private seller privacy: Private sellers (
sellerType: "PrivateSeller") rarely publish a street address or public phone number on search cards;sellerName,street, andphoneare primarily populated on commercialDealerlistings. - EV engine displacement: Pure electric vehicles (
fuel: "Electric") do not have a combustion engine displacement, soengineCcis legitimatelynullon EV records.
❓ FAQ
Do I need an AutoScout24 account or API key? No. All data is extracted from publicly accessible AutoScout24 search listings with zero login required.
How does the scraper collect more than 400 cars when AutoScout24 caps searches at 20 pages?
When you set maxItems > 400 (or 0 for unlimited), the actor automatically partitions your search across price brackets, registration-year ranges, sort directions, and brands, deduplicating every listing by listingId so you can collect 1,000+ unique cars in a single run.
How fast is the scraper?
In listing mode (fetchDetails: false), 100 cars take ~15–25 seconds, 500 cars take ~45–60 seconds, and 1,000 cars take ~90–120 seconds.
Do I need residential proxies? No manual proxy setup is needed. The actor uses low-cost Apify datacenter proxies by default and automatically falls back to German residential proxies only if a request is rate-limited.
Which European countries are supported?
Germany (D), Austria (A), Belgium (B), Spain (E), France (F), Italy (I), Luxembourg (L), and the Netherlands (NL). You can select one, several, or all eight in countries.
Are fuel and transmission values translated to English?
Yes. Localized values (such as Benzin, Elektro, Schaltgetriebe, Automatik) are normalized into clean English (Petrol, Electric, Manual, Automatic) so your dataset is uniform.
🔗 Related scrapers
Building a multi-country automotive pricing or dealership lead database? Pair AutoScout24 Scraper with:
- AutoTrader UK Scraper — Cars, Prices, Specs & Dealer Contacts — UK's largest automotive marketplace.
- CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads — US car listings with Instant Market Value ratings.
- Otomoto.pl Scraper — Poland Used Cars — Poland's leading automotive portal.
- YallaMotor Scraper — GCC New & Used Cars — Automotive listings across the UAE and Gulf markets.
- KAYAK Car Rental Scraper — Prices, Agencies & Deals — Daily car-rental rates and fleet availability.
📋 Changelog
v1.2 (2026-11)
- Unlocked 1,000+ deep pagination: Added automatic multi-partition expansion across price bands, registration-year cohorts, sort directions, and popular brands whenever
maxItems > 350, seamlessly bypassing AutoScout24's 20-page (400-listing) single-query limit. - Start URL partitioning: Direct
startUrlsnow also auto-partition across price bands and sort orders whenmaxItems > 350. - Enhanced documentation: Added
⚡ At a glancesummary table, emoji-grouped field tables with coverage indicators, and multi-language API examples.
v1.1 (2026-10)
- Normalized condition & fuel mappings: Added complete mapping for all AutoScout24
offerTypecodes and hybrid fuel labels. - Smart proxy escalation: Added automatic fallback from datacenter to DE residential proxy on HTTP 403/429.
v1.0 (2026-07)
- Initial release covering 8 European markets, full technical specs, dealer contact extraction, and optional detail-page enrichment.
⭐ Ready to build your European automotive dataset? Click Start to extract clean AutoScout24 car listings to JSON, CSV, or Excel in seconds!