# AutoScout24 Scraper — Car Listings, Prices & Dealers (EU) (`technicaldost/autoscout24-scraper-car-listings`) Actor

Scrape AutoScout24 car listings in Germany, Italy, France, Spain, Netherlands, Belgium, Austria and Luxembourg: price, price rating, mileage, registration, power, fuel, gearbox, location, dealer name, phone and rating, photos. $1 per 1,000 cars, no start fee.

- **URL**: https://apify.com/technicaldost/autoscout24-scraper-car-listings.md
- **Developed by:** [Technical Dost Solutions](https://apify.com/technicaldost) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 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

AutoScout24 Scraper collects car listings from **AutoScout24**, Europe's largest online car marketplace, in **Germany, Italy, France, Spain, the Netherlands, Belgium, Austria and Luxembourg**. Paste any AutoScout24 search URL, or pick a make, model, countries, price, year, mileage, fuel and seller type, and get each car's **price and AutoScout24 price rating, mileage, first registration, power (kW and hp), engine size, fuel, gearbox, body type, condition, location, dealer name, phone and rating, photos and link**. $1 per 1,000 cars, with no start fee.

### What you get

- Any AutoScout24 search URL from any country site (.com, .de, .it, .fr, .es, .nl, .be, .at), with all its filters.
- Or simple filters: make, model, countries, price, first registration year, maximum mileage, fuel, dealer or private seller, sort order.
- Clean numbers: price, mileage in km, power in kW and hp, engine cc, first registration as YYYY-MM.
- AutoScout24's price rating (top price, good price, fair price…) for spotting deals.
- Dealer name, office phone and rating; no personal data for private sellers.
- Up to 4,000 cars per search, duplicates removed. $1 per 1,000 cars, no start fee.

### How to use AutoScout24 Scraper

1. Either paste **Search URLs** copied from autoscout24.com after setting your filters there, or choose a **Make**, **Model** and filters below.
2. Set **Max cars per search** and run the Actor.
3. Sort and filter the dataset by price, mileage or price rating, and export to Excel, CSV or JSON.
4. Schedule it daily with **Newest listings** to get new cars as they appear.

### Input example

```json
{
  "make": "BMW",
  "model": "3 Series",
  "countries": [
    "germany"
  ],
  "priceTo": 20000,
  "sortBy": "newest_listings",
  "maxItemsPerSearch": 100
}
```

All fields are described in the **Input** tab.

### Output example

```json
{
  "id": "bf185c4e-ca2c-4bc9-84a2-aa1857364924",
  "title": "BMW 320 d xDrive Advantage | LED | Live Cockpit Prof",
  "make": "BMW",
  "model": "320",
  "modelGroup": "3 Series",
  "version": "d xDrive Advantage | LED | Live Cockpit Prof",
  "bodyType": "Touring",
  "price": 19950,
  "currency": "EUR",
  "priceRating": "top-price",
  "mileageKm": 124000,
  "firstRegistration": "2022-02",
  "year": 2022,
  "fuel": "Diesel",
  "transmission": "Automatic",
  "powerKw": 140,
  "powerHp": 190,
  "engineCc": 1995,
  "condition": "used",
  "isDamaged": null,
  "country": "DE",
  "zip": "79189",
  "city": "Bad Krozingen - Hausen",
  "sellerType": "dealer",
  "dealerName": "AVJ Automobilvertrieb Johner",
  "dealerPhone": "+4976682009814",
  "dealerRating": 5,
  "dealerRatingCount": 10,
  "isSponsored": false,
  "imageUrls": [
    "https://prod.pictures.autoscout24.net/listing-images/example.jpg/720x540.webp"
  ],
  "url": "https://www.autoscout24.com/offers/bmw-320-d-xdrive-advantage-example",
  "searchUrl": "https://www.autoscout24.com/lst/bmw/3-series?atype=C&cy=D&priceto=20000&sort=age&desc=1",
  "scrapedAt": "2026-10-22T18:00:00.000Z"
}
```

#### Output fields

| Field | Description |
|---|---|
| `id` | AutoScout24 listing ID. |
| `title` | Make, model and version. |
| `make` | Make. |
| `model` | Model. |
| `modelGroup` | Model group, e.g. 3 Series. |
| `version` | Version or trim as entered by the seller. |
| `bodyType` | Body type. |
| `price` | Price. |
| `currency` | Currency. |
| `priceRating` | AutoScout24 price rating, e.g. top-price, good-price. |
| `mileageKm` | Mileage in km. |
| `firstRegistration` | First registration, YYYY-MM. |
| `year` | First registration year. |
| `fuel` | Fuel type. |
| `transmission` | Gearbox. |
| `powerKw` | Power in kW. |
| `powerHp` | Power in hp. |
| `engineCc` | Engine displacement in cc. |
| `condition` | used, new, demonstration, employee car, classic or pre-registered. |
| `isDamaged` | Currently damaged. |
| `country` | Country code. |
| `zip` | Postal code. |
| `city` | City. |
| `sellerType` | dealer or private. |
| `dealerName` | Dealer company name (dealers only). |
| `dealerPhone` | Dealer office phone (dealers only). |
| `dealerRating` | Dealer rating, 1–5. |
| `dealerRatingCount` | Number of dealer ratings. |
| `isSponsored` | Promoted placement in results. |
| `imageUrls` | Photo URLs (720×540). |
| `url` | Listing URL. |
| `searchUrl` | Search that found the car. |
| `scrapedAt` | When the row was scraped. |

Export results as JSON, CSV, Excel, XML or HTML, or read them with the API.

### Use cases

- Car dealers: source stock below market price across eight countries.
- Pricing and valuation: build price-versus-mileage-and-age curves for any model.
- Import and export traders: compare the same model's prices between Germany, Italy, France and Spain.
- Lead generation: lists of car dealers with their stock, ratings and office phone numbers.
- Market research on electric cars, fuel types and brand share in European used-car markets.

### How much does AutoScout24 Scraper cost?

This Actor uses **pay-per-event** pricing: **$0.001 per car listing** ($1 per 1,000). Platform usage is included. There is no start fee, and searches with no results cost nothing.

Set **Maximum cost per run** in the run options to cap your spend; the Actor stops when the limit is reached.

### Use AutoScout24 Scraper with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through the hosted [Apify MCP server](https://mcp.apify.com):

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=technicaldost/autoscout24-scraper-car-listings" --header "Authorization: Bearer YOUR_APIFY_TOKEN"
```

Or in a JSON MCP config:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=technicaldost/autoscout24-scraper-car-listings",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

The tool is named `technicaldost--autoscout24-scraper-car-listings`. Ask your agent, for example, to *"run AutoScout24 Scraper with {"make": "BMW", "model": "3 Series", "countries": \["germany"], "priceTo": 20000, "sortBy": "newest_listings", "maxItemsPerSearch": 100}"*.

### Run AutoScout24 Scraper via API

```bash
curl -X POST "https://api.apify.com/v2/acts/technicaldost~autoscout24-scraper-car-listings/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"make": "BMW", "model": "3 Series", "countries": ["germany"], "priceTo": 20000, "sortBy": "newest_listings", "maxItemsPerSearch": 100}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("technicaldost/autoscout24-scraper-car-listings").call(run_input={"make": "BMW", "model": "3 Series", "countries": ["germany"], "priceTo": 20000, "sortBy": "newest_listings", "maxItemsPerSearch": 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('technicaldost/autoscout24-scraper-car-listings').call({"make": "BMW", "model": "3 Series", "countries": ["germany"], "priceTo": 20000, "sortBy": "newest_listings", "maxItemsPerSearch": 100});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Integrations

Schedule runs (daily, hourly) in Apify Console and send results to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or your own webhook.

### FAQ

#### Which countries are covered?

Germany, Austria, Belgium, Spain, France, Italy, Luxembourg and the Netherlands: the countries on AutoScout24's European search. Choose one or several.

#### How many cars can I get?

AutoScout24 shows at most 200 pages (4,000 cars) per search. For more, split the search by price or year range, or by country.

#### What if my make or model is not recognised?

The Actor checks that AutoScout24 really applied your make and model and skips the search if not, so you never pay for the wrong cars. Run the search on autoscout24.com and paste its URL into Search URLs instead.

#### Does it return private sellers' names or phone numbers?

No. Contact details are returned only for dealers (company name and office phone). Private sellers are marked as private with no personal data.

#### Does it scrape the full listing page?

No. It returns everything on the search results, which covers price, specs, location, seller and photos, so it is fast and cheap.

#### Is it legal to scrape this data?

The Actor collects publicly available information only and does not log in or bypass access controls. Use the data in line with the website's terms and the laws that apply to you, especially when processing personal data.

# Actor input Schema

## `startUrls` (type: `array`):

AutoScout24 search result URLs (they contain /lst), from any AutoScout24 country site. Set your filters on the website and paste the address here.

## `make` (type: `string`):

For example BMW, Volkswagen, Mercedes-Benz, Tesla. Used when no Search URLs are given.

## `model` (type: `string`):

As on AutoScout24, for example 3 Series, Golf, Model 3. Optional.

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

Countries to search.

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

Optional.

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

Optional.

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

Optional.

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

Optional.

## `maxMileageKm` (type: `integer`):

Optional.

## `fuel` (type: `string`):

Optional.

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

Dealers, private sellers or both.

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

Order of results.

## `maxItemsPerSearch` (type: `integer`):

Up to 4,000 (AutoScout24 shows 200 pages per search).

## Actor input object example

```json
{
  "startUrls": [],
  "make": "BMW",
  "model": "3 Series",
  "countries": [
    "germany"
  ],
  "fuel": "any",
  "sellerType": "any",
  "sortBy": "relevance",
  "maxItemsPerSearch": 100
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "startUrls": [],
    "make": "BMW",
    "model": "3 Series",
    "maxItemsPerSearch": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("technicaldost/autoscout24-scraper-car-listings").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 = {
    "startUrls": [],
    "make": "BMW",
    "model": "3 Series",
    "maxItemsPerSearch": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("technicaldost/autoscout24-scraper-car-listings").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 '{
  "startUrls": [],
  "make": "BMW",
  "model": "3 Series",
  "maxItemsPerSearch": 100
}' |
apify call technicaldost/autoscout24-scraper-car-listings --silent --output-dataset

```

## MCP server setup

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

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/odCJ4ky2uG5pc2qTQ/builds/WfOOm67DRwxJ3ha70/openapi.json
