# AutoScout24 Car Listings Scraper — Prices, Specs & Details (`muhammadafzal/autoscout24-scraper`) Actor

Scrape car listings from AutoScout24 across European markets. Extracts make, model, price, mileage, fuel type, transmission, power, equipment, seller info, and photos into structured JSON. Built for AI agents and LLM pipelines.

- **URL**: https://apify.com/muhammadafzal/autoscout24-scraper.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** Travel, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## AutoScout24 Car Listings Scraper

Scrape car listings from [AutoScout24](https://www.autoscout24.com) — Europe's largest online car marketplace. Extract structured vehicle data including prices, specifications, mileage, equipment features, seller details, and photos across all European markets.

Built for AI agents and LLM pipelines — every field is machine-readable JSON with consistent types and null handling for downstream search, comparison, and analysis.

### Features

- **Multi-country support** — Search across autoscout24.com, .de, .it, .fr, .be, .nl, .at, .es, and all other AutoScout24 markets
- **Full vehicle data extraction** — Price, mileage, year, power (kW/HP), fuel type, transmission, body type, engine size, color, CO2 emissions, fuel consumption, previous owners
- **Equipment & features list** — Complete list of options and extras (navigation, parking sensors, leather, heated seats, etc.)
- **Seller information** — Dealer name, seller type (dealer/private), location
- **Photo URLs** — All listing images in high resolution
- **Custom search URLs** — Use any AutoScout24 filtered search URL as input (filtered by make, model, year range, price range, fuel type, mileage, etc.)

### Use Cases

- **Market research** — Analyze car pricing trends across regions and models
- **Price comparison** — Compare listings across different sellers and markets
- **Inventory monitoring** — Track new listings for specific makes/models
- **AI/LLM data feeds** — Supply structured vehicle data to AI agents for search, comparison, and recommendation
- **Lead generation** — Build databases of car listings with seller contact info

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchUrls` | `string[]` | `["https://www.autoscout24.com/lst/bmw/3-series"]` | One or more AutoScout24 search/listings page URLs. Include any filters (make, model, year, price range, fuel type, etc.) applied via the website. |
| `maxListings` | `integer` | `50` | Maximum number of vehicle listings to scrape across all search URLs (1–500) |
| `scrapeDetailPages` | `boolean` | `true` | When enabled, visits each vehicle's detail page for full data extraction (equipment, description, all photos, exact specs). When disabled, only summary data from search results is returned. |
| `maxRequestRetries` | `integer` | `3` | Maximum retries for failed page requests (0–10) |

#### Example Input

```json
{
  "searchUrls": [
    "https://www.autoscout24.com/lst/bmw/3-series",
    "https://www.autoscout24.de/lst/audi/a4?fuel=Petrol&priceto=30000",
    "https://www.autoscout24.it/lst/volkswagen/golf?regfrom=2020&mileto=50000"
  ],
  "maxListings": 100,
  "scrapeDetailPages": true,
  "maxRequestRetries": 3
}
````

### Output

Each listing is a structured JSON object with the following fields:

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | `string` | Unique AutoScout24 listing identifier |
| `title` | `string` | Full listing title |
| `make` | `string` | Vehicle manufacturer/brand |
| `model` | `string` | Vehicle model |
| `price` | `number` | Listing price (numeric) |
| `currency` | `string` | Currency code (EUR, GBP, CHF, USD) |
| `mileageKm` | `number` | Vehicle mileage in kilometers |
| `firstRegistration` | `string` | First registration date (YYYY-MM or YYYY) |
| `powerKw` | `number` | Engine power in kilowatts |
| `powerHp` | `number` | Engine power in horsepower |
| `fuelType` | `string` | Fuel/energy type (Petrol, Diesel, Electric, Hybrid, etc.) |
| `transmission` | `string` | Transmission (Manual, Automatic, Semi-automatic) |
| `bodyType` | `string` | Body style (Sedan, SUV, Coupe, Wagon, etc.) |
| `engineSizeCc` | `number` | Engine displacement in cc |
| `doors` | `integer` | Number of doors |
| `seats` | `integer` | Number of seats |
| `color` | `string` | Exterior color |
| `co2Emissions` | `number` | CO2 emissions in g/km |
| `fuelConsumptionCombined` | `number` | Combined fuel consumption (l/100km or kWh/100km) |
| `previousOwners` | `integer` | Number of previous owners |
| `equipment` | `string[]` | List of equipment and features |
| `description` | `string` | Full seller description |
| `location` | `string` | Seller location |
| `sellerType` | `string` | Seller type (Dealer or Private) |
| `dealerName` | `string` | Dealership name (if applicable) |
| `imageUrls` | `string[]` | URLs of vehicle photos |
| `listingUrl` | `string` | Direct URL to the listing |
| `scrapedAt` | `string` | ISO 8601 scrape timestamp |
| `searchQuery` | `string` | Search URL that returned this listing |

#### Example Output

```json
{
  "listingId": "abc12345-defg",
  "title": "BMW 320d xDrive M Sport Navi PDC LED ACC",
  "make": "BMW",
  "model": "320d xDrive",
  "price": 25900,
  "currency": "EUR",
  "mileageKm": 85000,
  "firstRegistration": "2019-03",
  "powerKw": 140,
  "powerHp": 190,
  "fuelType": "Diesel",
  "transmission": "Automatic",
  "bodyType": "Sedan",
  "engineSizeCc": 1995,
  "doors": 5,
  "seats": 5,
  "color": "Black Sapphire Metallic",
  "co2Emissions": 125,
  "fuelConsumptionCombined": 4.8,
  "previousOwners": 1,
  "equipment": [
    "Navigation System",
    "Parking Sensors",
    "LED Headlights",
    "Adaptive Cruise Control",
    "Leather Seats",
    "Heated Seats",
    "Bluetooth"
  ],
  "description": "Well-maintained BMW 320d with full service history...",
  "location": "Munich, Germany",
  "sellerType": "Dealer",
  "dealerName": "AutoHaus München GmbH",
  "imageUrls": [
    "https://prod.pictures.autoscout24.net/listing-images/abc123..."
  ],
  "listingUrl": "https://www.autoscout24.com/offers/bmw-320d-xdrive-m-sport-abc12345",
  "scrapedAt": "2026-05-04T12:00:00.000Z",
  "searchQuery": "https://www.autoscout24.com/lst/bmw/3-series"
}
```

### Pricing

This actor is priced per car listing scraped. Pricing reflects the computational cost of browser-based scraping (Playwright) including proxy usage, page rendering, and data extraction from both search results and detail pages.

**$0.03 per listing**

*Browser-based scraping requires significantly more resources than API-based actors due to page rendering, JavaScript execution, and anti-bot measures.*

# Actor input Schema

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

One or more AutoScout24 search/listings page URLs to scrape. These can include any filters (make, model, year, price range, fuel type, mileage, etc.) applied via the AutoScout24 website. The scraper will extract all listing links from each search page and then visit each vehicle detail page for full data extraction.

## `maxListings` (type: `integer`):

Maximum number of vehicle listings to scrape across all search URLs. The scraper will stop after reaching this limit. Set higher for comprehensive data collection, lower for faster runs.

## `scrapeDetailPages` (type: `boolean`):

Whether to visit each vehicle's detail page for full data extraction (equipment features, full description, all photos, exact location, VIN, seller contact). When disabled, only the summary data from search results is returned (price, title, year, mileage, location). Enable for comprehensive data, disable for faster results.

## `maxRequestRetries` (type: `integer`):

Maximum number of retries for failed page requests. The scraper will retry with exponential backoff on connection errors, timeouts, or HTTP errors.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.autoscout24.com/lst/bmw/3-series"
  ],
  "maxListings": 50,
  "scrapeDetailPages": true,
  "maxRequestRetries": 3
}
```

# 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 = {
    "searchUrls": [
        "https://www.autoscout24.com/lst/bmw/3-series"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/autoscout24-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 = { "searchUrls": ["https://www.autoscout24.com/lst/bmw/3-series"] }

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

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

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

```

## CLI example

```bash
echo '{
  "searchUrls": [
    "https://www.autoscout24.com/lst/bmw/3-series"
  ]
}' |
apify call muhammadafzal/autoscout24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=muhammadafzal/autoscout24-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoScout24 Car Listings Scraper — Prices, Specs & Details",
        "description": "Scrape car listings from AutoScout24 across European markets. Extracts make, model, price, mileage, fuel type, transmission, power, equipment, seller info, and photos into structured JSON. Built for AI agents and LLM pipelines.",
        "version": "1.0",
        "x-build-id": "X67KfHNy4APbvki5m"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/muhammadafzal~autoscout24-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-muhammadafzal-autoscout24-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/muhammadafzal~autoscout24-scraper/runs": {
            "post": {
                "operationId": "runs-sync-muhammadafzal-autoscout24-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/muhammadafzal~autoscout24-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-muhammadafzal-autoscout24-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "One or more AutoScout24 search/listings page URLs to scrape. These can include any filters (make, model, year, price range, fuel type, mileage, etc.) applied via the AutoScout24 website. The scraper will extract all listing links from each search page and then visit each vehicle detail page for full data extraction.",
                        "default": [
                            "https://www.autoscout24.com/lst/bmw/3-series"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxListings": {
                        "title": "Max Listings",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of vehicle listings to scrape across all search URLs. The scraper will stop after reaching this limit. Set higher for comprehensive data collection, lower for faster runs.",
                        "default": 50
                    },
                    "scrapeDetailPages": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "Whether to visit each vehicle's detail page for full data extraction (equipment features, full description, all photos, exact location, VIN, seller contact). When disabled, only the summary data from search results is returned (price, title, year, mileage, location). Enable for comprehensive data, disable for faster results.",
                        "default": true
                    },
                    "maxRequestRetries": {
                        "title": "Max Request Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retries for failed page requests. The scraper will retry with exponential backoff on connection errors, timeouts, or HTTP errors.",
                        "default": 3
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
