Autoscout24 $0.8๐ฐ Powerful Filters + Deep Search
Pricing
from $0.80 / 1,000 results
Autoscout24 $0.8๐ฐ Powerful Filters + Deep Search
From $0.8/1K. A lean, production-grade scraper for autoscout24.com. Point it at a search, get back clean JSON with 30+ fields per vehicle. Designed for dealers, market analysts, valuation pipelines, lead generation, and anyone who needs autoscout24 data on tap.
Pricing
from $0.80 / 1,000 results
Rating
5.0
(1)
Developer
Abot API
Maintained by CommunityActor stats
1
Bookmarked
34
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
AutoScout24 Scraper
A lean, production-grade scraper for Europe's largest used-car marketplace. Point it at a search, get back clean JSON with 30+ fields per vehicle. Designed for dealers, market analysts, valuation pipelines, lead generation, and anyone who needs autoscout24 data on tap.
Why this scraper
- โก Sub-second per listing. 20 listings in ~1 second; 1,000 listings in ~3 minutes.
- ๐ธ Cents per thousand. Designed to run cleanly on the free Apify plan with the default proxy configuration โ no upgrade needed for typical workloads.
- ๐ฏ 30+ structured fields per car. Make, model, year, price, mileage, transmission, fuel, body type, location, dealer name + phone, ratings, image URLs.
- ๐ Dealer contact enrichment (optional). Add email, VAT ID, registered address, homepage, and opening hours for every dealer โ pulled once per dealer and reused, so the cost doesn't scale with listing count.
- ๐ Real multi-page pagination. Walks page 2, 3, 4+ with stable de-duplication. Drop in 5 URLs, get 5 paginated runs, no duplicates.
- ๐ Pan-European coverage. Filter listings by country across 8 markets โ Germany, Austria, Belgium, Spain, France, Italy, Luxembourg, Netherlands.
- ๐ Two flexible input modes. Filter dropdowns or paste a URL straight from your browser.
- ๐ Daily/recurring change monitoring. Turn on Incremental mode to get only NEW, UPDATED, and REAPPEARED listings on every scheduled run, or resume one specific interrupted crawl with
resumeFromRunId.
What you can do with it
- Price intelligence: track asking prices for specific make/model/year/trim across countries, detect trends.
- Dealer analysis: pull every listing from a dealer (with their email + VAT) and monitor inventory turnover.
- Lead generation: extract dealer contacts (name, phone, WhatsApp, email) from fresh listings.
- Market research: compare fuel-mix, body-style share, or mileage distribution across markets.
- Valuation models: feed your pricing engine with always-fresh inventory + dealer metadata.
- Inventory mirroring: sync dealer stock into your CRM or marketplace.
Two ways to search
1. Search by filters (easiest)
Pick Make, Model, Country, Price range, Year range, Mileage range, Fuel type, Transmission, Body type. The scraper builds the URL and paginates forward for you.
Want "used Mercedes A-Class under โฌ30,000 in Germany, cheapest first"? Five inputs, done.
2. Direct URLs (power users)
Found a search on autoscout24.com that nails exactly what you want? Paste the URL directly. Each URL paginates independently, so you can drop in many at once:
https://www.autoscout24.com/lst/bmw/x5?fregfrom=2020&pricefrom=20000&priceto=80000https://www.autoscout24.com/lst/audi/a4?fuel=D&gear=Ahttps://www.autoscout24.com/lst/porsche/911
Filter coverage
| Filter | Search mode | URL mode |
|---|---|---|
| Make + Model | โ | โ via URL |
| Country (multi-select: DE / AT / BE / ES / FR / IT / LU / NL) | โ | โ via URL |
| Vehicle state (New / Used / Both) | โ | โ via URL |
| Body type | โ | โ via URL |
| Fuel type (multi-select) | โ | โ via URL |
| Transmission | โ | โ via URL |
| Price range, Year range, Mileage range, Power range | โ | โ via URL |
| Sort order | โ | โ via URL |
What you get (30+ fields per car)
Core: listingId, url, title, make, model, modelGroup, variant, modelVersion, year, firstRegistration
Specs: bodyType, transmission, fuel, engineDisplacement, powerKw, powerHp, mileageKm, mileageDisplay
Price: price, priceDisplay, currency, priceNegotiable, taxDeductible, netPrice, vatRate
Listing metadata: isOfferNew, offerType, vehicleType, isDeliverable, createdAt, leadsRange, offerReference
Location: country, city, zip, street, latitude, longitude
Seller: sellerType, sellerId, companyName, contactName, phones, whatsappNumber, dealerLogoUrl, dealerInfoPageUrl, dealerImprintUrl, dealerStockUrl, dealerSince, ratingsCount, ratingsStars
Media: images (high-res URLs), imageCount, youtubeLink, twinnerUrl, hasThreeSixtyContent
Optional vehicle enrichment โ enable Fetch full details to add: color, paintType, upholstery, upholsteryColor, seats, doors, cylinders, drivetrain, fuelConsumptionCombined, co2EmissionGramPerKm, electricRangeKm, previousOwners, hadAccident, hasFullServiceHistory, newInspection, warranty, equipment (full feature list, often 50โ100 items), description (dealer's own free-text).
Optional dealer enrichment โ enable Fetch dealer email, VAT, address to add: dealerEmail, dealerVatId, dealerAddress, dealerHomepage, dealerOpeningHours. Cached per dealer โ a 1,000-listing run from 50 dealers only adds ~50 extra requests.
Incremental mode only โ adds changeType (NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED), changedFields (which fields changed, for UPDATED rows), firstSeenAt, lastSeenAt. See "Resume & recurring updates" below.
Example output (illustrative โ values shown are placeholders, not a real listing)
{"listingId": "00000000-0000-0000-0000-000000000000","url": "https://www.autoscout24.com/offers/example-listing-00000000-0000-0000-0000-000000000000","title": "BMW X5","make": "BMW","model": "X5","modelGroup": "X5","variant": "xDrive25d","year": 2020,"firstRegistration": "03/2020","bodyType": "SUV/Off-Road/Pick-Up","transmission": "Automatic","fuel": "Diesel","powerKw": 170,"powerHp": 231,"mileageKm": 120000,"price": 35000,"priceDisplay": "โฌ 35,000","currency": "EUR","country": "DE","city": "EXAMPLE_CITY","zip": "00000","latitude": 0.0,"longitude": 0.0,"createdAt": "2026-04-01T00:00:00.000Z","sellerType": "Dealer","companyName": "EXAMPLE_DEALER_GMBH","phones": [{ "phoneType": "Office", "formattedNumber": "+00 000 - 0000000" }],"whatsappNumber": "+00 000 - 0000000","dealerEmail": "contact@example-dealer.invalid","dealerVatId": "DE000000000","dealerAddress": "Example Street 1, Example City, DE","color": "Grey","seats": 5,"doors": 5,"drivetrain": "4WD","fuelConsumptionCombined": "5.60 l/100 km (comb.)","previousOwners": 1,"hasFullServiceHistory": true,"imageCount": 15,"scrapedAt": "2026-04-25T10:00:00.000Z"}
Resume & recurring updates
There are two different things here โ pick the one that matches what you're doing:
| Need | Use |
|---|---|
| A crawl stopped and should continue | resumeFromRunId / automatic checkpoint recovery |
| Run the same search on a schedule and receive only changes | incrementalMode |
| Keep separate recurring campaigns for similar searches | distinct stateKey values |
| Run a normal full snapshot | leave both off |
Resume (resumeFromRunId) continues one specific interrupted or previous large crawl: paste a run ID or dataset ID and this run skips listings already collected there, returning only the remaining NEW listings. An automatic same-run checkpoint also protects against platform migrations/resurrects without any input needed.
Incremental mode (incrementalMode) is for a schedule (for example, daily): the actor remembers the previous run of the same search by itself, so you never paste a run ID. The first run returns everything as NEW. Later runs return only NEW, UPDATED, and REAPPEARED listings by default โ duplicates and unchanged listings are suppressed (and not charged). Turn on emitUnchanged or emitExpired only when you also want those rows returned (and billed for). State is isolated per search/filter/URL and detail-mode setup automatically; set stateKey to name or deliberately share a monitoring campaign.
Scheduled-run example โ same search, run daily:
Day 1 (first run ever for this search):
{ "mode": "search", "make": "bmw", "model": "x5", "countries": ["D"], "incrementalMode": true }
โ every listing comes back with "changeType": "NEW".
Day 2 (the schedule fires again, identical input):
{ "mode": "search", "make": "bmw", "model": "x5", "countries": ["D"], "incrementalMode": true }
โ listings that vanished or reappeared come back as "changeType": "REAPPEARED", listings whose price/mileage/etc. changed come back as "changeType": "UPDATED" with changedFields listing what changed, brand-new postings come back as "changeType": "NEW" โ and listings that are still there, unchanged, are not returned at all (suppressed, not charged) unless emitUnchanged is on.
Run limits & cost control
- Maximum Listings: hard cap across all searches (default 50)
- Maximum Pages: per-search safety bound, ~20 listings per page. Default 0 = unlimited: a search or URL entry walks every result page until it naturally runs out (an empty page, or a page that starts repeating listings already seen this walk) or until Maximum Listings is reached, whichever comes first. Set a number only for an explicit page cap below that natural stop.
- Resume from a previous run: for a very large walk-all pull, paste a previous run ID (or its dataset ID) into
resumeFromRunIdin a follow-up run instead of starting over. This run loads the listings that run already saved, skips them, and appends only new listings to a fresh dataset. For recurring monitoring of the same search, useincrementalModeinstead โ see "Resume & recurring updates" above. - Fetch full details: opt-in, adds one HTTP request per listing
- Fetch dealer email/VAT/address: opt-in, adds one HTTP request per unique dealer (not per listing) thanks to the dealer cache
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape โ the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record โ not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify โ Settings โ Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Proxy setup
The default proxy configuration works out of the box on the free Apify plan. No setup required. If you'd like to route through your own proxy pool, paste your proxy URLs in the Proxy field.
Support
Questions, feature requests, or issues? Open a ticket on the actor page.
Verification
URL mode and the make/model, price and first-registration filters re-verified against the live site on 2026-08-30.