# 🔍🚙 AutoScout24 Scraper (`jasper_thys/autoscout24-scraper`) Actor

Scrape car listings from AutoScout24 — prices, specs, dealer info, images, and more.

- **URL**: https://apify.com/jasper\_thys/autoscout24-scraper.md
- **Developed by:** [Jasper Thys](https://apify.com/jasper_thys) (community)
- **Categories:** Lead generation, AI, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Scraper

**Turn any AutoScout24 search URL into a clean dataset of car listings — prices, specs, photos, equipment, and dealer contacts (email included) — in seconds.**

AutoScout24 is Europe's largest online car marketplace. This actor extracts every listing on a search page (or the full detail of any single listing) and outputs structured JSON ready for spreadsheets, dashboards, CRMs, or your own ML pipeline.

---

### ✨ What you get

For every car listing, this scraper returns:

- **Identity** — title, brand, model, model version, listing ID, direct URL, vehicle type, body type
- **Price** — exact amount, currency, and pre-formatted string (`€ 26,990`), plus AS24's own price benchmark ("Very good price", "Fair price"…) with full price-range breakdown
- **24 structured attributes** — Mileage, Power (kW), Fuel, Transmission, First Registration, Emission Class, Number of Owners, Cylinders, Doors, Seats, Colour, Interior Design, Climate, Parking sensors, Airbags, Weight, CO₂, and more
- **Full equipment list** — every feature checkbox from Comfort, Entertainment, Extras, and Safety categories (often 50–80 items per car)
- **All photos** — full-resolution image URLs (not thumbnails)
- **Description** — the seller's complete HTML write-up
- **Dealer contact data** — name, address, country, ZIP, **all phone numbers with type (Mobile, Office, WhatsApp)**, **email**, dealer logo, link to dealer page, ratings (average score + review count), active-since date
- **Timestamps** — when the listing was created and last modified
- **Rank** — original position in the search results

---

### 🌍 Supported markets

Works across all AutoScout24 country domains:

🇩🇪 .de · 🇦🇹 .at · 🇮🇹 .it · 🇧🇪 .be · 🇳🇱 .nl · 🇫🇷 .fr · 🇪🇸 .es · 🇵🇱 .pl · 🇬🇧 .com (and the .com pan-European interface)

Currencies and locale formatting are detected automatically.

---

### ⚡ How to use it

1. Go to AutoScout24 in your browser, set your filters (brand, country, price range, fuel type, year — anything).
2. Copy the URL from the address bar.
3. Paste it into the **Start URL(s)** field. You can paste multiple URLs.
4. Hit **Start**.

That's it. You'll get up to ~400 listings per search URL (AutoScout24's hard limit per query).

You can also paste a **single listing URL** (`/offers/...`) to extract just that one car in full detail.

---

### 🛠️ Inputs

| Input | Default | What it does |
|---|---|---|
| 🔎 **Start URL(s)** | — | One or more AutoScout24 search or listing URLs |
| 📈 **Result limit per Start URL** | 100 | Cap the number of listings extracted from each URL |
| ⭐ **Review limit per seller** | 0 | Scrape up to N (max 10) seller reviews per listing (disabled in lightning mode and on detail URLs) |
| ⚡ **Lightning mode** | true | High-concurrency mode — ~10× faster. Skips review scraping. Recommended for most jobs. |
| ❌ **Failure threshold %** | 50 | Mark the run as failed if more than X% of requests fail |

---

### 📦 Sample output

```json
{
  "title": "Tesla Model S 100D Performance Dual Motor",
  "previewImage": "https://prod.pictures.autoscout24.net/listing-images/.../2560x1920.webp",
  "vehicleType": "Car",
  "bodyType": "Sedan",
  "brand": "Tesla",
  "model": "Model S",
  "modelVersion": "100D Performance Dual Motor",
  "url": "https://www.autoscout24.com/offers/tesla-model-s-...",
  "price": {
    "total": { "amount": 26990, "currency": "EUR", "formatted": "€ 26,990" }
  },
  "createdDate": "2026-04-23T13:06:50.124Z",
  "modifiedDate": "2026-04-28T07:49:14.566Z",
  "description": "<strong>BIENVENUE...",
  "attributes": {
    "Mileage": "148,000 km",
    "Power": "383 kW",
    "Fuel": "Electric",
    "Transmission": "Automatic",
    "First Registration": "06/2019",
    "Colour": "Red",
    "Interior Design": "Full leather, Black",
    "Number of Vehicle Owners": 1
    // ...24 fields total
  },
  "features": ["Air conditioning", "Air suspension", "Panorama roof", "..."],
  "images": ["https://...", "https://...", "..."],
  "id": "f6a66e81-008a-41f2-adce-d19f848639ff",
  "rank": 0,
  "priceRating": {
    "rating": "Very good price",
    "priceRanges": {
      "Very good price": { "start": 26001, "end": 28600 },
      "Good price":      { "start": 28601, "end": 30100 },
      "Fair price":      { "start": 30101, "end": 32100 }
    }
  },
  "dealerDetails": {
    "id": 25371820,
    "name": "Auto Selection Fosses",
    "sellerType": "Dealer",
    "phones": [{ "type": "Mobile", "number": "+32 (0)496 - 716734" }],
    "email": "autoselectionfosses@outlook.com",
    "url": "https://www.autoscout24.com/dealerinfo/auto-selection-fosses/about-us",
    "address": "Rue Tienne Drion 506, 5070 Sart-Eustache, BE",
    "addressStructured": {
      "street": "Rue Tienne Drion 506",
      "city": "Sart-Eustache",
      "countryCode": "BE",
      "zip": "5070"
    },
    "iconUrl": "https://prod.pictures.autoscout24.net/dealer-info/...",
    "reviewPageUrl": "https://www.autoscout24.com/dealerinfo/.../ratings",
    "rating": { "averageScore": 4.73, "count": 65 }
  }
}
````

***

### 💡 Use cases

- **Lead generation** — pull dealer contact info (name, phone, **email**, address) for outreach
- **Market research** — track pricing trends, mileage distributions, and fuel-type adoption across countries
- **Competitive intelligence** — monitor a competitor's stock, pricing strategy, and price-drop patterns
- **Inventory aggregation** — feed listings into your own marketplace, comparison tool, or AI assistant
- **Dealer benchmarking** — analyze rating distributions, response patterns, and stock turnover
- **Price monitoring** — set up scheduled runs to detect price changes on specific vehicles
- **ML training data** — clean, structured automotive data for pricing models, demand forecasting, or recommendation engines

***

### 🔗 Integrations

The output works out-of-the-box with Apify's built-in integrations:

- 📊 Export to **CSV / Excel / JSON** in one click
- 🔌 Push to **Google Sheets**, **Airtable**, **Notion**, or **HubSpot**
- 🪝 Trigger **webhooks** to send each new listing to your CRM or Zapier
- 🤖 Pipe into **OpenAI / Claude** for automated description analysis or vehicle classification
- 🗃️ Stream into **PostgreSQL**, **BigQuery**, or **MongoDB**

***

### ⏱️ Schedule it

Pair with Apify's scheduler to monitor a search URL daily — perfect for spotting new listings, price drops, or sold cars the moment they happen.

***

### 🧰 Notes & tips

- **Lightning mode** is on by default and is the right choice for almost every job. Turn it off only if you specifically need seller reviews scraped.
- AutoScout24 caps each search at ~400 results (20 pages × 20 results). To scrape more cars, split the search by country, brand, or price range and run multiple URLs in parallel.
- Some private sellers and a small number of dealers don't publish an email anywhere on AutoScout24. In those cases the `email` field is `null` — that's expected, not a bug.
- The `priceRating` field only appears for vehicles where AutoScout24 has computed a price benchmark (typically high-volume mainstream models).

***

### 💬 Questions or issues?

Spot a bug or want a feature? Open an issue and we'll take a look.

# Actor input Schema

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

Paste AutoScout24 search or detail URLs here.

## `resultLimitPerThread` (type: `integer`):

Maximum number of results to return for each input URL.

## `reviewLimit` (type: `integer`):

Limit the amount of seller reviews scraped per vehicle listing (max 10). Disabled for detail URLs.

## `lightningMode` (type: `boolean`):

Makes the scraper ~10x faster by skipping reviews and some seller detail fields. Result order may be affected (order by `rank` property).

## `customRunFailureThresholdPercent` (type: `integer`):

Run will be marked as failed if failed request count exceeds this percentage of all requests.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.autoscout24.com/lst/ford?sort=standard&desc=0&ustate=N%2CU&atype=C&cy=D%2CA%2CI%2CB%2CNL%2CE%2CL%2CF&source=homepage_search-mask"
  ],
  "resultLimitPerThread": 100,
  "reviewLimit": 0,
  "lightningMode": true,
  "customRunFailureThresholdPercent": 50
}
```

# 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": [
        "https://www.autoscout24.com/lst/ford?sort=standard&desc=0&ustate=N%2CU&atype=C&cy=D%2CA%2CI%2CB%2CNL%2CE%2CL%2CF&source=homepage_search-mask"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jasper_thys/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 = { "startUrls": ["https://www.autoscout24.com/lst/ford?sort=standard&desc=0&ustate=N%2CU&atype=C&cy=D%2CA%2CI%2CB%2CNL%2CE%2CL%2CF&source=homepage_search-mask"] }

# Run the Actor and wait for it to finish
run = client.actor("jasper_thys/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 '{
  "startUrls": [
    "https://www.autoscout24.com/lst/ford?sort=standard&desc=0&ustate=N%2CU&atype=C&cy=D%2CA%2CI%2CB%2CNL%2CE%2CL%2CF&source=homepage_search-mask"
  ]
}' |
apify call jasper_thys/autoscout24-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🔍🚙 AutoScout24 Scraper",
        "description": "Scrape car listings from AutoScout24 — prices, specs, dealer info, images, and more.",
        "version": "0.0",
        "x-build-id": "0ryYYUl1K6E6FWftd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jasper_thys~autoscout24-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jasper_thys-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/jasper_thys~autoscout24-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jasper_thys-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/jasper_thys~autoscout24-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jasper_thys-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🔎 Start URL(s)",
                        "type": "array",
                        "description": "Paste AutoScout24 search or detail URLs here.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "resultLimitPerThread": {
                        "title": "📈 Result limit per Start URL",
                        "type": "integer",
                        "description": "Maximum number of results to return for each input URL.",
                        "default": 100
                    },
                    "reviewLimit": {
                        "title": "⭐ Review limit per seller",
                        "type": "integer",
                        "description": "Limit the amount of seller reviews scraped per vehicle listing (max 10). Disabled for detail URLs.",
                        "default": 0
                    },
                    "lightningMode": {
                        "title": "⚡ Lightning mode",
                        "type": "boolean",
                        "description": "Makes the scraper ~10x faster by skipping reviews and some seller detail fields. Result order may be affected (order by `rank` property).",
                        "default": true
                    },
                    "customRunFailureThresholdPercent": {
                        "title": "❌ Fail if request failure rate is higher than X %",
                        "type": "integer",
                        "description": "Run will be marked as failed if failed request count exceeds this percentage of all requests.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
