AutoScout24 Listings Scraper - Used Cars, Prices & Sellers avatar

AutoScout24 Listings Scraper - Used Cars, Prices & Sellers

Pricing

from $1.00 / 1,000 results

Go to Apify Store
AutoScout24 Listings Scraper - Used Cars, Prices & Sellers

AutoScout24 Listings Scraper - Used Cars, Prices & Sellers

Scrape AutoScout24 used-car listings from any search URL: make, model, version, price, mileage and specs, location, seller and images. Reads the page's embedded data island and paginates automatically. HTTP-only, no account, no browser.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Categories

Share

AutoScout24 Listings Scraper — Used Cars, Prices & Sellers

Scrape AutoScout24 used-car listings from any search URL: make, model, trim, price, mileage, fuel, gearbox, location, seller and images. HTTP-only, no account, no browser.

Input

FieldTypeDefaultDescription
searchUrlsarrayrequiredResult-page URLs with your filters already applied
maxItemsPerUrlinteger200Stop a search after this many unique listings
maxPagesinteger20Pages per search (site ceiling is 200 — see below)
maxConcurrencyinteger2Searches in parallel; pages within a search stay sequential
proxyConfigurationobjectRESIDENTIALRecommended for sustained volume

Build the search in the browser with the filters you want, then paste the URL. Any AutoScout24 domain works. page is managed by the actor — it is rewritten rather than appended, so a URL that already carries one is handled correctly.

Output

{
"_input": "https://www.autoscout24.com/lst/bmw/118?atype=C",
"_source": "S1-next-data",
"_scrapedAt": "2026-09-07T03:12:42Z",
"_page": 1,
"_tlsProfile": "chrome110",
"listingId": "9b0a3d2a-…",
"listingUrl": "https://www.autoscout24.com/offers/…",
"make": "BMW",
"model": "118",
"modelVersion": "Navi WLAN PDC Lordos LED",
"priceRaw": 11999, // numeric, straight from upstream
"priceFormatted": "€ 11,999",
"mileageInKm": "98,904 km", // as rendered
"mileageKm": 98904, // parsed
"fuel": "Gasoline",
"transmission": "Manual",
"offerType": "Used",
"city": "Celle", "zip": "29223", "countryCode": "D",
"sellerType": "Dealer", "sellerName": "…",
// raw sub-objects, upstream field names verbatim
"vehicle": {…}, "price": {…}, "location": {…}, "seller": {…},
"images": […], "ratings": {…}, "statistics": {…}, "wltpValues": {…}
}

All twelve convenience fields were filled on 120 of 120 listings in testing.

How it works

Data comes from the page's __NEXT_DATA__ island (props.pageProps.listings), which carries far more than the cards show — including the seller's phone links and WLTP emission values.

The 200-page ceiling is real, and the actor says so

numberOfPages comes back as 200 whatever the search is: 200 for a query reporting 8,849 results, and 200 again for one reporting 827,638. At ~19 rows per page that is roughly 4,000 listings per search URL, full stop.

Silently returning 4,000 of 827,638 rows would look like a bug in the actor, so it warns once per URL when it detects the cap and tells you what to do instead — split the search into narrower filters (price band, registration year, region) and pass several URLs.

Two field names that lie

Worth knowing if you extend this actor, because both produce a wrong answer rather than an error:

  • modelVersion does not exist. The trim level is modelVersionCustom (or modelVersionInput, or only subtitle). Reading the obvious name gave a column that was empty on all 120 test rows — which reads as "this site has no trim data" rather than "wrong key".
  • mileageInKm is a string, e.g. "98,904 km". The raw value is passed through and a parsed mileageKm integer is offered beside it.

Duplicate rows across pages

Consecutive pages overlap — sponsored and rotated slots reappear. Listings are deduplicated by id, and a page that contributes nothing new ends the crawl for that URL.

Known limits

LimitDetail
~4,000 rows per search URLThe site's own paging ceiling; narrow the filters to go deeper
List pages onlyFull spec sheets and descriptions live on the detail page, not fetched here
Seller phonePresent in the raw seller object as links, not resolved to a number