AutoScout24 Listings — One Row per Car, $0.0006 Each avatar

AutoScout24 Listings — One Row per Car, $0.0006 Each

Pricing

$0.60 / 1,000 listing returneds

Go to Apify Store
AutoScout24 Listings — One Row per Car, $0.0006 Each

AutoScout24 Listings — One Row per Car, $0.0006 Each

Give one make (and model) or a whole list and get matching AutoScout24 car listings on one country site, one row each — up to 4,000 per search. Returns price, registration year, mileage, fuel, transmission, seller type and URL. $0.0006 per car and nothing else; no results = no charge. Unofficial.

Pricing

$0.60 / 1,000 listing returneds

Rating

0.0

(0)

Developer

h ichi

h ichi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

What it does: Returns the AutoScout24 car listings that match your searches — one or a whole list — on one country site, one row per car, at a flat rate per row.

You enter: Searches, one or many — a make each, e.g. {"make":"bmw","model":"3-series"}; country default de.

You get: One row per car: price, make, model, variant, registration year, mileage, fuel, transmission, power (kW), dealer or private, seller country, URL; plus the site's total match count and whether its 200-page ceiling (~4,000 cars) was hit.

Price: $0.0006 per car delivered, and the count is per search — two searches at 100 cars bill 200. Nothing else is charged. No results = no charge.

Example: enter make bmw, model 3-series (Germany) → 11,004 cars found, of which you get up to 4,000 (100 by default) · one row: BMW 318 Touring · 2011 · 118,300 km · Benzin · Automatik · €11,900 · private seller (real run, 2026-08-10)

Unofficial — not affiliated with AutoScout24. Reads public pages only.

Pricing — one flat rate per car

$0.0006 per car returned. Nothing else is charged. You pay per car, not per run and not per month.

You are charged for cars that are actually in your results — the charge is raised with the number of records written, never with the number you asked for and never with the site's own hit count. A search that matches nothing costs nothing.

A search that matches nothing gets a free row, not a failed run. It is a type: "search_summary" row carrying search, domain, filtersApplied, totalFound: 0, pushed: 0, a keywordStatus (not_found — nothing on that country site matches; unknown — the site reports cars and returned none of them) and a one-line hint. The run finishes green and the row is never charged. The run fails only when no search could be read at all.

cars returnedyou pay
100$0.06
1,000$0.60
10,000$6.00

The count is per search, not per run: two searches of 100 cars each bill 200 cars.

Input

{
"searches": [
{ "make": "bmw", "model": "3-series", "priceTo": 20000, "yearFrom": 2018 },
{ "make": "audi", "model": "a4", "mileageTo": 100000 }
],
"maxListings": 200,
"country": "de"
}
fieldmeaning
searchesone object per search. make is required (AutoScout24's robots.txt disallows the make-less search).
maxListingscars per search, 10-4000. Default 100.
countryde, at, be, es, fr, it, lu, nl. Default de.

Search keys applied: make, model, priceFrom, priceTo, yearFrom, yearTo, mileageTo (prices in EUR, years are registration years, mileage in km). Every one of them is checked against the server's own echo of the query before a single record is emitted — see below. Any other key is ignored, and the run log says which ones and that the results are not filtered by them.

Model slugs differ per country front-end (3er on .de, serie-3 on .fr). You do not have to know them: a wrong-but-recognisable slug such as 3-series is followed to the canonical one and the search runs normally.

The 200-page ceiling — why nobody can hand you more than ~4,000 cars

AutoScout24 never lets you page past page 200, however many cars match. Measured: 200 pages for a 4,981-car search, 200 for an 11,008-car search, and 200 for the 62,000-car BMW search. At ~20 listings a page that is a hard wall at roughly 4,000 cars, and it applies to every tool that reads the site, including this one. No amount of runtime gets past it.

So a "10,000 BMWs" claim is not a thing anyone can deliver, and a 4,000-row dump of an 11,000-car market is 36% of that market, not the market.

Every record therefore carries:

  • totalFound — the site's own exact hit count for your search;
  • pagesReported — how many pages the site says your search has;
  • pagesCeilingHittrue when that number is 200, i.e. the site stopped enumerating and there are cars you cannot reach.

When the ceiling is hit the run log says so explicitly. To reach the rest of the market, split the search with priceFrom/priceTo, yearFrom/yearTo or mileageTo into slices that each stay under ~4,000 cars.

Placeholder prices (priceIsPlaceholder)

Dealers use the price field for things that are not prices: price-on-request, a deposit, a parts-only car. On the cheapest page of bmw/3er the first two listings are €1, and the third is €400.

These are not filtered out — you paid for the rows and you get them — but each one is flagged priceIsPlaceholder: true and counted in the run log, so "cheapest car" never means "€1 non-price". The cut is on price alone (≤ €100). The site's own priceLabel (top-price, toolow-price, unknown) is passed through untouched but is not used for the flag: it is a price evaluation and appears on perfectly real cars at €10,900.

Seller details stop at the business

You get what a visitor sees on the listing header: sellerType (Dealer / PrivateSeller), sellerId, sellerCompanyName, sellerPage (the dealer page), sellerCity and sellerCountry. A named contact person, phone numbers, street and postcode are published by AutoScout24 but are never read and never appear in a row. The individual car page is never opened — /angebote/ is disallowed by robots.txt, so you get the listing URL to open yourself, and the page behind it is never read.

If you need dealer contact data, this Actor is not the tool and will not become it.

Output

One row per car, "type": "listing". Measured on 2026-08-10 (real run):

{
"type": "listing",
"search": "bmw/3-series",
"country": "de",
"currency": "EUR",
"totalFound": 11004,
"pagesReported": 200,
"pagesCeilingHit": true,
"id": "44a79204-d10d-4551-95ae-24061aa1f969",
"url": "https://www.autoscout24.de/angebote/bmw-3er-3er-touring-318i-touring-aut-edition-exclusive-benzin-schwarz-cat_ma13gr100038ge25va106mt102tr181-44a79204-d10d-4551-95ae-24061aa1f969",
"price": 11900,
"priceLabel": "unknown",
"priceIsPlaceholder": false,
"make": "BMW",
"model": "318",
"modelGroup": "3er",
"variant": "Touring",
"registrationYear": 2011,
"firstRegistration": "03-2011",
"mileageKm": 118300,
"fuel": "Benzin",
"transmission": "Automatik",
"powerKw": 105,
"sellerType": "PrivateSeller",
"sellerId": "62854916",
"sellerCompanyName": null,
"sellerPage": "/lst?atype=C&cid=62854916",
"sellerCity": "Stuttgart, Landeshauptstadt",
"sellerCountry": "DE",
"scrapedAt": "2026-08-10T04:20:41.708448+00:00"
}

price, mileageKm, registrationYear and powerKw are numbers, not strings; a value the page does not carry is null, never 0 and never "". Field names and text come from the country front-end you searched, so a German run says Benzin and Automatik.

How it stays honest

  • The redirect echo-check. AutoScout24 answers 308 when a slug is not the canonical one for the front-end, and the redirect target has the search terms stripped. A naive tool follows it and returns a perfectly plausible page of the unfiltered make — right shape, right make, wrong cars. This Actor re-attaches the search terms by hand and then refuses any answer that does not echo back every filter it sent.
  • The sort is never the site default. sort=standard is tier- and ad-weighted (a measured page was 20/20 dealers). Enumeration always uses sort=age&desc=1 — newest listing first, independent of price and stable across pages.
  • Paid placements are dropped. Promoted (Nfm) and OCS slots sit inline among the organic hits and look identical; they are excluded and counted, so you are not charged for adverts.
  • Charged = pushed. The run log prints both, and they are asserted equal.

Limits

  • Asking prices of live listings, not transaction prices.
  • ~4,000 cars per search maximum — the site's wall, not ours (above).
  • One page every 1.5s, and a run stops paging before the 300s Actor timeout rather than being killed mid-write; a truncated search says so in the log.
  • autoscout24.ch is deliberately unsupported: it is a separate operator quoting CHF, and mixing currencies into one feed is not worth it.

A whole list in one run

searches takes a list; each search returns up to 4,000 cars at $0.0006, and only delivered rows are charged.

Two limits for big pulls: the platform stops a run when it reaches its Maximum cost per run setting (default $3.00 = 5,000 cars), and the run's default time limit is 300 seconds. Both can be raised in the run options — or split the searches across runs.

If something goes wrong

  • Wrong number or a failed run? Open a ticket on the Issues tab. I read every one and reply within 2 business days (Japan time).
  • You never get a fake "empty" result. If the site can't be read, the run fails and says so.
  • No results = no charge. You only pay for results you actually get.
  • Checked every week. An automatic test runs this tool weekly; if the site changes, I fix it.
  • Public pages only. No login, no personal data, and it goes easy on the site.

More tools by the same author

All tools (Japan marketplaces, real estate, jobs, racing, prediction markets): https://apify.com/jpmarketdata

Disclaimer

Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by AutoScout24. Product names and logos belong to their owners and only say where the data comes from. Data is read from public pages, for market research; check before you act on it.