AutoScout24 Germany Car Scraper
Pricing
Pay per event
AutoScout24 Germany Car Scraper
Scrape used-car listings from AutoScout24.de (Germany's largest car marketplace) — make, model, price, mileage, first registration, fuel, transmission, power, body type, colour, dealer details, and photos. Paste any AutoScout24 search URL or filter by make/model; export to JSON or CSV.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
🎯 What this scrapes
AutoScout24.de is Germany's largest used-car marketplace and ships no public API. This Actor wraps a polite scrape of its __NEXT_DATA__ payload — paste any search URL (filters already applied) or filter by make and model, then optionally enrich each listing from its detail page for the full German description, body type, colour, exact power, and full-resolution photos. Prices are in EUR, mileage in km.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Used-car price analytics — track asking prices by make/model/year across the German market.
- Dealer-inventory monitoring — diff a dealer's stock day over day from
seller_name+ listing IDs. - Lead generation — build a directory of German car dealers from
seller_name+seller_phone. - Cross-border arbitrage — compare AutoScout24.de prices against other EU marketplaces (Poland, Austria) using the shared schema.
- Depreciation modelling — pair
price,mileage_km, andfirst_registrationto fit value curves.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
searchUrl | string | no | '' | Full AutoScout24.de search/results URL with your filters already applied (e.g. https://www.autoscout24.de/lst/bmw/ |
make | string | no | '' | Convenience filter — car make slug (e.g. bmw, volkswagen, audi). Used to build th |
model | string | no | '' | Convenience filter — model slug (e.g. 3er, golf). Requires a make. Ignored if a Search URL is |
maxResults | integer | no | 50 | Hard cap on dataset rows. AutoScout24 paginates 20 listings per page and caps any query at ~400 pages. |
enrichDetails | boolean | no | True | Fetch each listing's detail page for the full German description, body type, colour, exact power, lat/long, and full-res |
proxyConfiguration | object | no | {'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL']} | Apify Proxy spec. German residential exits are safest for AutoScout24. |
Example input
{"searchUrl": "","make": "","model": "","maxResults": 5,"enrichDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
listing_id | string | AutoScout24 listing GUID. |
listing_url | string | Absolute URL to the listing detail page. |
title | string | Listing headline (make + model + version). |
make | ['string', 'null'] | Car manufacturer (e.g. BMW, Volkswagen, Audi). |
model | ['string', 'null'] | Model name (e.g. Corsa, Golf, 3er). |
version | ['string', 'null'] | Model version / trim line as listed. |
year | ['integer', 'null'] | Year of first registration (Erstzulassung). |
price | ['integer', 'null'] | Asking price as an integer in the listing currency. |
currency | ['string', 'null'] | ISO-4217 currency code — always EUR for autoscout24.de. |
mileage_km | ['integer', 'null'] | Odometer reading in kilometres. |
fuel_type | ['string', 'null'] | Fuel type (Benzin, Diesel, Elektro, Hybrid). |
transmission | ['string', 'null'] | Transmission (Schaltgetriebe / Automatik / Halbautomatik). |
engine_power_hp | ['integer', 'null'] | Engine power in metric horsepower (PS). |
engine_power_kw | ['integer', 'null'] | Engine power in kilowatts. |
engine_size_cc | ['integer', 'null'] | Engine displacement in cubic centimetres. Enrichment-only. |
body_type | ['string', 'null'] | Body / car type (e.g. Limousine, Kombi, SUV/Geländewagen). Enrichment-only. |
color | ['string', 'null'] | Exterior colour (German label, e.g. Weiß, Schwarz). Enrichment-only. |
first_registration | ['string', 'null'] | First-registration date as shown (MM/YYYY). |
location | ['string', 'null'] | Town / city of the listing. |
postcode | ['string', 'null'] | German postal code (PLZ). |
latitude | ['number', 'null'] | Latitude (WGS-84). Enrichment-only. |
longitude | ['number', 'null'] | Longitude (WGS-84). Enrichment-only. |
seller_type | ['string', 'null'] | private or dealer. |
seller_name | ['string', 'null'] | Dealer / company name when present. |
seller_phone | ['string', 'null'] | Dealer contact phone number when published. |
photo_urls | array | List of listing photo URLs (full resolution after enrichment). |
description | ['string', 'null'] | Full German listing description (HTML stripped to plain text). Enrichment-only. |
posted_date | ['string', 'null'] | ISO timestamp when the listing was created. Enrichment-only. |
scraped_at | string | ISO timestamp when this row was recorded. |
Example output
{"listing_id": "a15406b4-db66-4cb0-8e5d-1b74d162144a","listing_url": "https://www.autoscout24.de/angebote/opel-corsa-d-1-4-color-edition-einparkhilfe-export-benzin-weiss-cat_ma54mo1918-a15406b4-db66-4cb0-8e5d-1b74d162144a","title": "Opel Corsa D 1.4 Color Edition Einparkhilfe EXPORT","make": "Opel","model": "Corsa","version": "D 1.4 Color Edition Einparkhilfe EXPORT","year": 2013,"price": 3490,"currency": "EUR","mileage_km": 101125,"fuel_type": "Benzin","transmission": "Schaltgetriebe","engine_power_hp": 101,"engine_power_kw": 74,"engine_size_cc": 1398,"body_type": "Limousine","color": "Wei\u00df","first_registration": "07/2013","location": "Bad D\u00fcrkheim","postcode": "67098","latitude": 49.46323,"longitude": 8.18632,"seller_type": "dealer","seller_name": "Autohaus Schl\u00e4fer GmbH","seller_phone": "+49 (0)6322 - 943344","photo_urls": ["https://prod.pictures.autoscout24.net/listing-images/a15406b4-..._...jpg/1280x960.webp"],"posted_date": "2026-06-01T12:21:47.636Z","scraped_at": "2026-06-02T10:00:00+00:00"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.05 | One-off warm-up charge per run |
result-row | $0.002 | PPE event |
Example: 1 000 results at the rates above ≈ $2.05. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
AutoScout24's own search caps any query at ~400 pages (~8 000 results); narrow your filters for deeper coverage. Detail enrichment doubles the request count and roughly doubles run time. Some private listings hide the phone number behind a click-to-reveal widget; in those cases seller_phone may be null. Prices reflect the dealer/public asking price, not negotiated or net (VAT) figures.
❓ FAQ
Do I need a Search URL?
No. Leave it empty to scrape the default used-car listing page, or set make (and optionally model) for a quick filter. For complex filters (price range, year, body type), build the search on autoscout24.de and paste the resulting URL.
Is detail enrichment optional?
Yes — set enrichDetails to false to halve the request count. You'll still get make, model, price, mileage, fuel, transmission, power, location, and a photo from the search payload — just no full description, body type, colour, lat/long, or full-resolution gallery.
What currency are prices in?
Always EUR. price is an integer; mileage_km is always in kilometres.
Is this an AutoScout24-sanctioned API?
No. AutoScout24 offers no public API. This Actor scrapes the public website politely — see the ToS Notice in the README.
What if AutoScout24 blocks the request?
We rotate browser TLS fingerprints and residential proxy exits, retry with exponential backoff, and surface a clear status message. If a query yields nothing, we fail loud rather than return an empty dataset.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.