# AutoScout24 Listings Scraper - Prices, Specs & Dealers (`topapi/autoscout24-listings-scraper`) Actor

Scrape AutoScout24 car listings from 8 European markets by URL or filters: price and price rating, mileage, registration, fuel, gearbox, power, seller and phone, location, photos. Optional details: equipment, description, colour, doors, seats. Monitor mode returns only new listings and price drops.

- **URL**: https://apify.com/topapi/autoscout24-listings-scraper.md
- **Developed by:** [Top Api](https://apify.com/topapi) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.95 / 1,000 car listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does AutoScout24 Listings Scraper do?

**AutoScout24 Listings Scraper** extracts car listings from AutoScout24, Europe's largest online car marketplace, across its eight markets: Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands. Paste search URLs or name makes and models, and every listing becomes one structured row: price and AutoScout24's own price rating, mileage, first registration, fuel, gearbox, power, location, the dealer or private seller with phone, and photos. Built for car dealers, importers, pricing analysts and lead-generation teams.

AutoScout24 Scraper - AutoScout24 API - AutoScout24 Car Listings Scraper - AutoScout24 Price Tracker

<a href="https://console.apify.com/actors/6hU3x1C4hhWXMfzMy"><img src="https://api.apify.com/v2/key-value-stores/qNQ9zP0xaj2yxGeMY/records/autoscout24-listings-scraper-source.png" alt="AutoScout24 car listings search page that AutoScout24 Listings Scraper turns into rows" style="width:70%"></a>

- **Search URLs or filters:** paste any AutoScout24 search URL from autoscout24.com or a national domain (.de, .it, .fr, .nl, .es, .at, .be, .lu), or type "BMW 3 Series" and pick markets, price, year, mileage, fuel, gearbox, body type, power, radius and seller type.
- **Past the 4,000-listing window:** AutoScout24 serves at most 4,000 listings per search. Above that the actor splits the search into price bands and checks the count against AutoScout24's own total. On a test run it delivered 10,761 of the 10,762 BMW 3 Series listings AutoScout24 reported for Germany.
- **AutoScout24's price rating on every row:** `top-price`, `good-price`, `fair-price`, `somewhat-expensive`, `expensive`, so you can filter deals the way buyers see them.
- **Listing details add-on:** body type, colour, doors, seats, full equipment list, seller description, previous owners, next inspection, net price and VAT, GPS and the date the car went online.
- **Monitor mode:** returns only listings that are new or whose price changed since the last run, with `changeType`, `previousPrice` and `priceChange`.
- **Listing URLs too:** pass a single listing's URL to read that car (and watch its price).
- **Export anywhere:** JSON, CSV, Excel, XML, RSS; schedules, webhooks, Make, Zapier, n8n, Google Sheets, Slack, the Apify API and MCP.

### What data can you get from AutoScout24 listings?

<table>
<tr>
<td>🚗 Make, model, version (`make`, `model`, `modelVersion`)</td>
<td>💶 Price and currency (`price`, `currency`)</td>
<td>🏷️ AutoScout24 price rating (`priceEvaluation`)</td>
</tr>
<tr>
<td>🛣️ Mileage in km (`mileage`)</td>
<td>📅 First registration (`firstRegistration`)</td>
<td>⛽ Fuel and gearbox (`fuelType`, `transmission`)</td>
</tr>
<tr>
<td>⚡ Power in kW and hp (`powerKw`, `powerHp`)</td>
<td>🔧 Engine size (`engineDisplacementCcm`)</td>
<td>🌱 WLTP consumption and CO2 (`fuelConsumption`, `co2Emissions`)</td>
</tr>
<tr>
<td>📍 Country, city, ZIP, street</td>
<td>🏢 Dealer or private seller (`sellerType`, `sellerName`)</td>
<td>☎️ Seller phones (`phone`, `phones`)</td>
</tr>
<tr>
<td>⭐ Dealer rating and reviews (`sellerRating`)</td>
<td>🖼️ Photos at your size (`images`)</td>
<td>🆕 New / used / demo (`condition`)</td>
</tr>
<tr>
<td>🚙 Body type, colour, doors, seats (details)</td>
<td>🧰 Equipment list by category (details)</td>
<td>📝 Description, owners, date listed (details)</td>
</tr>
</table>

On a 400-row test run (Volkswagen Golf, Germany) price, mileage, fuel, gearbox, power and city were filled on 100% of rows, first registration on 99.5%, the price rating on 97.2% and a dealer phone on 99.8%. Private sellers publish a phone less often: 14 of 24 on a mixed run.

### How to scrape AutoScout24 listings with AutoScout24 Listings Scraper

1. [Create a free Apify account](https://console.apify.com/sign-up). It comes with $5 of monthly credit and needs no card.
2. Open [AutoScout24 Listings Scraper](https://apify.com/topapi/autoscout24-listings-scraper) and click **Try for free**.
3. Paste AutoScout24 search URLs into **AutoScout24 URLs**, or type a make and model into **Make and model** and pick the **Markets**.
4. Set filters if you want them and choose **Max listings**.
5. Click **Start**. Rows land in the dataset page by page.
6. Open the **Storage** tab and **Export** as JSON, CSV or Excel, or let a schedule run it for you.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| **🔍 What to scrape** | | |
| `searchUrls` | List | AutoScout24 search URLs (any filters set on the site) or listing URLs, from autoscout24.com or a national domain. |
| `makeModels` | List | `BMW`, `BMW 3 Series`, `Volkswagen Golf`, `Mercedes-Benz C-Class`. Empty with no URLs = all makes. |
| `countries` | Multi-select | Markets for the make/model searches: DE, AT, BE, ES, FR, IT, LU, NL. Default `DE`. |
| **🎯 Filters** (applied by AutoScout24 to the make/model searches) | | |
| `priceFrom`, `priceTo` | Integer | Asking price in EUR. |
| `yearFrom`, `yearTo` | Integer | First-registration year. |
| `mileageTo` | Integer | Highest mileage in km. |
| `fuelTypes` | Multi-select | Gasoline, Diesel, Electric, the two hybrids, LPG, CNG, Hydrogen, Ethanol, Others. |
| `transmission` | Select | Automatic, Manual, Semi-automatic. Default any. |
| `bodyTypes` | Multi-select | Compact, Convertible, Coupe, SUV, Station Wagon, Sedan, Van, Transporter, Other. |
| `powerFromKw` | Integer | Lowest power in kW. |
| `sellerType` | Select | Dealers, private sellers or both. |
| `condition` | Select | New, used, demonstration, pre-registered, employee's car, classic. |
| `zipCode`, `radiusKm` | Text, Integer | Radius search around a postcode in one market. |
| `listedWithinDays` | Integer | Only listings put online in the last N days. |
| `sortBy` | Select | Best results, newest, price, mileage, first registration. |
| **✂️ Refine results** | | |
| `priceRatings` | Multi-select | Keep only these AutoScout24 price ratings. |
| `excludeKeywords` | List | Drop listings whose title or version text contains a word, e.g. `export`. |
| `withPhoneOnly` | Boolean | Keep only listings with a seller phone. Default `false`. |
| **➕ Extra data** | | |
| `includeDetails` | Boolean | Read each delivered listing's page for the detail fields, charged as the **Listing details** add-on. Default `false`. |
| **🔁 Monitoring** | | |
| `monitorMode` | Boolean | Return only new listings and price changes since the previous run. Pair with a daily schedule. |
| `monitorStoreName` | Text | One name per watchlist. Default `autoscout24-listings-monitor`. |
| **📦 Output** | | |
| `maxResults` | Integer | Default `100`; `0` = no limit. |
| `maxResultsPerSearch` | Integer | Cap per URL, make or country search. `0` = none. |
| `compact` | Boolean | Core fields only, sized for AI agents, MCP and spreadsheets. |
| `imageResolution` | Select | 250x188, 480x360 (default) or 1280x960 photo URLs. |
| **⚙️ Advanced** | | |
| `proxyConfiguration` | Proxy | Default: direct connection, Apify Proxy then residential only if AutoScout24 refuses. |
| `maxConcurrency` | Integer | Listing pages read in parallel for the details add-on. Default `4`. |

#### Input JSON

```json
{
  "makeModels": ["BMW 3 Series", "Audi A4"],
  "countries": ["DE", "IT"],
  "priceTo": 30000,
  "yearFrom": 2019,
  "sortBy": "newest",
  "includeDetails": true,
  "maxResults": 200
}
```

#### Use the model name AutoScout24 uses

The actor checks that AutoScout24 applied your make and model. A name it does not know is skipped with a message instead of returning every car of that make. **Do:** `BMW 3 Series`, `Mercedes-Benz C-Class`, `Volkswagen Golf`, `BMW 320` · **Don't:** `BMW 3er` on autoscout24.com (that German name works only in a pasted autoscout24.de URL).

#### Paste a URL for any other filter

Colour, doors, seats, equipment, emission class and previous owners are filters on AutoScout24 too. Set them on the site, copy the address bar and paste it into **AutoScout24 URLs**. Filters in the form apply only to the make/model searches; a pasted URL keeps its own.

#### Pick a sort order when you cap the results

With **Max listings** set, the sort decides which listings you get: `newest` for fresh stock, `priceAsc` for the cheapest cars. Monitor mode reads newest first by default.

### ⬆️ Output

Every listing becomes one dataset item. Here is a run for BMW 3 Series and Audi A4 in Germany and Italy, newest first, with the details add-on:

<a href="https://console.apify.com/actors/6hU3x1C4hhWXMfzMy"><img src="https://api.apify.com/v2/key-value-stores/qNQ9zP0xaj2yxGeMY/records/autoscout24-listings-scraper-output.png" alt="AutoScout24 Listings Scraper output table with prices, price ratings and specs" style="width:70%"></a>

And one row of that run as JSON (shortened):

```json
{
  "listingId": "466369a3-2a18-4459-9c59-428792f06fac",
  "url": "https://www.autoscout24.com/offers/audi-a4-40-tfsi-s-tr-advanced-led+navi+shz-gasoline-grey-cat_ma9mo1626-466369a3-2a18-4459-9c59-428792f06fac",
  "title": "Audi A4 40 TFSI S-TR ADVANCED LED+NAVI+SHZ",
  "price": 23677,
  "currency": "EUR",
  "priceEvaluation": "top-price",
  "mileage": 46624,
  "firstRegistration": "04/2023",
  "fuelType": "Gasoline",
  "transmission": "Automatic",
  "powerKw": 150,
  "powerHp": 204,
  "country": "DE",
  "city": "Bayreuth",
  "sellerType": "Dealer",
  "sellerName": "Motor-Nützel Vertriebs-GmbH Bayreuth",
  "phone": "+49 (0)921 - 5303916500",
  "bodyType": "Sedan",
  "bodyColor": "Grey",
  "numberOfDoors": 4,
  "previousOwners": 1,
  "createdAt": "2026-10-05T17:32:02.898Z"
}
```

#### AutoScout24 listing fields

| Field | What it is | Fill on test run |
|---|---|---|
| `listingId`, `url`, `title` | AutoScout24 id, listing page, make + model + version | 100% |
| `price`, `priceFormatted`, `currency` | Asking price as a number and as shown | 100% |
| `priceEvaluation` | AutoScout24's price rating; `null` = no rating shown | 97% |
| `mileage`, `firstRegistration` | Kilometres; MM/YYYY (null for new cars) | 100%, 99.5% |
| `fuelType`, `transmission`, `power`, `powerKw`, `powerHp` | As listed | 100% |
| `fuelConsumption`, `co2Emissions` | WLTP values when the listing shows them | 49% |
| `country`, `city`, `zipCode`, `street` | Where the car is | 100% |
| `sellerType`, `sellerName`, `contactName` | Dealer or Private; dealer name and contact | 100%, 100%, 98.5% |
| `phone`, `phoneCallTo`, `phones` | First phone as shown and in international format; every phone | 99.8% (dealers) |
| `sellerRating`, `sellerReviewCount` | Dealer stars and reviews | 91.5% |
| `images`, `imageCount` | Photos at your chosen size | 100% |
| `bodyType` | From a body-type filter, or the details add-on | 100% with either |
| Details: `bodyColor`, `numberOfDoors`, `numberOfSeats`, `equipment`, `description`, `createdAt`, `latitude`, `longitude` | From the listing page | 80%, 97%, 96%, 94%, 93%, 100%, 100%, 100% |
| Details: `previousOwners`, `emissionClass`, `netPrice`, `warranty` | When the seller fills them | 59%, 74%, 29%, 42% |
| Details: `nextInspection` | Next safety inspection due (MM/YYYY), when the seller gives it | 68% (40-row dealer run, DE + NL) |
| Monitor: `changeType`, `previousPrice`, `priceChange`, `priceChangePercent`, `firstSeenAt` | NEW, PRICE_DROP or PRICE_INCREASE | every monitor row |

Fill figures: base fields from a 400-row run, details from a 100-row run with the add-on (BMW 3 Series and Audi A4, Germany and Italy).

### How can I use AutoScout24 listings data?

- 💶 **Car dealers and importers:** find cars AutoScout24 rates `top-price` or `good-price` in another market and compare cross-border prices.
- 📉 **Pricing and remarketing teams:** track asking prices by model, year and mileage, and get every price drop on your watchlist each morning.
- 🎯 **Lead-generation teams:** build lists of dealers with stock in a segment, with phone, address and rating.
- 📊 **Analysts:** measure EV share, stock age and price bands by country from the same schema in all eight markets.
- 🤖 **AI and data teams:** feed listings to valuation models and agents; `compact` keeps rows small.
- 🔔 **Buyers and brokers:** schedule monitor mode on a narrow search and act on new cars first.

### How much does it cost to scrape AutoScout24 listings?

AutoScout24 Listings Scraper is pay-per-result: **$0.95 per 1,000 listings**, no start fee. The optional **Listing details** add-on is **$1.00 per 1,000 listings** that get the detail fields. You pay for listings written to your dataset.

| Listings | Without details | With details |
|---:|---:|---:|
| 100 | $0.095 | $0.195 |
| 1,000 | $0.95 | $1.95 |
| 10,000 | $9.50 | $19.50 |
| 100,000 | $95.00 | $195.00 |

Platform usage is included in the price. Measured on 256 MB: 400 listings in 3 seconds, 100 listings with details in 20 seconds, 10,761 listings from one search in 155 seconds.

### AutoScout24 listings in your tools: integrations, API, scheduling & MCP

- **Schedules:** run it daily from the **Schedules** tab with `monitorMode: true` (and `listedWithinDays: 1` if you only want fresh stock) to receive only new listings and price changes.
- **Webhooks:** fire a URL when a run finishes and push new cars to your CRM, Slack or a sheet.
- **No-code:** Make, Zapier, n8n, Google Sheets, Airtable, Slack via [Apify integrations](https://docs.apify.com/integrations).
- **API:** call it from Node.js or Python with `apify-client`. Code is on the [API tab](https://apify.com/topapi/autoscout24-listings-scraper/api/python) and in the [Apify API reference](https://docs.apify.com/api/v2).
- **MCP / AI agents:** connect Claude, Cursor or any MCP client through the [MCP tab](https://apify.com/topapi/autoscout24-listings-scraper/api/mcp) and ask for cars in plain language. Set `compact: true` to keep rows small.

### More scrapers by TopApi

<table>
<tr>
<td>🛒 <a href="https://apify.com/topapi/facebook-marketplace-scraper">Facebook Marketplace Scraper</a> - listings, prices and price drops by keyword and city</td>
<td>⭐ <a href="https://apify.com/topapi/google-maps-reviews-scraper">Google Maps Reviews Scraper</a> - dealer reviews, ratings and owner replies</td>
<td>🗺️ <a href="https://apify.com/topapi/google-geocoding-scraper">Google Geocoding Scraper</a> - turn dealer addresses into coordinates</td>
</tr>
<tr>
<td>📈 <a href="https://apify.com/topapi/similarweb-scraper">Similarweb Scraper</a> - website traffic of dealer and marketplace sites</td>
<td>📇 <a href="https://apify.com/topapi/instagram-contact-scraper">Instagram Contact Scraper</a> - emails and phones of dealer accounts</td>
<td>📰 <a href="https://apify.com/topapi/facebook-page-posts-scraper">Facebook Page Posts Scraper</a> - posts from dealer and brand Pages</td>
</tr>
<tr>
<td>💼 <a href="https://apify.com/topapi/indeed-jobs-scraper">Indeed Jobs Scraper</a> - jobs, salaries and hiring companies</td>
<td>🎵 <a href="https://apify.com/topapi/tiktok-scraper">TikTok Scraper</a> - videos by profile, hashtag or keyword</td>
<td>🧭 <a href="https://apify.com/topapi">All TopApi actors</a> - including X profiles and YouTube Shorts</td>
</tr>
</table>

### Limits & empty runs

- **4,000 listings per search:** AutoScout24 stops paging at 4,000 listings and then answers with an empty page. The actor splits larger searches into price bands (then mileage bands) and compares what it read with AutoScout24's own count; a gap is named in the log and in `RUN_SUMMARY`.
- **Sort order past 4,000:** a split search arrives band by band, cheapest band first; the sort applies inside each band.
- **Markets:** the eight markets of AutoScout24's European search. autoscout24.ch is a separate Swiss marketplace and is not read.
- **Text fields follow the domain:** a URL from autoscout24.de returns German labels (`Benzin`, `Schaltgetriebe`); make/model searches and details use English.
- **Smyle listings** (AutoScout24's buy-online cars) have no standard listing page: they come with the search fields only, without details or the details charge.
- **Monitor mode** remembers listings for 90 days. With a result cap, listings beyond the cap stay "new" for the next run.
- **Empty dataset:** your filters matched nothing, AutoScout24 did not recognise a make or model (named in the status message), or monitor mode found nothing new. The status message and `RUN_SUMMARY` say which.

### FAQ

#### How many listings can AutoScout24 Listings Scraper collect?

Up to 100,000 per run. One AutoScout24 search serves 4,000 listings; above that the actor splits the search into price bands. A test run delivered 10,761 BMW 3 Series listings in Germany against AutoScout24's count of 10,762.

#### Can I run AutoScout24 Listings Scraper on a schedule to get new listings automatically?

Yes. Save your input as a task, open **Schedules**, pick daily or hourly and set `monitorMode: true`. Each run returns only listings that are new or changed price since the previous run, under the same `monitorStoreName`.

#### Does AutoScout24 Listings Scraper track price drops?

Yes. In monitor mode a listing whose price changed comes back with `changeType` `PRICE_DROP` or `PRICE_INCREASE`, `previousPrice`, `priceChange` and `priceChangePercent`.

#### Which countries does AutoScout24 Listings Scraper cover?

Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands, through make/model searches or URLs from autoscout24.com and the national domains. Switzerland's autoscout24.ch is a separate marketplace and is not covered.

#### Can AutoScout24 Listings Scraper get equipment, colour and the seller's description?

Yes, with **Add listing details**. Each delivered listing's page adds body type, colour, doors, seats, the equipment list by category, the description, previous owners, net price and VAT, GPS and the date it went online.

#### Can I integrate AutoScout24 Listings Scraper with other apps?

Yes. Make, Zapier, n8n, Google Sheets, Slack and more via [Apify integrations](https://docs.apify.com/integrations), or [webhooks](https://docs.apify.com/integrations/webhooks) that fire when a run finishes.

#### Can I use AutoScout24 Listings Scraper with the Apify API?

Yes. The API starts runs, fetches datasets and manages schedules. Use `apify-client` for [Node.js](https://apify.com/topapi/autoscout24-listings-scraper/api/javascript) or [Python](https://apify.com/topapi/autoscout24-listings-scraper/api/python); the API tab has ready-to-paste code.

#### Can I use AutoScout24 Listings Scraper through an MCP server?

Yes. Open the [MCP tab](https://apify.com/topapi/autoscout24-listings-scraper/api/mcp), connect your MCP client (Claude Desktop, Cursor, LibreChat) and ask for listings in plain language. `compact: true` keeps the rows small.

#### Do I need an AutoScout24 account or API key for AutoScout24 Listings Scraper?

No. AutoScout24 has no public listings API; the actor reads the listings AutoScout24 shows any visitor. You pass URLs or makes and filters, nothing else.

#### Why did my AutoScout24 Listings Scraper run return no listings?

The common causes: a model name AutoScout24 does not use on autoscout24.com (the status message names it), filters that match nothing, or monitor mode with nothing new since the last run. `RUN_SUMMARY` lists each search with AutoScout24's own count.

#### Is it legal to scrape AutoScout24 listings?

AutoScout24 Listings Scraper extracts only publicly available listings; it does not log in. Listings can include personal data such as a private seller's phone number, which is regulated (for example by GDPR). Make sure you have a legitimate purpose before you store or reuse it.

#### Your feedback

We keep improving AutoScout24 Listings Scraper. Found a bug or missing a field? Open an issue on the [Issues tab](https://apify.com/topapi/autoscout24-listings-scraper/issues/open).

# Actor input Schema

## `searchUrls` (type: `array`):

Search URLs (any filters set on the site) or listing URLs, from autoscout24.com or a national domain (.de, .it, .fr, .nl, .es, .at, .be, .lu). E.g. https://www.autoscout24.de/lst/bmw/3er?cy=D

## `makeModels` (type: `array`):

One make, or make + model, per line, as AutoScout24 names them. E.g. "BMW", "BMW 3 Series", "Volkswagen Golf", "Mercedes-Benz C-Class". Empty = all makes.

## `countries` (type: `array`):

Countries to search for the make/model lines and filters below. Each country is its own search. Pasted URLs keep their own country.

## `priceFrom` (type: `integer`):

Lowest asking price in EUR. E.g. 5000. Applies to the make/model searches, not to pasted URLs.

## `priceTo` (type: `integer`):

Highest asking price in EUR. E.g. 25000.

## `yearFrom` (type: `integer`):

Earliest first-registration year. E.g. 2019.

## `yearTo` (type: `integer`):

Latest first-registration year. E.g. 2023.

## `mileageTo` (type: `integer`):

Highest mileage in kilometres. E.g. 80000.

## `fuelTypes` (type: `array`):

One or more fuel types. Empty = any fuel.

## `transmission` (type: `string`):

Gearbox type.

## `bodyTypes` (type: `array`):

One or more body types. Each is searched separately, so every row carries its body type. Empty = any.

## `powerFromKw` (type: `integer`):

Lowest engine power in kW (1 kW = 1.36 hp). E.g. 110 for about 150 hp.

## `sellerType` (type: `string`):

Dealers, private sellers or both.

## `condition` (type: `string`):

New, used or one of AutoScout24's used-car types.

## `zipCode` (type: `string`):

Centre of a radius search, in the selected market. E.g. 80331 (Munich). Use with one country.

## `radiusKm` (type: `integer`):

Distance around the ZIP code. E.g. 50. AutoScout24's own steps are 10, 20, 50, 100, 150, 200, 250, 300, 400.

## `listedWithinDays` (type: `integer`):

Only listings put online in the last N days (AutoScout24's 'online since' filter). E.g. 1 for a daily schedule, 7 for a weekly one.

## `sortBy` (type: `string`):

Order AutoScout24 returns listings in; with a result cap it decides which listings you get. Monitor mode defaults to newest first.

## `priceRatings` (type: `array`):

Keep only listings with these AutoScout24 price ratings (the deal label on the listing). Empty = keep all.

## `excludeKeywords` (type: `array`):

Drop listings whose title or version text contains any of these words. E.g. "export", "defekt", "unfall".

## `withPhoneOnly` (type: `boolean`):

Keep only listings that show a seller phone number (all dealers; about half of private sellers).

## `includeDetails` (type: `boolean`):

Read each delivered listing's page for body type, colour, doors, seats, equipment, description, previous owners, net price/VAT, GPS and date listed. Charged as the 'Listing details' add-on.

## `monitorMode` (type: `boolean`):

Return only listings that are new or whose price changed since the previous run, with changeType, previousPrice and priceChange. Pairs with a daily schedule.

## `monitorStoreName` (type: `string`):

Name of the key-value store that remembers listings between runs. Use one name per watchlist. E.g. "golf-de-under-20k".

## `maxResults` (type: `integer`):

Most listings to deliver in this run. 0 = no limit. One search serves 4,000 listings; above that the actor splits the search into price bands.

## `maxResultsPerSearch` (type: `integer`):

Cap for each URL / make / country search, so one large search cannot use up the whole run. 0 = no per-search cap.

## `compact` (type: `boolean`):

Core fields only (price, rating, mileage, year, fuel, gearbox, power, location, seller, phone): smaller rows for AI agents, MCP and spreadsheets.

## `imageResolution` (type: `string`):

Size of the photo URLs in each row.

## `proxyConfiguration` (type: `object`):

Default: direct connection first, Apify Proxy then residential only if AutoScout24 refuses. Pick a group to force it.

## `maxConcurrency` (type: `integer`):

Listing pages read at the same time for the details add-on and listing URLs.

## Actor input object example

```json
{
  "makeModels": [
    "Volkswagen Golf"
  ],
  "countries": [
    "DE"
  ],
  "transmission": "any",
  "sellerType": "any",
  "condition": "any",
  "withPhoneOnly": false,
  "includeDetails": false,
  "monitorMode": false,
  "monitorStoreName": "autoscout24-listings-monitor",
  "maxResults": 20,
  "maxResultsPerSearch": 0,
  "compact": false,
  "imageResolution": "480x360",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 4
}
```

# Actor output Schema

## `listings` (type: `string`):

One item per AutoScout24 listing (overview view).

## `all` (type: `string`):

Every field of every listing.

## `summary` (type: `string`):

Per-search counts (reported by AutoScout24, read, delivered, filtered, unchanged, price bands), listing URLs not found, requests and transport.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "makeModels": [
        "Volkswagen Golf"
    ],
    "countries": [
        "DE"
    ],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("topapi/autoscout24-listings-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "makeModels": ["Volkswagen Golf"],
    "countries": ["DE"],
    "maxResults": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("topapi/autoscout24-listings-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "makeModels": [
    "Volkswagen Golf"
  ],
  "countries": [
    "DE"
  ],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call topapi/autoscout24-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,topapi/autoscout24-listings-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6hU3x1C4hhWXMfzMy/builds/LYdMe9iHo9uHPCy3b/openapi.json
