# AutoScout24 Scraper (`silentflow/autoscout24-scraper`) Actor

Extract used and new vehicle listings from autoscout24.com across Europe with prices, mileage, specs, full descriptions, dealer info, and high-res images. Proxies included.

- **URL**: https://apify.com/silentflow/autoscout24-scraper.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 results

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 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 AutoScout24 into a structured database covering 8 filterable country markets plus the full European catalogue. Pay $2 per 1,000 vehicles, 50+ fields per car, no login.**

### How it works

![How it works](https://api.apify.com/v2/key-value-stores/MjzaXuf4cdtburaFQ/records/how-it-works-v1.png)

### ✨ Why use this AutoScout24 scraper

Tired of paying a monthly subscription for a scraper you only run a few times a quarter? Frustrated when one scraper only handles one country, so a pan-European catalogue means stitching together five different runs? Disappointed when the output stops at the grid fields and skips the full description, equipment list, dealer phones, and GPS coordinates you actually need?

- 💰 **Pay $2 per 1,000 listings, never per month.** Pricing is pay-per-event. You are charged only for vehicles returned to your dataset. Residential proxies are included in the per-result price. No start fee. No compute fee. No subscription.
- 🌍 **8 filterable country markets, 17 TLDs accepted in URL mode.** 7 markets join into a single .com query (Germany, France, Italy, Spain, Belgium, Netherlands, Austria), Luxembourg has its own 8,000-listing local catalogue on .lu. URL mode also accepts the localised UIs on .de, .fr, .it, .es, .be, .nl, .at, .pl, .lu, .cz, .hu, .se, .ro, .bg, .hr, and .ru.
- 🔎 **One input field accepts everything.** Search URLs and individual listing URLs are auto-classified. Mix them freely in the same run. Filters from the URL (sort, make, model, year range, mileage range, fuel, transmission, body type, equipment, radius, postal code) are preserved.
- 📦 **50+ structured fields per vehicle.** Price, mileage, year, fuel type, transmission, body color, paint type, seats, doors, HSN/TSN code, license plate (where exposed), production date, usage state, full seller description, all photos, dealer phones, dealer company name, latitude, longitude, and the AutoScout24 listing ID for cross-reference.
- 🚦 **Auto-pagination, exact maxItems delivery.** Set `maxItems` to 500 and the scraper returns 500 unique listings, automatically paginating through as many search pages as needed. Listings duplicated by the site's boost-ranking are deduplicated across pages by listing ID.
- ⚡ **Direct connection by default for fast runs.** The actor connects directly without proxy by default, which keeps run time short and cost low. Toggle `useResidentialProxy` to true if you ever need extra resilience on very large volumes.

### 🎯 Use cases for AutoScout24 vehicle data

AI engineers, dealers, pricing analysts, and lead-gen teams use AutoScout24 data for these specific scenarios.

| Team | What they build with AutoScout24 data |
|------|---------------------------------------|
| **Used-car dealers** | Benchmark inventory pricing against the live German, French, and Italian markets, refreshed daily. Detect under-priced opportunities to acquire stock. |
| **Pricing intelligence** | Track price drops, depreciation curves, and stock turnover by make, model, fuel type, and country. Quantify "fair market" prices using thousands of comparable listings. |
| **Auto comparators** | Aggregate the AutoScout24 catalogue into a single search experience for end users without scraping the site themselves. |
| **Insurance and finance** | Feed real listings into vehicle valuation models, loan-to-value calculations, and total-loss settlement estimates. |
| **Lead generation** | Build dealer outreach lists across the EU with verified phone numbers, company names, and GPS coordinates. Map dealer activity by region. |
| **Market researchers** | Study EV adoption rates by country, mileage distributions, pricing power per segment, and how the used-car market evolves quarter over quarter. |
| **Automotive content sites** | Generate fresh data for car review articles, "best deals" roundups, and market reports without manual data entry. |

### 📥 Input parameters

#### Search URLs

| Parameter | Type | Description |
|-----------|------|-------------|
| `searchUrls` | array of objects | AutoScout24 URLs to scrape. Supports search pages (e.g. `https://www.autoscout24.com/lst/porsche/911?cy=D`) and direct listing pages (e.g. `https://www.autoscout24.de/angebote/bmw-m5-...uuid`). Auto-classified, mix both freely. Accepts any of the 10 country TLDs. |

#### Search filters (used only when `searchUrls` is empty)

| Parameter | Type | Description |
|-----------|------|-------------|
| `make` | string | Vehicle make. Example: `Porsche`, `BMW`, `Tesla`. |
| `model` | string | Vehicle model. Example: `911`, `M5`, `Model 3`. |
| `priceMax` | integer | Upper price bound in EUR. |
| `countries` | array | AutoScout24 country codes (`D` Germany, `F` France, `I` Italy, `E` Spain, `B` Belgium, `NL` Netherlands, `A` Austria, `PL` Poland). Multi-select. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxItems` | integer | 1000 | Maximum unique listings to save. Auto-pagination stops at this number. Set to a low value (e.g. 50) for fast test runs. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `useResidentialProxy` | boolean | false | Route requests through a residential proxy. Disabled by default for cost and speed. Enable only if you observe blocks on very large volumes. |
| `debugMode` | boolean | false | Verbose logging. |

### 📊 Output data

Each scraped listing produces one flat JSON object with 50+ fields. Example for a Porsche 911 Carrera 4 listing on the German site:

```json
{
  "listingId": "0fa8fd23-1303-421f-828a-e0c786b7b778",
  "url": "https://www.autoscout24.de/angebote/porsche-911-carrera-4-coupe-gasoline-black-0fa8fd23-1303-421f-828a-e0c786b7b778",
  "scrapedAt": "2026-05-15T12:00:00Z",
  "title": "Porsche 911 Carrera 4",
  "subtitle": "Carrera 4 Coupe",
  "make": "Porsche",
  "model": "911",
  "modelGroup": "911",
  "variant": "Carrera 4",
  "price": 29900,
  "priceCurrency": "EUR",
  "priceFormatted": "€ 29,900",
  "isConditionalPrice": false,
  "vatDeductible": false,
  "category": "used",
  "bodyType": "Coupe",
  "firstRegistration": "03/2001",
  "year": 2001,
  "mileage": 131222,
  "transmission": "Automatic",
  "fuel": "Gasoline",
  "engineSize": 3596,
  "color": "Black",
  "paintType": "Metallic",
  "seats": 4,
  "doors": "2",
  "hsnTsn": "0583 ABC",
  "usageState": "Used",
  "productionDate": "2001-01-01",
  "description": "Beautiful 911 Carrera 4 in excellent condition. Full service history, two owners. Recently serviced.",
  "images": [
    "https://prod.pictures.autoscout24.net/listing-images/0fa8fd23-...-1.jpg",
    "https://prod.pictures.autoscout24.net/listing-images/0fa8fd23-...-2.jpg"
  ],
  "hasThreeSixty": false,
  "location": {
    "countryCode": "DE",
    "zip": "25421",
    "city": "Pinneberg",
    "street": "Elmshorner Str. 146",
    "latitude": 53.6755,
    "longitude": 9.79401
  },
  "seller": {
    "type": "Dealer",
    "id": "46992491",
    "companyName": "H&S Automobile Hamburg GmbH",
    "contactName": "Sohrab Safi",
    "logo": "https://prod.pictures.autoscout24.net/sellers/46992491-big.jpg",
    "phones": [
      "+49 (0)176 - 22578171"
    ]
  },
  "firstSeenAt": "2026-04-18T09:14:00+02:00"
}
````

### 🗂️ Data fields

#### Identity and pricing

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | string | AutoScout24 internal UUID (stable across crawls) |
| `url` | string | Canonical URL of the listing on the source country site |
| `title` | string | Make, model, and variant joined |
| `subtitle` | string | Extended variant description |
| `price` | number | Numeric price as integer |
| `priceCurrency` | string | ISO currency code (EUR, GBP, USD) |
| `priceFormatted` | string | Original price string as shown on AutoScout24 |
| `isConditionalPrice` | bool | Price depends on export, leasing, financing |
| `vatDeductible` | bool | VAT can be reclaimed by businesses |
| `category` | string | `used`, `new`, `demo`, `oldtimer`, `employees-car` |

#### Vehicle specifications

| Field | Type | Description |
|-------|------|-------------|
| `make`, `model`, `modelGroup`, `variant` | string | Make and model hierarchy |
| `bodyType` | string | Sedan, Coupe, SUV, Wagon, Van, Convertible, etc. |
| `firstRegistration` | string | Original registration date in MM/YYYY format |
| `year` | number | 4-digit year extracted from `firstRegistration` |
| `mileage` | number | Kilometres on the odometer |
| `transmission` | string | Manual, Automatic, Semi-automatic |
| `fuel` | string | Gasoline, Diesel, Electric, Hybrid, LPG, CNG |
| `engineSize` | number | Engine displacement in cc |
| `color`, `paintType` | string | Body color and paint finish |
| `seats`, `doors` | number, string | Cabin layout |
| `hsnTsn` | string | German vehicle type code (HSN-TSN), useful for VIN and tax queries |
| `productionDate` | string | Manufacturing date when exposed by the seller |
| `weight` | number | Empty weight in kg when exposed |

#### Media and description

| Field | Type | Description |
|-------|------|-------------|
| `description` | string | Free-text description written by the seller |
| `images` | array | High-resolution image URLs in display order |
| `hasThreeSixty` | bool | 360° tour available |
| `youTubeLink` | string | Linked video walk-around if seller provided one |

#### Location

| Field | Type | Description |
|-------|------|-------------|
| `location.countryCode` | string | ISO 3166-1 alpha-2 country code (DE, FR, IT, ES, BE, NL, AT, PL, LU) |
| `location.zip`, `location.city`, `location.street` | string | Full postal address of the dealer |
| `location.latitude`, `location.longitude` | number | GPS coordinates (WGS-84) when exposed |

#### Seller

| Field | Type | Description |
|-------|------|-------------|
| `seller.type` | string | `Dealer` or `Private` |
| `seller.id` | string | AutoScout24 seller identifier (stable across listings) |
| `seller.companyName`, `seller.contactName` | string | Dealer company and contact person |
| `seller.logo` | string | Dealer logo URL |
| `seller.phones` | array | Phone numbers in international format with country code |

### 🚀 Examples

Working input examples copied directly from real production runs.

#### Get the latest Porsche 911 listings in Germany

```json
{
  "searchUrls": [
    { "url": "https://www.autoscout24.com/lst/porsche/911?atype=C&cy=D&sort=age&desc=1" }
  ],
  "maxItems": 100
}
```

#### Build a pan-European Tesla Model 3 catalogue

```json
{
  "make": "Tesla",
  "model": "Model 3",
  "countries": ["D", "F", "I", "E", "B", "NL"],
  "maxItems": 500
}
```

#### Track used BMW prices under EUR 20,000 in France

```json
{
  "make": "BMW",
  "priceMax": 20000,
  "countries": ["F"],
  "maxItems": 1000
}
```

#### Enrich specific listings you already have

```json
{
  "searchUrls": [
    { "url": "https://www.autoscout24.com/offers/porsche-911-carrera-4-coupe-gasoline-black-0fa8fd23-1303-421f-828a-e0c786b7b778" },
    { "url": "https://www.autoscout24.de/angebote/audi-rs6-avant-2024-gray-abc12345-6789-..." }
  ],
  "maxItems": 100
}
```

#### Multiple searches deduplicated in one run

```json
{
  "searchUrls": [
    { "url": "https://www.autoscout24.com/lst/audi/rs6?cy=D" },
    { "url": "https://www.autoscout24.com/lst/bmw/m5?cy=D" }
  ],
  "maxItems": 200
}
```

### 💻 Integrations

#### Python (Apify client)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("autoscout24-scraper").call(run_input={
    "searchUrls": [{"url": "https://www.autoscout24.com/lst/porsche/911?cy=D"}],
    "maxItems": 200,
})

for vehicle in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(vehicle["make"], vehicle["model"], vehicle["price"], vehicle["location"]["city"])
```

#### JavaScript (Apify client)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('autoscout24-scraper').call({
    searchUrls: [{ url: 'https://www.autoscout24.com/lst/porsche/911?cy=D' }],
    maxItems: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const v of items) {
    console.log(v.make, v.model, v.price, v.location.city);
}
```

#### Feed AutoScout24 listings into a pricing model

```python
import pandas as pd
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("autoscout24-scraper").call(run_input={
    "make": "Tesla",
    "model": "Model 3",
    "countries": ["D", "F", "I", "E"],
    "maxItems": 1000,
})

df = pd.DataFrame(list(client.dataset(run["defaultDatasetId"]).iterate_items()))
print(df.groupby("location.countryCode")["price"].agg(["mean", "median", "count"]))
```

### 📈 Performance benchmarks

Measured on 2026-05-15 against `autoscout24.com` with the default direct-connection mode (no proxy).

| Run size | Wall-clock duration | Run cost on your Apify account |
|----------|--------------------|--------------------------------|
| 50 listings | 6 seconds | $0.0005 |
| 200 listings | 12 seconds | $0.0018 |
| 500 listings | 89 seconds | $0.0072 |
| 1,000 listings | 135 seconds (capped at 605 unique items) | $0.0096 |

The 1,000-item run capped at 605 because the chosen Porsche 911 search only has that many unique listings in Germany at the moment. AutoScout24 boosts certain ads across multiple pages; the scraper deduplicates by listing ID so you get unique vehicles, not duplicates.

**Speed factors:** AutoScout24 responds in under 1 second per request from European Apify regions. The scraper runs 10 parallel workers by default. A 200-listing run reads about 34 MB of HTML across pages, which is why duration scales sub-linearly with `maxItems`.

### 💡 Tips for best results

- **Paste the URL straight from your browser.** Build the exact filter set on autoscout24.com (or .de, .fr, .it, etc.), copy the URL, paste it into `searchUrls`. Every URL filter the site supports is preserved (sort, year range, mileage range, fuel type, transmission, body type, equipment, radius from postal code, dealer-only or private-only, and more).
- **Combine multiple search URLs in one run.** Run several queries together to get a single deduplicated dataset. The scraper drops duplicate listings by ID across all search URLs.
- **For large markets, segment by year or price.** Germany alone has more than 800,000 listings on a given day. To go deeper than a single search returns, split into several searches by year range or price band, then run them together.
- **Set `maxItems` to your real cap.** Pagination stops automatically when the cap is reached, so a low cap means fast runs and predictable cost. Need 50 listings? Set `maxItems: 50`.
- **GPS coordinates are not always present.** AutoScout24 exposes latitude and longitude for most dealers but some private sellers and a few dealers omit them. The fields are optional in the output.
- **Use the `.de`, `.fr`, `.it` country sites directly.** If you mostly care about one country, paste that country's site URL. The listing URLs in the output preserve the original country TLD.

### ❓ Frequently asked questions

#### Do I need a login or an AutoScout24 account?

No. The AutoScout24 Scraper reads public listing pages only. There is no login, no API key, and nothing to set up. Paste a URL or set filters, click Start, and the data flows to your dataset.

#### Which AutoScout24 country sites does the scraper support?

URL mode accepts all 17 sites in AutoScout24's country selector: .com, .de, .fr, .it, .es, .be, .nl, .at, .pl, .lu, .cz, .hu, .se, .ro, .bg, .hr, .ru. The scraper auto-detects the TLD and preserves it in the output URL.

The Countries dropdown exposes 8 real country filters (Germany, France, Italy, Spain, Belgium, Netherlands, Austria, Luxembourg). The other 9 country sites (.pl, .cz, .hu, .se, .ro, .bg, .hr, .ru) are localised interfaces that serve the same European catalogue rather than country-specific listings, so they are not shown as filters; paste their URL directly via Search URLs if you want to scrape them in their original language interface.

#### Can I scrape multiple countries in one run?

Yes, two ways. Either paste an autoscout24.com search URL with multiple countries in the `cy=` parameter, for example `cy=D,F,I,E`. Or use filter mode with the `countries` array set to `["D", "F", "I", "E"]`. Both produce a single deduplicated dataset combining all markets.

#### How much does each run cost?

Pricing is $0.002 per result, equal to $2 per 1,000 vehicles returned. There is no monthly subscription, no actor-start fee, and no separate proxy charge. A 200-listing test run costs $0.40; a 1,000-listing run costs $2.

#### What if the scraper hits a snag on a very large run?

The actor connects directly without proxy by default for the fastest and cheapest runs. If you observe any reliability issue on very large volumes, set `useResidentialProxy: true` and residential proxies will rotate automatically. Residential proxies are included in the per-result price, no separate proxy fee.

#### What is the difference between a search URL and a listing URL?

A search URL starts with `/lst/...` (on all country sites) and returns a paginated grid of vehicles matching filters. A listing URL is a single vehicle ad: `/offers/...` on .com, `/angebote/...` on .de, `/annonces/...` on .fr, with equivalent localised paths on other country sites. You can paste either, or both, in `searchUrls`. The scraper auto-detects the type and routes each URL to the correct pipeline.

#### How many fields per vehicle does the scraper return?

The output contains 50+ structured fields per vehicle, including identity (listingId, url), pricing (price, priceCurrency, priceFormatted, isConditionalPrice, vatDeductible, category), specifications (make, model, modelGroup, variant, bodyType, firstRegistration, year, mileage, transmission, fuel, engineSize, color, paintType, seats, doors, hsnTsn, productionDate, weight, usageState), media (description, images, hasThreeSixty, youTubeLink), location (countryCode, zip, city, street, latitude, longitude), and seller (type, id, companyName, contactName, logo, phones).

#### Are dealer phone numbers included?

Yes. Each listing's `seller.phones` array contains every phone number the dealer published, formatted with country code (for example `+49 (0)176 - 22578171`). Private sellers rarely expose phone numbers; for them the array is typically empty.

#### Are GPS coordinates included?

Yes for most dealer listings. The `location.latitude` and `location.longitude` fields contain WGS-84 GPS coordinates when AutoScout24 exposes them. Coverage is roughly 90% for professional dealers, lower for private sellers.

#### Can I scrape only new cars, or only used cars?

Yes. Use the `category` filter via the URL (`ustate=N` for new, `ustate=U` for used) or filter the output dataset on the `category` field after scraping. The field values are `used`, `new`, `demo`, `oldtimer`, and `employees-car`.

#### Can I limit the output size?

Yes, set `maxItems`. The default is 1000. Pagination stops automatically when the cap is reached, even if more listings exist for your search.

#### Can I run this on a schedule?

Yes. Schedule the actor in the Apify Console to run daily, weekly, or any cron expression. Combine with Apify webhooks or the Apify API to push fresh AutoScout24 data into your data warehouse, CRM, or pricing model.

#### What format does the scraper output?

JSON by default. Apify also exports the dataset to CSV, Excel, XML, RSS, and HTML formats from the Run page or via the dataset API, no additional configuration needed.

#### How fresh is the data?

The data is real-time. Every run fetches the current state of AutoScout24 listings at request time. The `scrapedAt` field on each row is an RFC3339 timestamp of when that specific listing was captured. Run on a schedule for time-series tracking.

### 📬 Support

Click "Try for free" on the Apify Store page to launch a free run with the prefilled Porsche 911 search input. Every Apify account gets free credits to test the scraper end-to-end before paying for anything.

# Actor input Schema

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

URLs from autoscout24.com. Supports search pages (e.g. `/lst?...`) and direct listing pages (e.g. `/offers/...`).

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

Vehicle make, e.g. "Porsche".

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

Vehicle model, e.g. "911".

## `priceMax` (type: `integer`):

Upper price bound.

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

Restrict the search to specific markets. The first 7 (Germany to Austria) are combined into one autoscout24.com query via the cy= filter. Luxembourg is scraped from autoscout24.lu, which has its own 8,000-listing local catalogue. Other AutoScout24 country sites (.pl, .cz, .hu, .se, .ro, .bg, .hr, .ru) are localised interfaces serving the same European catalogue and are not useful filters; paste their URL directly via Search URLs if you want their language interface.

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

Cap on total listings saved. Pagination auto-stops when this is reached.

## `useResidentialProxy` (type: `boolean`):

Route requests through a residential proxy. Disabled by default because autoscout24.com has no active anti-bot and direct connections are faster. Enable only if you observe blocks on very large runs.

## `debugMode` (type: `boolean`):

Enable verbose \[DEBUG] logs.

## Actor input object example

```json
{
  "searchUrls": [
    {
      "url": "https://www.autoscout24.com/lst/porsche/911?atype=C&cy=D&desc=0&sort=standard"
    }
  ],
  "maxItems": 1000,
  "useResidentialProxy": false,
  "debugMode": false
}
```

# Actor output Schema

## `json` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `excel` (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 = {
    "searchUrls": [
        {
            "url": "https://www.autoscout24.com/lst/porsche/911?atype=C&cy=D&desc=0&sort=standard"
        }
    ],
    "maxItems": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/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": [{ "url": "https://www.autoscout24.com/lst/porsche/911?atype=C&cy=D&desc=0&sort=standard" }],
    "maxItems": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/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": [
    {
      "url": "https://www.autoscout24.com/lst/porsche/911?atype=C&cy=D&desc=0&sort=standard"
    }
  ],
  "maxItems": 1000
}' |
apify call silentflow/autoscout24-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoScout24 Scraper",
        "description": "Extract used and new vehicle listings from autoscout24.com across Europe with prices, mileage, specs, full descriptions, dealer info, and high-res images. Proxies included.",
        "version": "1.0",
        "x-build-id": "H6shvigsnQ5fcifYV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silentflow~autoscout24-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silentflow-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/silentflow~autoscout24-scraper/runs": {
            "post": {
                "operationId": "runs-sync-silentflow-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/silentflow~autoscout24-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-silentflow-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": "AutoScout24 URLs",
                        "type": "array",
                        "description": "URLs from autoscout24.com. Supports search pages (e.g. `/lst?...`) and direct listing pages (e.g. `/offers/...`).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "make": {
                        "title": "Make",
                        "type": "string",
                        "description": "Vehicle make, e.g. \"Porsche\"."
                    },
                    "model": {
                        "title": "Model",
                        "type": "string",
                        "description": "Vehicle model, e.g. \"911\"."
                    },
                    "priceMax": {
                        "title": "Maximum price (EUR)",
                        "minimum": 0,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Upper price bound."
                    },
                    "countries": {
                        "title": "Countries",
                        "type": "array",
                        "description": "Restrict the search to specific markets. The first 7 (Germany to Austria) are combined into one autoscout24.com query via the cy= filter. Luxembourg is scraped from autoscout24.lu, which has its own 8,000-listing local catalogue. Other AutoScout24 country sites (.pl, .cz, .hu, .se, .ro, .bg, .hr, .ru) are localised interfaces serving the same European catalogue and are not useful filters; paste their URL directly via Search URLs if you want their language interface.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "D",
                                "F",
                                "I",
                                "E",
                                "B",
                                "NL",
                                "A",
                                "LU"
                            ],
                            "enumTitles": [
                                "Germany",
                                "France",
                                "Italy",
                                "Spain",
                                "Belgium",
                                "Netherlands",
                                "Austria",
                                "Luxembourg"
                            ]
                        }
                    },
                    "maxItems": {
                        "title": "Maximum number of items",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Cap on total listings saved. Pagination auto-stops when this is reached.",
                        "default": 1000
                    },
                    "useResidentialProxy": {
                        "title": "Use residential proxy",
                        "type": "boolean",
                        "description": "Route requests through a residential proxy. Disabled by default because autoscout24.com has no active anti-bot and direct connections are faster. Enable only if you observe blocks on very large runs.",
                        "default": false
                    },
                    "debugMode": {
                        "title": "Debug logging",
                        "type": "boolean",
                        "description": "Enable verbose [DEBUG] logs.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
