AutoScout24 Scraper: 9 Countries, Price History & Price Alerts avatar

AutoScout24 Scraper: 9 Countries, Price History & Price Alerts

Pricing

from $0.35 / 1,000 listing saveds

Go to Apify Store
AutoScout24 Scraper: 9 Countries, Price History & Price Alerts

AutoScout24 Scraper: 9 Countries, Price History & Price Alerts

Scrape AutoScout24 in all 9 countries, Switzerland included: full price history, AutoScout24's market price, dealer stock and seller phones, with no 4,000-result limit. Alerts for new listings, price drops, sold cars and reposts. From $0.35 per 1,000 listings, platform usage included.

Pricing

from $0.35 / 1,000 listing saveds

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

AutoScout24 Scraper: car listings from 9 countries with full price history, market prices and price alerts

AutoScout24 Scraper turns any AutoScout24 search into a spreadsheet: cars, motorbikes, vans and caravans from Germany, Austria, Belgium, Spain, France, Italy, Luxembourg, the Netherlands and Switzerland. Paste a search, dealer or listing URL from any AutoScout24 site, or just pick a make, model and filters. Every listing comes with numbers AutoScout24 itself keeps: every price the seller ever asked, AutoScout24's market price for the car, its price label, and how many people saved it.

  • Full price history from the first run. Every past price with its date, straight from AutoScout24. No need to track a listing for weeks first.
  • AutoScout24's own market price. The market price for comparable cars, the Top/Good/Fair/Higher/High price label, the fair-price band, and how far each car is above or below the market (priceVsMarketPercent).
  • No 4,000-result limit. AutoScout24 shows at most 4,000 results per search, and a scraper that pages through the website gets even fewer. This actor splits big searches by price automatically, so "all Golfs in Germany" really returns all 29,000+.
  • Alerts that catch everything. Schedule it in monitoring mode and get only new listings, price drops and increases, sold (removed) cars, cars that come back, and reposts: cars deleted and listed again under a new ID to look fresh.
  • 9 countries, one dataset. All 8 EU sites plus autoscout24.ch (Switzerland), which runs on a separate platform. Dealer pages return a dealer's whole stock.
  • From $0.35 per 1,000 listings ($0.45 on the free plan), platform usage included. No subscription, no account, no API key, no proxy setup. Export to JSON, CSV, Excel or Google Sheets.

Scope: This actor covers AutoScout24 in 9 countries. For eBay Motors vehicles and parts use eBay Motors Scraper. For car ads on Subito in Italy use Subito Automotive Scraper. For German classified car ads use Kleinanzeigen Scraper.

What can you do with AutoScout24 Scraper?

GoalHow
Find underpriced cars to flipSort by priceVsMarketPercent, or filter priceRating = top_price.
Get alerts for new carsMonitoring mode + sort Newest, scheduled every 5–15 minutes, with a webhook, Slack or email integration.
Spot motivated sellerstotalPriceDrop, priceChangesCount, priceHistory and daysOnMarket. Reposts are flagged (isRepost).
Watch a competitor dealerPaste the dealer's page and schedule it daily: new stock, price changes and sold cars.
Value cars and research a marketWhole markets without the 4,000 cap, with AutoScout24's market price and fair-price band for each car.
Compare prices across bordersOne run over several countries, Switzerland included (in CHF).
Generate dealer leadsDealer names, phones, websites, ratings and addresses (sellerPhones, dealerWebsite, dealerRating).
Feed an AI assistant or a valuation modelCompact rows and a description length cap keep the data small.

How it compares

What you needAutoScout24 ScraperTypical AutoScout24 scrapers
Results per search URLEverything (automatic splitting)400 to 4,000, or split by hand
Price historyEvery past price with dates, from the first runOnly what they saw across their own runs
Market price and price labelMarket price, label, fair-price band, % above or below marketLabel at most
DemandFavourites, enquiry level, days on marketRarely
AlertsNew, price drop/increase, removed, reappeared, repostsSome have an "incremental" mode
Monitoring costOnly changes are charged; checks are freeSome charge for every listing compared
Countries8 EU sites + SwitzerlandUsually the 8 EU sites or Switzerland
InputSearch, dealer or listing URLs from any site, or filtersOften search URLs only
Speed400 listings per request: 9,000 cars in about 20 seconds20 per page
Price per 1,000 listings$0.35–$0.45, platform usage included$0.45–$4.00

Quick start

  1. Click Try for free and sign in to Apify. The free plan's monthly credit covers about 10,000 listings.
  2. Open AutoScout24 in your browser, set your filters, copy the URL and paste it into AutoScout24 URLs. Or leave URLs empty and use Make, Model and the other filters.
  3. For a first run, set Max listings per search to 50.
  4. Click Start. When the run finishes, open the Output tab and export the data.
{
"startUrls": [{ "url": "https://www.autoscout24.de/lst/bmw/3er?fregfrom=2018&priceto=30000&sort=age&desc=1" }],
"maxItems": 50
}

Which URLs work?

URLWhat you get
Search page on any EU site: autoscout24.de/lst/bmw/3er?fregfrom=2018, autoscout24.it/lst?...Every listing of the search
Dealer page: autoscout24.de/haendler/..., autoscout24.com/dealerinfo/...The dealer's whole stock
Listing page: autoscout24.de/angebote/..., autoscout24.com/offers/...That listing
Switzerland: autoscout24.ch/de/s/... (search), .../s/seller-... (dealer), .../d/... (listing)The same, from autoscout24.ch

Set any filters and sort on the website first; the actor keeps them all.

What data can you extract?

Every row is one listing:

GroupFields
Vehicletitle, make, model, modelGroup, version, vehicleType, mileageKm, firstRegistration, firstRegistrationYear, modelYear, condition, fuel, transmission, driveTrain, powerKw, powerHp, engineSizeCc, cylinders, gears, bodyType, color, doors, previousOwners, hadAccident, isDamaged, hasFullServiceHistory, isNonSmoking, hasNewInspection, hasWarranty, equipment, description
Priceprice, currency, priceNet, vatRate, isVatDeductible, isPriceNegotiable, isPriceOnRequest
MarketmarketPrice, priceRating, priceRatingCode, priceVsMarketPercent, fairPriceMin, fairPriceMax
HistorypriceHistory, originalPrice, totalPriceDrop, priceChangesCount, createdAt, updatedAt, renewedAt, isRenewed, daysOnMarket
DemandfavoritesCount, interestLevel
SellersellerType, sellerId, sellerName, sellerContactName, sellerPhones, dealerRating, dealerRatingCount, dealerRecommendPercent, dealerWebsite, dealerStockNumber
Locationcountry, postalCode, city, street, latitude, longitude
MediamainImageUrl, imageUrls, imageCount
MonitoringchangeType, previousPrice, priceChange, priceChangePercent, firstSeenAt, removedDetectedAt, isRepost, repostOfId, repostedAsId
Sourceid, url, searchUrl, searchQuery, scrapedAt

With Compact rows on, each row has about 25 core fields (title, price, price rating, mileage, registration, fuel, location, seller, link) plus the monitoring fields.

Switzerland

autoscout24.ch is a separate platform with its own data. Swiss rows have the same fields, with these differences:

  • Prices are in CHF (currency: "CHF"). The price filters use CHF for Switzerland too.
  • No price history, market price, price label, favourites or enquiry level: autoscout24.ch doesn't publish them. When the seller lowered the price, originalPrice is the price before the last change and totalPriceDrop the difference.
  • No equipment list. Description, body type, colour, engine and seller details (phones, address, website, Google rating) are included.
  • The postal code and radius filters are not available.
  • Each Swiss listing takes an extra request for its details, so Switzerland is slower: about 30 listings per second.

Monitoring: new listings, price drops, sold cars and reposts

  1. Set Sort by to Newest first and turn on Only new or changed listings. Give the monitor a name, e.g. bmw-3er-munich.
  2. Run it once. The first run saves what it finds (up to Max listings) to learn the current listings.
  3. Schedule it (see below) and add an integration (webhook, Slack, email, Make, Zapier).

Each run then reads only the newest page(s) until it reaches listings it has already seen, and re-checks earlier listings it didn't see in this run. Every saved row has a changeType:

changeTypeMeaning
newAppeared since the last run. isRepost: true when it's a car that was just deleted and listed again.
price_drop / price_increaseWith previousPrice, priceChange and priceChangePercent.
removedTaken down, usually sold, with the last known price. repostedAsId when the car was listed again.
reappearedA removed listing that is back online.

A repost is a new listing from the same seller for the same car (make, model, first registration, power and mileage within 1,000 km) as a listing that was just removed. Dealers do this to reset "days on market". Turn on Skip reposts to receive only genuinely new cars.

You pay only for these rows. Re-checks and unchanged listings are free.

{
"startUrls": [{ "url": "https://www.autoscout24.de/lst/bmw/3er?zip=80331&zipr=50" }],
"sort": "newest",
"maxItems": 200,
"onlyNewOrChanged": true,
"monitorKey": "bmw-3er-munich"
}

In monitoring, Max listings is how far back each run looks: set it above the number of new listings between two runs. All of Germany gets about 10 new cars per minute; a narrow search gets far fewer.

Track AutoScout24 over time with scheduled runs

1. Save your input as a task

Open the actor, set your URLs or filters, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run, and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
New-listing and price-drop alertsEvery 10 minutes*/10 * * * *
Competitor dealer stockDaily0 7 * * *
Market prices for a modelWeekly (Monday)0 6 * * 1

3. Send the results where you need them

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

For alerts, add a Slack, email or webhook integration that fires when a run succeeds. In monitoring mode the run's dataset holds only the changes, so every message is news.

4. Compare runs

Every row has id, sellerId and scrapedAt, so runs are easy to join:

  • Sold cars per dealer: count removed rows per sellerId.
  • Time to sell: daysOnMarket on removed rows, per make and model.
  • Price cuts: price_drop rows, or priceHistory on any row.
  • Market trend: median price and marketPrice per model, week by week.

Input reference

FieldTypeDefaultEffect
startUrlsArrayEmptySearch, dealer or listing URLs from any AutoScout24 site, including autoscout24.ch.
maxItemsInteger100Listings per search. 0 = all, with automatic splitting past 4,000.
sortStringkeepkeep (the URL's sort), standard, newest, price_asc, price_desc, mileage_asc, year_desc, power_desc.
vehicleTypeStringcarFilters only (no URLs): car, motorbike, van, caravan.
countriesArray8 EUDE, AT, BE, ES, FR, IT, LU, NL, CH. Empty = the 8 EU countries; add CH for Switzerland.
make, modelStringEmptyNames as on AutoScout24: BMW + 3 Series (all 3 Series) or 320 (one model).
priceMin/priceMaxIntegerEmptyEUR (CHF for Switzerland).
yearMin/yearMaxIntegerEmptyFirst registration year.
mileageMaxIntegerEmptykm.
fuelTypes, gearboxArrayAnye.g. ["diesel", "electric"], ["automatic"].
condition, sellerTypeStringanyused/new; dealer/private.
postalCode, radiusKmMixedEmptySearch around a postal code (EU countries only).
onlyNewOrChangedBooleanfalseMonitoring: save only new, changed, removed and reappeared listings since the last run of the same search.
monitorKeyStringEmptyName of the monitor's memory. Same name + same search = runs continue from each other.
detectRemovalsBooleantrueMonitoring: re-check listings not seen in this run; report removed, reappeared and reposted listings.
skipRepostsBooleanfalseMonitoring: don't save reposts of removed listings.
includeDescriptionBooleantrueThe seller's description as plain text.
includeEquipmentBooleantrueEquipment list (EU sites).
descriptionMaxLengthInteger0Cut descriptions to this many characters. 0 = full.
compactBooleanfalseAbout 25 core fields per row instead of 80+.

The filters are used when there are no URLs. With URLs, set the filters on AutoScout24 and copy the URL.

Ready-to-run examples

Every Volkswagen Golf in Germany (no 4,000 limit)

{ "make": "Volkswagen", "model": "Golf", "countries": ["DE"], "maxItems": 0 }

29,000+ listings in a few minutes. The run summary shows how the search was split.

Compare a model in Germany and Switzerland

{ "make": "Tesla", "model": "Model 3", "countries": ["DE", "CH"], "maxItems": 1000, "compact": true }

Group the rows by country and compare price per firstRegistrationYear (EUR for Germany, CHF for Switzerland).

A competitor dealer's stock, checked daily

{
"startUrls": [{ "url": "https://www.autoscout24.de/haendler/auto-croll-und-sondermann-gmbh-velbert" }],
"maxItems": 0,
"onlyNewOrChanged": true,
"monitorKey": "dealer-croll"
}

Schedule it daily: you get the dealer's new cars, price changes and sold cars.

Underpriced cars from private sellers

{ "countries": ["DE", "AT"], "sellerType": "private", "priceMax": 15000, "sort": "newest", "maxItems": 1000 }

Filter the results to priceRating = top_price or sort by priceVsMarketPercent.

Cheapest electric cars in France and Belgium

{ "countries": ["FR", "BE"], "fuelTypes": ["electric"], "sort": "price_asc", "maxItems": 500 }

Motorbikes in Italy

{ "vehicleType": "motorbike", "countries": ["IT"], "maxItems": 1000 }

Analyze the results with ChatGPT or Claude

Export the dataset as CSV (the Deals & price history view, or Compact rows with a Max description length of 300, keeps it small) and attach it to a chat with ChatGPT, Claude or another AI assistant. Some prompts to start with:

Find the deals. "This is AutoScout24 data for one model. List the 10 cars with the lowest priceVsMarketPercent that have under 150,000 km. For each, say whether the description mentions damage, missing service history or anything else that explains the low price."

Price my car. "Using these listings, estimate a fair asking price for a [year] [model] with [km] km and [equipment]. Use marketPrice, fairPriceMin and fairPriceMax of similar cars, and show the 5 most comparable listings."

Read a dealer's strategy. "These rows are one dealer's monitoring results for a month. How many cars did they sell (removed), how long did they take (daysOnMarket), how often did they cut prices, and which cars did they repost (isRepost)?"

The dataset is also available through the Apify API and integrations such as Make, Zapier and n8n, so you can feed it into an automated workflow.

Output

Results go to the run's default dataset. Use the views Overview, Deals & price history, Monitoring changes or Sellers & contacts, or export everything as JSON, CSV, Excel, XML or HTML.

A real row from October 2, 2026 (equipment, images and phone number shortened):

{
"id": "e8045477-b1dc-4c40-866d-235451553990",
"url": "https://www.autoscout24.com/offers/bmw-116-116-d-tuev-xenon-klimaaut-alu-8-fach-bereift-diesel-black-cat_ma13mo18480-e8045477-b1dc-4c40-866d-235451553990",
"title": "BMW 116 d TÜV/Xenon/Klimaaut/Alu/8-fach bereift",
"make": "BMW",
"model": "116",
"vehicleType": "car",
"price": 1000,
"currency": "EUR",
"priceRating": null,
"marketPrice": 2500,
"priceVsMarketPercent": -60,
"fairPriceMin": 2501,
"fairPriceMax": 2900,
"originalPrice": 1200,
"totalPriceDrop": 200,
"priceChangesCount": 3,
"priceHistory": [
{
"date": "2026-09-30T12:29:25.183Z",
"price": 1200
},
{
"date": "2026-09-30T12:32:13.474Z",
"price": 1150
},
{
"date": "2026-10-02T08:28:00.672Z",
"price": 1100
},
{
"date": "2026-10-02T11:22:45.922Z",
"price": 1000
}
],
"mileageKm": 327000,
"firstRegistration": "2011-03",
"condition": "used",
"fuel": "Diesel",
"transmission": "Manual",
"powerKw": 85,
"powerHp": 116,
"bodyType": "Compact",
"color": "Black",
"previousOwners": 3,
"equipment": ["Armrest", "Automatic climate control", "Cruise control", "Electrical side mirrors"],
"country": "DE",
"city": "Triptis",
"sellerType": "dealer",
"sellerPhones": [
{
"type": "Office",
"number": "+49 (0)364 - xxxxxx",
"callTo": "+49364xxxxxxxx"
}
],
"createdAt": "2026-09-30T09:03:21.274Z",
"daysOnMarket": 2,
"favoritesCount": 0,
"interestLevel": "none",
"imageCount": 2,
"scrapedAt": "2026-10-02T13:20:41.317Z"
}

Notes on fields

  • priceRating is AutoScout24's label: top_price, good_price, fair_price, higher_price, high_price. It is null when AutoScout24 doesn't rate the price (too far from the market, or not enough comparable cars).
  • priceVsMarketPercent is (price − marketPrice) / marketPrice. It is null for placeholder prices of 100 EUR or less (many sellers list at 1 EUR).
  • interestLevel is AutoScout24's enquiry level for the listing: none, some, many, very_many.
  • isRepost, repostOfId and changeType are only set in monitoring mode. repostedAsId is set on removed rows.
  • Missing values are null. Each listing is saved once per run, even if several searches find it.

FAQ

Which AutoScout24 sites work?

All of them. The EU sites (autoscout24.de, .at, .be, .es, .fr, .it, .lu, .nl, .com and the other language versions) share one inventory of about 2.2 million vehicles. autoscout24.ch and motoscout24.ch (Switzerland, about 160,000 cars and 27,000 motorbikes) are a separate platform with their own data and prices in CHF; the actor reads them too.

How does it get past the 4,000-result limit?

AutoScout24 never shows more than 4,000 results per search. When you ask for more, the actor counts the results of price ranges (and mileage ranges for prices with thousands of cars, like 1 EUR) and splits the search into parts of at most 4,000. The parts add up to the full total; the run summary lists them. Switzerland has no such limit.

Where does the price history come from?

From AutoScout24 itself: it keeps every price a listing has had, and the actor reads it on the first scrape. autoscout24.ch keeps only the previous price.

Can I scrape a dealer's whole stock?

Yes. Paste the dealer's page (/haendler/..., /dealerinfo/..., or /s/seller-... on autoscout24.ch). You can also search any dealer by the sellerId from your results: https://www.autoscout24.com/lst?cid=<sellerId>.

How fast is it?

On the EU sites it reads 400 listings per request: 9,000 cars with all fields took about 20 seconds in our tests. Switzerland needs one request per listing for the details, about 30 listings per second.

Why did a run stop before my limit?

AutoScout24 had fewer listings (see SUMMARY in the key-value store: totalResults and stoppedBecause), the monitor caught up with the last run (caught_up), or the run reached its maximum cost.

Do I need a proxy or an account?

No account, no API key, no cookies. Leave Proxy configuration at its default.

The actor collects listing data that AutoScout24 shows publicly. Seller names and phone numbers can be personal data; you are responsible for using them lawfully (e.g. GDPR) and for respecting AutoScout24's terms.

Cost

This actor uses pay-per-event pricing, with no subscription. Platform usage is included. You pay per listing saved; in monitoring mode, only for new, changed, removed and reappeared listings. The price per listing depends on your Apify plan:

Apify planPer listingPer 1,000 listings
Free$0.00045$0.45
Starter (Bronze)$0.0004$0.40
Scale (Silver)$0.00038$0.38
Business (Gold) and above$0.00035$0.35

Each run also has a start fee of $0.00005 per GB of memory ($0.0002 at the default 4 GB).

Example runs on the free plan (paid plans pay up to 22% less):

RunCost
50 listings$0.02
10,000 listings$4.50
Every Volkswagen Golf in Germany (~29,000)~$13
Monitor every 10 minutes, ~30 changes per run, 30 days~$58 / month
Monitor a dealer daily, ~5 changes per day, 30 days~$0.07 / month

Set a maximum cost per run; the actor stops cleanly when it's reached. The Pricing tab always shows the current prices.

Compare the same model across AutoScout24, Subito and Kleinanzeigen to see where it sells for less.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.

This actor is not affiliated with or endorsed by AutoScout24 GmbH or Auto Scout 24 Schweiz AG. "AutoScout24" is a trademark of its owner.