AutoScout24 Scraper
Pricing
from $1.00 / 1,000 cars
AutoScout24 Scraper
Scrape car listings from AutoScout24 with full filter support. Extract makes, models, prices, mileage, seller info, and more.
Pricing
from $1.00 / 1,000 cars
Rating
0.0
(0)
Developer
Farhan Ali
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
AutoScout24 Scraper creates a structured dataset of vehicle listings collected from AutoScout24, Europe's largest automotive marketplace. Each dataset item represents one vehicle listing and can include make, model, price, mileage, first registration, fuel, transmission, engine specs, location, seller details, and media. Query the source using full search URLs or make/model search queries, narrow results with 40+ filter parameters, control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or XML.
Dataset at a glance
| Property | Value |
|---|---|
| Source | autoscout24.de (and other EU country portals) |
| Record unit | One vehicle listing |
| Input methods | Search URLs (searchUrls) or make/model queries (searchQueries) |
| Main identifiers | listingId, url |
| Delivery | Apify Dataset and API |
| Export formats | JSON, CSV, Excel, XML |
| Update model | Fresh records per Actor run |
| Pricing | $1 per 1,000 listings |
Coverage and available records
The Actor collects vehicle listings from AutoScout24 across 19 supported European countries.
- URL-based entry: Pass full AutoScout24 search URLs in
searchUrls. These take priority oversearchQueries. - Query-based entry: Pass make or model path segments in
searchQueries(for exampleaudi,bmw 3er,mercedes-benz). The Actor builds the search URL automatically. - Filtering: 40+ filters are applied during pagination, including price, mileage, year, fuel, transmission, body type, color, location, seller type, emission class, engine displacement, seats, doors, and CO2.
- Vehicle categories:
atypeselects cars, motorcycles, or trucks;ustateselects new, used, or both. - Result limits:
maxItemscaps total listings (0= unlimited);maxPagescaps result pages per search (0= unlimited).
Known exclusions: seller contact details are returned only when the seller publishes them; each run captures page state at run time (no historical snapshots); the Actor does not follow outbound links to a dealer's own website.
Data dictionary
Field names below match dataset record JSON properties exactly.
| Field | Type | Nullable | Description | Example |
|---|---|---|---|---|
listingId | string | No | AutoScout24 listing identifier; best stable deduplication key | d92fb2a9-72a8-4b4a-a647-fdba919e9804 |
url | string | No | Canonical listing URL | https://www.autoscout24.de/angebote/... |
make | string | No | Vehicle make | Audi |
model | string | No | Vehicle model | A3 |
modelId | number | Yes | AutoScout24 model identifier | 1624 |
offerType | string | Yes | Offer type code (U = used, N = new) | U |
priceFormatted | string | Yes | Price as displayed (locale-formatted) | € 18.480 |
priceRaw | number | Yes | Numeric price | 18480 |
priceCurrency | string | Yes | ISO currency code | EUR |
vatLabel | string | Yes | VAT label (e.g. inkl. MwSt.) | inkl. MwSt. |
isConditionalPrice | boolean | Yes | Whether the price is conditional | false |
mileageInKm | string | Yes | Mileage as displayed | 72.288 km |
firstRegistration | string | Yes | First registration date | 05/2019 |
fuel | string | Yes | Fuel type (locale text) | Benzin |
transmission | string | Yes | Transmission type (locale text) | Automatik |
engineDisplacementInCCM | string | Yes | Engine displacement as displayed | 1.498 cm³ |
powerKw | number | Yes | Engine power in kW | 0 |
powerHp | number | Yes | Engine power in HP | 0 |
isCurrentlyDamaged | boolean | Yes | Whether the vehicle is marked damaged | false |
locationCity | string | Yes | Listing city | Ursensollen |
locationZip | string | Yes | Listing ZIP code | 92289 |
locationCountryCode | string | Yes | ISO country code | DE |
distanceToSearchLocationInKm | number | Yes | Distance from the search location | 0 |
sellerId | string | Yes | Seller identifier | 8748486 |
sellerType | string | Yes | Seller type (Dealer / Private) | Dealer |
sellerCompanyName | string | Yes | Seller company name | Fischer Automobile GmbH & Co. KG |
sellerContactName | string | Yes | Seller contact person | Sales Team |
sellerRating | string | Yes | Seller rating as displayed | 4.5 |
imageUrl | string | Yes | Primary listing image URL | https://prod.pictures.autoscout24.net/... |
images | array | Yes | Gallery image URLs | ["..."] |
hasVideo | boolean | Yes | Whether the listing has a video | false |
appliedAdTier | string | Yes | Listing ad tier (e.g. T50) | T50 |
isOcs | boolean | Yes | Whether the listing is an online car sale listing | false |
availableNow | boolean | Yes | Whether the vehicle is immediately available | true |
searchResultType | string | Yes | Result placement type (Organic, Nfm, ...) | Organic |
Example dataset record
A representative record produced with the input below (searchQueries: ["audi"], maxItems: 3, country D):
{"listingId": "d92fb2a9-72a8-4b4a-a647-fdba919e9804","url": "https://www.autoscout24.de/angebote/audi-a3-sportback-35-tfsi-benzin-schwarz-cat_ma9mo1624-d92fb2a9-72a8-4b4a-a647-fdba919e9804","make": "Audi","model": "A3","modelId": 1624,"offerType": "U","priceFormatted": "€ 18.480","priceRaw": 18480,"priceCurrency": "EUR","vatLabel": "inkl. MwSt.","isConditionalPrice": false,"mileageInKm": "72.288 km","firstRegistration": "","fuel": "Benzin","transmission": "Automatik","engineDisplacementInCCM": "1.498 cm³","powerKw": 0,"powerHp": 0,"isCurrentlyDamaged": false,"locationCity": "Ursensollen","locationZip": "92289","locationCountryCode": "DE","distanceToSearchLocationInKm": 0,"sellerId": "8748486","sellerType": "Dealer","sellerCompanyName": "Fischer Automobile GmbH & Co. KG","sellerContactName": "","sellerRating": "4.5","imageUrl": "https://prod.pictures.autoscout24.net/listing-images/...","images": ["..."],"hasVideo": false,"appliedAdTier": "T50","isOcs": false,"availableNow": true,"searchResultType": "Nfm"}
Query and input reference
The Actor accepts a rich set of optional filter parameters. All fields except the entry point are optional and use sensible defaults.
| Input | Type | Required | Default | Accepted values | Description |
|---|---|---|---|---|---|
searchUrls | array | No | — | Full AutoScout24 search URLs | URL-based entry point; takes priority over searchQueries |
searchQueries | array | No | [] | Make/model path segments (audi, bmw 3er) | Query-based entry point |
maxItems | integer | No | 0 | 0 or a positive integer | Maximum listings to collect; 0 = unlimited |
maxPages | integer | No | 0 | 0 or a positive integer | Maximum result pages per search; 0 = unlimited |
sort | string | No | standard | standard, price, mileage, age, power, first_registration | Result sort order |
desc | boolean | No | false | true / false | Sort in descending order |
ustate | string | No | N,U | N,U, N, U | New, used, or both |
atype | string | No | C | C, B, T | Cars, motorcycles, or trucks |
pricefrom / priceto | integer | No | — | Any integer | Minimum / maximum price in EUR |
kmfrom / kmto | integer | No | — | Any integer | Minimum / maximum mileage in km |
yearfrom / yearto | integer | No | — | 1900+ | Minimum / maximum first registration year |
powerfrom / powerto | integer | No | — | Any integer | Minimum / maximum engine power |
powertype | string | No | kw | kw, hp | Unit for power filters |
gear | string | No | "" | A, M, S, or comma combos | Transmission type |
fuel | string | No | "" | B, D, E, L, C, 2, 3, O | Fuel type |
body | string | No | "" | L, K, U, M, C, G, V, R, O | Body type |
color | string | No | "" | B, G, R, W, S, Y, O, V, N, M | Exterior color |
zip | string | No | — | ZIP code or city name | Location filter |
zipr | integer | No | 0 | Any integer | Search radius around ZIP/city in km |
city | string | No | — | City name | Location-based search |
cy | string | No | D | 19 country codes (D, A, B, F, ...) | Country filter |
custtype | string | No | "" | D, H, D,H | Seller type (private / dealer) |
ocs_listing | string | No | include | include, exclude | Online car sale listings |
damaged_listing | string | No | exclude | exclude, include, only | Damaged/repaired vehicles |
pricetype | string | No | public | public, private | Price visibility type |
emissionclass | string | No | "" | E1 … E6D | Emission class |
emissionsticker | string | No | "" | 1, 2, 3, 4 | German emission sticker |
climatisation | string | No | "" | A, B, C | Air conditioning type |
interior | string | No | "" | C, F, V, S, O | Interior material |
consumptionfrom / consumptionto | number | No | — | Any number | Fuel consumption range (l/100km) |
co2from / co2to | integer | No | — | Any integer | CO2 emission range (g/km) |
weightfrom / weightto | integer | No | — | Any integer | Weight range (kg) |
cylindersfrom / cylindersto | integer | No | — | Any integer | Cylinder count range |
cubiccapacityfrom / cubiccapacityto | integer | No | — | Any integer | Engine displacement range (ccm) |
seatsfrom / seatsto | integer | No | — | Any integer | Seat count range |
doorsfrom / doorsto | integer | No | — | Any integer | Door count range |
proxyConfiguration | object | No | Apify residential proxy | Apify proxy groups or custom proxies | Residential proxies are recommended |
Minimal request:
{ "searchQueries": ["audi"], "cy": "D" }
Advanced request:
{"searchQueries": ["audi", "bmw 3er"],"maxItems": 500,"ustate": "U","atype": "C","pricefrom": 5000,"priceto": 40000,"cy": "D","custtype": "D","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Retrieve the data through the API
- Start the Actor with a JSON input (console or API).
- Wait for the run to finish, or use a synchronous endpoint for an inline response.
- Retrieve items from the run's default dataset.
- Paginate or export the dataset.
Python example:
from apify_client import ApifyClientclient = ApifyClient("YOUR-APIFY-TOKEN")run = client.actor("datascrapers/autoscout24-scraper").call(run_input={"searchQueries": ["audi"],"maxItems": 100,"cy": "D",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["listingId"], item["make"], item["model"], item["priceRaw"])
Apify generates ready-to-run Python, JavaScript, and cURL examples on the Actor's API tab. Do not put a real API token in shared code or URLs.
Data quality and record handling
- Conditional fields: Seller contact details and several spec fields appear only when the seller publishes them; missing values are returned as null or empty strings.
- Source changes: AutoScout24 page structure and values can change; unreadable fields are returned as null rather than fabricated.
- Deduplication: Each run appends fresh records; the Actor does not deduplicate across runs. Use
listingIdas the stable key and filter repeated runs against previously stored IDs. - Rate limits: AutoScout24 rate-limits automated traffic. Residential proxies (enabled by default) and retry logic are used to maintain coverage.
- Normalization: Values are read from the listing and normalized to the field types in the data dictionary; locale-formatted values such as mileage and displacement are returned as displayed.
Export and pipeline examples
| Destination | Recommended method | Typical use |
|---|---|---|
| PostgreSQL / Supabase | Dataset API poll or webhook consumer | Store vehicle inventory alongside pricing history |
| Google Sheets | Apify Google Sheets integration | Share market snapshots with sales teams |
| CRM (HubSpot, Salesforce) | Webhook on run completion | Push new dealer leads into outreach pipelines |
| S3 / cloud storage | Scheduled export via Apify scheduler | Archival of market snapshots |
Pricing and cost examples
The Actor uses pay-per-event pricing, billed per vehicle listing:
| Event | Trigger | Rate |
|---|---|---|
| Cars | Every listing pushed to the dataset | $1 per 1,000 listings |
A one-time Actor start event of $0.00005 applies to each run (effectively $0).
| Listings | Estimated base cost |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
Compute units consumed by the run are billed by your Apify plan. Estimates depend on the verified pricing model and the options selected for the run.
Limitations and responsible data use
- The Actor collects publicly accessible vehicle listings from AutoScout24 only.
- Field availability depends on what AutoScout24 renders at run time; some values can be null or missing, and site changes can alter fields.
- The Actor does not provide historical snapshots unless you store them yourself.
- Large runs require residential proxies; without them, coverage may degrade due to rate limiting.
- You are responsible for compliance with AutoScout24's terms of service, applicable privacy law, and any contractual obligations before using the data.
Dataset questions
What does one dataset item represent?
One vehicle listing from AutoScout24. All spec, pricing, seller, and media fields are nested inside that single listing record.
Which field should I use as a unique identifier?
listingId is the stable AutoScout24 listing identifier and the recommended deduplication key. url is a reasonable secondary key.
Are fields nullable or conditional?
Yes. Seller contact details and several spec fields appear only when the seller publishes them; missing values are returned as null or empty strings.
Can I retrieve the records as CSV or JSON?
Yes. The dataset can be exported as JSON, CSV, Excel, or XML from the Apify Console, and queried through the Dataset API.
Does the Actor return historical data?
No. Each run captures the state of the pages at run time. To track changes, schedule repeated runs and store the outputs yourself.
What counts as a billable result?
Each vehicle listing pushed to the dataset is one billable result, charged at $1 per 1,000 listings. Use maxItems or maxPages to control cost per run.
Related datasets from Data Scrapers
- Cars.com Scraper — US-market vehicle listings that complement AutoScout24's European data for cross-market price comparison.
- RVShare Scraper — RV and vehicle rental listings for adjacent vehicle-market analysis.
- LinkedIn Company Scraper — Dealer company profiles that can be joined to
sellerCompanyNamefor B2B lead enrichment.
Data Scrapers support
Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.