# Autoscout24 Europe Used Car Listings Scraper (`jungle_synthesizer/autoscout24-europe-used-car-listings-scraper`) Actor

The full used-car and motorcycle inventory from Europe's largest vehicle marketplace, across nine country storefronts — not just the first page of a search.

- **URL**: https://apify.com/jungle\_synthesizer/autoscout24-europe-used-car-listings-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Europe Used Car & Motorcycle Listings Scraper

Scrapes the complete used-car and motorcycle inventory from [AutoScout24](https://www.autoscout24.com), Europe's largest online vehicle marketplace, across all nine country storefronts (.com, .de, .at, .it, .nl, .be, .fr, .es, .lu). Returns 44 structured fields per listing — price, mileage, registration date, power, emissions, equipment, dealer identity and rating, and more — normalised into one consistent schema across countries and currencies.

***

### Why This Is Different From a Normal AutoScout24 Search Scraper

A regular AutoScout24 search page shows at most 4,000 results, no matter how many thousands more actually match your filters — the site itself caps every search at that number. Most AutoScout24 scrapers just replay a search URL, so they inherit that ceiling: ask for "all BMWs in Germany" and you get the first 4,000, not the real total.

This actor walks past that ceiling. It automatically breaks a large query into narrower slices — by make, then by registration-year range, then by price range — until each slice is small enough for AutoScout24 to return in full, then stitches the results back together. The result is the actual full inventory for whatever scope you ask for, not a truncated sample.

***

### AutoScout24 Scraper Features

- Covers all nine AutoScout24 country storefronts in one run, with each listing tagged by the storefront it came from
- Covers both Cars and Motorcycles
- Returns 44 fields per listing: price (raw + formatted + currency + VAT-deductible flag), mileage, registration date/year, fuel type, power (kW and hp), transmission, body type, drivetrain, doors, seats, previous owners, colour, condition, emission class, CO₂ emissions, fuel consumption, warranty, accident history, full service history, and a flattened equipment list
- Includes the dealer identity block — dealer name, ID, profile URL, and rating — so results double as a dealer-lead source, not just a price feed
- Filter by storefront and/or vehicle type, or leave both blank to cover everything
- Supports resuming a large run that stopped early, without re-paying for records you already have

***

### Who Uses AutoScout24 Data?

- **Cross-border used-car buyers and arbitrage traders** — compare the same model's price across German, French, Italian, and Spanish storefronts in one dataset
- **Dealers and inventory managers** — benchmark competitor pricing and stock levels across their region
- **Residual-value and pricing-model teams** — build a reference price surface from real, current listings rather than a single-country sample
- **Lead-generation and dealer-outreach tools** — the dealer identity + rating block turns listings into a prospect list
- **Market researchers and data journalists** — track EV adoption, price trends, or inventory mix across European used-vehicle markets

***

### Input

```json
{
  "maxItems": 100,
  "countries": ["de", "fr"],
  "vehicleTypes": ["C"]
}
```

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `maxItems` | integer | `10` | **Required.** Maximum number of records to return. |
| `countries` | array of strings | all nine | Storefronts to crawl: `com` (pan-European), `de`, `at`, `it`, `nl`, `be`, `fr`, `es`, `lu`. Leave empty for all. |
| `vehicleTypes` | array of strings | both | Vehicle categories to crawl: `C` (Cars) or `B` (Motorcycles). Leave empty for both. |

***

### Output Fields

```json
{
  "listing_guid": "d41074dd-68e7-4548-8b40-7d8b92e42c47",
  "url": "https://www.autoscout24.de/angebote/aeon-sonstige-aeon-motor-cobra-400-...",
  "country": "de",
  "title": "Aeon Sonstige",
  "make": "Aeon",
  "model": "Sonstige",
  "version": "Aeon Motor Cobra 400 / 16.000 km / Automatik",
  "price": 2790,
  "price_formatted": "€ 2.790",
  "price_currency": "EUR",
  "vat_deductible": false,
  "price_label": "unknown",
  "mileage_km": 16000,
  "first_registration": "12/2016",
  "year": 2016,
  "fuel_type": "Benzin",
  "power_kw": 14,
  "power_hp": 19,
  "transmission": "Automatik",
  "body_type": "Quad/ATV",
  "drivetrain": null,
  "doors": null,
  "seats": null,
  "previous_owners": 2,
  "colour": "Weiß",
  "condition": "Gebraucht",
  "emission_class": null,
  "co2_emissions_gkm": null,
  "consumption_l100km": null,
  "warranty_months": null,
  "accident_free": true,
  "full_service_history": null,
  "equipment": [],
  "seller_type": "Dealer",
  "dealer_name": "Konsti Autoankauf",
  "dealer_id": "61875539",
  "dealer_url": "https://www.autoscout24.de/haendler/konsti-autoankauf/ueber-uns",
  "dealer_rating": null,
  "location_zip": "70178",
  "location_city": "Stuttgart",
  "location_country": "DE",
  "image_count": 8,
  "thumbnail_url": "https://prod.pictures.autoscout24.net/listing-images/...",
  "listed_since": "2026-07-13T11:02:14.581Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `listing_guid` | string | AutoScout24's internal listing identifier |
| `url` | string | Direct link to the listing on its source storefront |
| `country` | string | Storefront the listing was harvested from (`com`, `de`, `at`, …) |
| `title` | string | Make + model + variant |
| `make` | string | Vehicle make |
| `model` | string | Vehicle model |
| `version` | string | Full trim/variant text as listed by the seller |
| `price` | number | Listing price, numeric |
| `price_formatted` | string | Listing price as displayed (with currency symbol) |
| `price_currency` | string | ISO currency code for the storefront |
| `vat_deductible` | boolean | Whether VAT is deductible on this listing |
| `price_label` | string | AutoScout24's price-vs-market rating, where shown |
| `mileage_km` | number | Odometer reading in kilometres |
| `first_registration` | string | First registration date, as displayed (MM/YYYY) |
| `year` | number | First registration year |
| `fuel_type` | string | Fuel type |
| `power_kw` | number | Engine power in kW |
| `power_hp` | number | Engine power in hp |
| `transmission` | string | Transmission type |
| `body_type` | string | Body style |
| `drivetrain` | string | Drivetrain type, where available |
| `doors` | number | Number of doors, where applicable |
| `seats` | number | Number of seats |
| `previous_owners` | number | Number of previous owners, where disclosed |
| `colour` | string | Exterior colour |
| `condition` | string | Used / new / demonstration, per the source listing |
| `emission_class` | string | Emission class, where disclosed |
| `co2_emissions_gkm` | number | CO₂ emissions in g/km, where disclosed |
| `consumption_l100km` | number | Fuel consumption in l/100km, where disclosed |
| `warranty_months` | number | Remaining warranty in months, where disclosed |
| `accident_free` | boolean | Whether the vehicle is reported accident-free |
| `full_service_history` | boolean | Whether a full service history is reported |
| `equipment` | array | Equipment/features list |
| `seller_type` | string | `Dealer` or `Private` |
| `dealer_name` | string | Dealer company name |
| `dealer_id` | string | AutoScout24 dealer identifier |
| `dealer_url` | string | Link to the dealer's profile page |
| `dealer_rating` | number | Dealer star rating, where available |
| `location_zip` | string | Listing location postal code |
| `location_city` | string | Listing location city |
| `location_country` | string | Listing location country code |
| `image_count` | number | Number of photos on the listing |
| `thumbnail_url` | string | Primary listing image URL |
| `listed_since` | string | ISO-8601 timestamp of when the listing first went live |

***

### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### FAQ

#### How do I scrape AutoScout24 listings?

Set `maxItems` and, optionally, `countries` and `vehicleTypes` — leave both blank to cover every storefront and both Cars and Motorcycles. Run the actor; it returns one record per listing.

#### Will this actually give me every listing that matches, or just the first page?

Every listing within your chosen scope, up to `maxItems`. Unlike a plain search-URL scraper, this actor doesn't stop at AutoScout24's normal per-search result cap — it keeps narrowing its own queries automatically until it has walked the whole scope you asked for.

#### Can I get just one country or just motorcycles?

Yes. Set `countries` to any subset of `com`, `de`, `at`, `it`, `nl`, `be`, `fr`, `es`, `lu`, and `vehicleTypes` to `C`, `B`, or both.

#### What currency are prices in?

Whatever the source storefront quotes — `price_currency` tells you which. Most storefronts price in EUR; `.com` prices in GBP.

#### How much does this cost to run?

Pay-per-event pricing — you pay per listing record returned. Exact per-event pricing is shown on the actor's Apify page before you run.

***

### Why Use This Scraper?

- **Full inventory, not a truncated search page** — the only listed feature that structurally distinguishes this actor from the rest of the AutoScout24-scraper field
- **All nine storefronts, one schema** — currency, VAT-deductible flag, and emission class normalised across countries so you can compare directly
- **Dealer identity included** — turns a price feed into a usable lead list
- **Resumable** — a large full-inventory pull can pick up where it left off without duplicate charges

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

## `maxItems` (type: `integer`):

Maximum number of records to scrape

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

Country storefronts to crawl. Leave empty for all nine.

## `vehicleTypes` (type: `array`):

Vehicle categories to crawl. Leave empty for all.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/autoscout24-europe-used-car-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/autoscout24-europe-used-car-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}' |
apify call jungle_synthesizer/autoscout24-europe-used-car-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/autoscout24-europe-used-car-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/MO17fpAstLP3dt2Yl/builds/x34scrwychdbLadZ9/openapi.json
