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

Scrape car listings from AutoScout24 with full filter support. Extract makes, models, prices, mileage, seller info, and more.

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

## Pricing

from $1.00 / 1,000 cars

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

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

## What's an Apify Actor?

Actors are 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 Scraper** creates a structured dataset of vehicle listings collected from [AutoScout24](https://www.autoscout24.de), Europe's largest automotive marketplace. Each dataset item represents one vehicle listing and can include make, model, price, mileage, first registration, fuel, transmission, engine specs, location, seller details, and media. Query the source using full search URLs or make/model search queries, narrow results with 40+ filter parameters, control the result limit with `maxItems`, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or XML.

### Dataset at a glance

| Property | Value |
|---|---|
| Source | autoscout24.de (and other EU country portals) |
| Record unit | One vehicle listing |
| Input methods | Search URLs (`searchUrls`) or make/model queries (`searchQueries`) |
| Main identifiers | `listingId`, `url` |
| Delivery | Apify Dataset and API |
| Export formats | JSON, CSV, Excel, XML |
| Update model | Fresh records per Actor run |
| Pricing | $1 per 1,000 listings |

### Coverage and available records

The Actor collects vehicle listings from AutoScout24 across 19 supported European countries.

- **URL-based entry**: Pass full AutoScout24 search URLs in `searchUrls`. These take priority over `searchQueries`.
- **Query-based entry**: Pass make or model path segments in `searchQueries` (for example `audi`, `bmw 3er`, `mercedes-benz`). The Actor builds the search URL automatically.
- **Filtering**: 40+ filters are applied during pagination, including price, mileage, year, fuel, transmission, body type, color, location, seller type, emission class, engine displacement, seats, doors, and CO2.
- **Vehicle categories**: `atype` selects cars, motorcycles, or trucks; `ustate` selects new, used, or both.
- **Result limits**: `maxItems` caps total listings (`0` = unlimited); `maxPages` caps result pages per search (`0` = unlimited).

Known exclusions: seller contact details are returned only when the seller publishes them; each run captures page state at run time (no historical snapshots); the Actor does not follow outbound links to a dealer's own website.

### Data dictionary

Field names below match dataset record JSON properties exactly.

| Field | Type | Nullable | Description | Example |
|---|---:|---|---|---|
| `listingId` | string | No | AutoScout24 listing identifier; best stable deduplication key | `d92fb2a9-72a8-4b4a-a647-fdba919e9804` |
| `url` | string | No | Canonical listing URL | `https://www.autoscout24.de/angebote/...` |
| `make` | string | No | Vehicle make | `Audi` |
| `model` | string | No | Vehicle model | `A3` |
| `modelId` | number | Yes | AutoScout24 model identifier | `1624` |
| `offerType` | string | Yes | Offer type code (`U` = used, `N` = new) | `U` |
| `priceFormatted` | string | Yes | Price as displayed (locale-formatted) | `€ 18.480` |
| `priceRaw` | number | Yes | Numeric price | `18480` |
| `priceCurrency` | string | Yes | ISO currency code | `EUR` |
| `vatLabel` | string | Yes | VAT label (e.g. `inkl. MwSt.`) | `inkl. MwSt.` |
| `isConditionalPrice` | boolean | Yes | Whether the price is conditional | `false` |
| `mileageInKm` | string | Yes | Mileage as displayed | `72.288 km` |
| `firstRegistration` | string | Yes | First registration date | `05/2019` |
| `fuel` | string | Yes | Fuel type (locale text) | `Benzin` |
| `transmission` | string | Yes | Transmission type (locale text) | `Automatik` |
| `engineDisplacementInCCM` | string | Yes | Engine displacement as displayed | `1.498 cm³` |
| `powerKw` | number | Yes | Engine power in kW | `0` |
| `powerHp` | number | Yes | Engine power in HP | `0` |
| `isCurrentlyDamaged` | boolean | Yes | Whether the vehicle is marked damaged | `false` |
| `locationCity` | string | Yes | Listing city | `Ursensollen` |
| `locationZip` | string | Yes | Listing ZIP code | `92289` |
| `locationCountryCode` | string | Yes | ISO country code | `DE` |
| `distanceToSearchLocationInKm` | number | Yes | Distance from the search location | `0` |
| `sellerId` | string | Yes | Seller identifier | `8748486` |
| `sellerType` | string | Yes | Seller type (`Dealer` / `Private`) | `Dealer` |
| `sellerCompanyName` | string | Yes | Seller company name | `Fischer Automobile GmbH & Co. KG` |
| `sellerContactName` | string | Yes | Seller contact person | `Sales Team` |
| `sellerRating` | string | Yes | Seller rating as displayed | `4.5` |
| `imageUrl` | string | Yes | Primary listing image URL | `https://prod.pictures.autoscout24.net/...` |
| `images` | array | Yes | Gallery image URLs | `["..."]` |
| `hasVideo` | boolean | Yes | Whether the listing has a video | `false` |
| `appliedAdTier` | string | Yes | Listing ad tier (e.g. `T50`) | `T50` |
| `isOcs` | boolean | Yes | Whether the listing is an online car sale listing | `false` |
| `availableNow` | boolean | Yes | Whether the vehicle is immediately available | `true` |
| `searchResultType` | string | Yes | Result placement type (`Organic`, `Nfm`, ...) | `Organic` |

### Example dataset record

A representative record produced with the input below (`searchQueries: ["audi"]`, `maxItems: 3`, country `D`):

```json
{
  "listingId": "d92fb2a9-72a8-4b4a-a647-fdba919e9804",
  "url": "https://www.autoscout24.de/angebote/audi-a3-sportback-35-tfsi-benzin-schwarz-cat_ma9mo1624-d92fb2a9-72a8-4b4a-a647-fdba919e9804",
  "make": "Audi",
  "model": "A3",
  "modelId": 1624,
  "offerType": "U",
  "priceFormatted": "€ 18.480",
  "priceRaw": 18480,
  "priceCurrency": "EUR",
  "vatLabel": "inkl. MwSt.",
  "isConditionalPrice": false,
  "mileageInKm": "72.288 km",
  "firstRegistration": "",
  "fuel": "Benzin",
  "transmission": "Automatik",
  "engineDisplacementInCCM": "1.498 cm³",
  "powerKw": 0,
  "powerHp": 0,
  "isCurrentlyDamaged": false,
  "locationCity": "Ursensollen",
  "locationZip": "92289",
  "locationCountryCode": "DE",
  "distanceToSearchLocationInKm": 0,
  "sellerId": "8748486",
  "sellerType": "Dealer",
  "sellerCompanyName": "Fischer Automobile GmbH & Co. KG",
  "sellerContactName": "",
  "sellerRating": "4.5",
  "imageUrl": "https://prod.pictures.autoscout24.net/listing-images/...",
  "images": ["..."],
  "hasVideo": false,
  "appliedAdTier": "T50",
  "isOcs": false,
  "availableNow": true,
  "searchResultType": "Nfm"
}
```

### Query and input reference

The Actor accepts a rich set of optional filter parameters. All fields except the entry point are optional and use sensible defaults.

| Input | Type | Required | Default | Accepted values | Description |
|---|---|---|---|---|---|
| `searchUrls` | array | No | — | Full AutoScout24 search URLs | URL-based entry point; takes priority over `searchQueries` |
| `searchQueries` | array | No | `[]` | Make/model path segments (`audi`, `bmw 3er`) | Query-based entry point |
| `maxItems` | integer | No | `0` | `0` or a positive integer | Maximum listings to collect; `0` = unlimited |
| `maxPages` | integer | No | `0` | `0` or a positive integer | Maximum result pages per search; `0` = unlimited |
| `sort` | string | No | `standard` | `standard`, `price`, `mileage`, `age`, `power`, `first_registration` | Result sort order |
| `desc` | boolean | No | `false` | `true` / `false` | Sort in descending order |
| `ustate` | string | No | `N,U` | `N,U`, `N`, `U` | New, used, or both |
| `atype` | string | No | `C` | `C`, `B`, `T` | Cars, motorcycles, or trucks |
| `pricefrom` / `priceto` | integer | No | — | Any integer | Minimum / maximum price in EUR |
| `kmfrom` / `kmto` | integer | No | — | Any integer | Minimum / maximum mileage in km |
| `yearfrom` / `yearto` | integer | No | — | `1900`+ | Minimum / maximum first registration year |
| `powerfrom` / `powerto` | integer | No | — | Any integer | Minimum / maximum engine power |
| `powertype` | string | No | `kw` | `kw`, `hp` | Unit for power filters |
| `gear` | string | No | `""` | `A`, `M`, `S`, or comma combos | Transmission type |
| `fuel` | string | No | `""` | `B`, `D`, `E`, `L`, `C`, `2`, `3`, `O` | Fuel type |
| `body` | string | No | `""` | `L`, `K`, `U`, `M`, `C`, `G`, `V`, `R`, `O` | Body type |
| `color` | string | No | `""` | `B`, `G`, `R`, `W`, `S`, `Y`, `O`, `V`, `N`, `M` | Exterior color |
| `zip` | string | No | — | ZIP code or city name | Location filter |
| `zipr` | integer | No | `0` | Any integer | Search radius around ZIP/city in km |
| `city` | string | No | — | City name | Location-based search |
| `cy` | string | No | `D` | 19 country codes (`D`, `A`, `B`, `F`, ...) | Country filter |
| `custtype` | string | No | `""` | `D`, `H`, `D,H` | Seller type (private / dealer) |
| `ocs_listing` | string | No | `include` | `include`, `exclude` | Online car sale listings |
| `damaged_listing` | string | No | `exclude` | `exclude`, `include`, `only` | Damaged/repaired vehicles |
| `pricetype` | string | No | `public` | `public`, `private` | Price visibility type |
| `emissionclass` | string | No | `""` | `E1` … `E6D` | Emission class |
| `emissionsticker` | string | No | `""` | `1`, `2`, `3`, `4` | German emission sticker |
| `climatisation` | string | No | `""` | `A`, `B`, `C` | Air conditioning type |
| `interior` | string | No | `""` | `C`, `F`, `V`, `S`, `O` | Interior material |
| `consumptionfrom` / `consumptionto` | number | No | — | Any number | Fuel consumption range (l/100km) |
| `co2from` / `co2to` | integer | No | — | Any integer | CO2 emission range (g/km) |
| `weightfrom` / `weightto` | integer | No | — | Any integer | Weight range (kg) |
| `cylindersfrom` / `cylindersto` | integer | No | — | Any integer | Cylinder count range |
| `cubiccapacityfrom` / `cubiccapacityto` | integer | No | — | Any integer | Engine displacement range (ccm) |
| `seatsfrom` / `seatsto` | integer | No | — | Any integer | Seat count range |
| `doorsfrom` / `doorsto` | integer | No | — | Any integer | Door count range |
| `proxyConfiguration` | object | No | Apify residential proxy | Apify proxy groups or custom proxies | Residential proxies are recommended |

Minimal request:

```json
{ "searchQueries": ["audi"], "cy": "D" }
```

Advanced request:

```json
{
  "searchQueries": ["audi", "bmw 3er"],
  "maxItems": 500,
  "ustate": "U",
  "atype": "C",
  "pricefrom": 5000,
  "priceto": 40000,
  "cy": "D",
  "custtype": "D",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Retrieve the data through the API

1. Start the Actor with a JSON input (console or API).
2. Wait for the run to finish, or use a synchronous endpoint for an inline response.
3. Retrieve items from the run's default dataset.
4. Paginate or export the dataset.

Python example:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR-APIFY-TOKEN")

run = client.actor("datascrapers/autoscout24-scraper").call(run_input={
    "searchQueries": ["audi"],
    "maxItems": 100,
    "cy": "D",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["listingId"], item["make"], item["model"], item["priceRaw"])
```

Apify generates ready-to-run Python, JavaScript, and cURL examples on the Actor's API tab. Do not put a real API token in shared code or URLs.

### Data quality and record handling

- **Conditional fields**: Seller contact details and several spec fields appear only when the seller publishes them; missing values are returned as null or empty strings.
- **Source changes**: AutoScout24 page structure and values can change; unreadable fields are returned as null rather than fabricated.
- **Deduplication**: Each run appends fresh records; the Actor does not deduplicate across runs. Use `listingId` as the stable key and filter repeated runs against previously stored IDs.
- **Rate limits**: AutoScout24 rate-limits automated traffic. Residential proxies (enabled by default) and retry logic are used to maintain coverage.
- **Normalization**: Values are read from the listing and normalized to the field types in the data dictionary; locale-formatted values such as mileage and displacement are returned as displayed.

### Export and pipeline examples

| Destination | Recommended method | Typical use |
|---|---|---|
| PostgreSQL / Supabase | Dataset API poll or webhook consumer | Store vehicle inventory alongside pricing history |
| Google Sheets | Apify Google Sheets integration | Share market snapshots with sales teams |
| CRM (HubSpot, Salesforce) | Webhook on run completion | Push new dealer leads into outreach pipelines |
| S3 / cloud storage | Scheduled export via Apify scheduler | Archival of market snapshots |

### Pricing and cost examples

The Actor uses pay-per-event pricing, billed per vehicle listing:

| Event | Trigger | Rate |
|---|---|---|
| Cars | Every listing pushed to the dataset | $1 per 1,000 listings |

A one-time Actor start event of $0.00005 applies to each run (effectively $0).

| Listings | Estimated base cost |
|---:|---:|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |

Compute units consumed by the run are billed by your Apify plan. Estimates depend on the verified pricing model and the options selected for the run.

### Limitations and responsible data use

- The Actor collects publicly accessible vehicle listings from AutoScout24 only.
- Field availability depends on what AutoScout24 renders at run time; some values can be null or missing, and site changes can alter fields.
- The Actor does not provide historical snapshots unless you store them yourself.
- Large runs require residential proxies; without them, coverage may degrade due to rate limiting.
- You are responsible for compliance with AutoScout24's terms of service, applicable privacy law, and any contractual obligations before using the data.

### Dataset questions

#### What does one dataset item represent?

One vehicle listing from AutoScout24. All spec, pricing, seller, and media fields are nested inside that single listing record.

#### Which field should I use as a unique identifier?

`listingId` is the stable AutoScout24 listing identifier and the recommended deduplication key. `url` is a reasonable secondary key.

#### Are fields nullable or conditional?

Yes. Seller contact details and several spec fields appear only when the seller publishes them; missing values are returned as null or empty strings.

#### Can I retrieve the records as CSV or JSON?

Yes. The dataset can be exported as JSON, CSV, Excel, or XML from the Apify Console, and queried through the Dataset API.

#### Does the Actor return historical data?

No. Each run captures the state of the pages at run time. To track changes, schedule repeated runs and store the outputs yourself.

#### What counts as a billable result?

Each vehicle listing pushed to the dataset is one billable result, charged at $1 per 1,000 listings. Use `maxItems` or `maxPages` to control cost per run.

### Related datasets from Data Scrapers

- **[Cars.com Scraper](https://apify.com/datascrapers/cars-scraper)** — US-market vehicle listings that complement AutoScout24's European data for cross-market price comparison.
- **[RVShare Scraper](https://apify.com/datascrapers/rv-share-scraper)** — RV and vehicle rental listings for adjacent vehicle-market analysis.
- **[LinkedIn Company Scraper](https://apify.com/datascrapers/linkedin-company-scraper)** — Dealer company profiles that can be joined to `sellerCompanyName` for B2B lead enrichment.

### Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.

# Actor input Schema

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

Full AutoScout24 search URLs (e.g. https://www.autoscout24.de/lst/audi?city=Berlin\&priceto=40000). When provided, these take priority over searchQueries.

## `searchQueries` (type: `array`):

Car makes or models to search for. Enter as autoscout24 URL path segments. Examples: 'audi', 'bmw', 'volkswagen', 'bmw 1er' (BMW 1 Series), 'audi a4' (Audi A4), 'mercedes-benz' (Mercedes-Benz). Use hyphens for multi-word brands and / (space) for brand/model separation.

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

Maximum number of listings to scrape (0 = unlimited)

## `maxPages` (type: `integer`):

Maximum number of result pages to scrape per search (0 = unlimited)

## `sort` (type: `string`):

How to sort the results

## `desc` (type: `boolean`):

Sort in descending order

## `ustate` (type: `string`):

New, used, or both

## `atype` (type: `string`):

Vehicle category

## `pricefrom` (type: `integer`):

Filter by minimum price in EUR

## `priceto` (type: `integer`):

Filter by maximum price in EUR

## `kmfrom` (type: `integer`):

Filter by minimum mileage in kilometers

## `kmto` (type: `integer`):

Filter by maximum mileage in kilometers

## `yearfrom` (type: `integer`):

Filter by minimum first registration year

## `yearto` (type: `integer`):

Filter by maximum first registration year

## `powerfrom` (type: `integer`):

Filter by minimum engine power (unit depends on powertype setting)

## `powerto` (type: `integer`):

Filter by maximum engine power (unit depends on powertype setting)

## `powertype` (type: `string`):

Unit for power filter values

## `seatsfrom` (type: `integer`):

Filter by minimum number of seats

## `seatsto` (type: `integer`):

Filter by maximum number of seats

## `doorsfrom` (type: `integer`):

Filter by minimum number of doors

## `doorsto` (type: `integer`):

Filter by maximum number of doors

## `gear` (type: `string`):

Filter by transmission type (comma-separated codes)

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

Filter by fuel type (comma-separated codes)

## `body` (type: `string`):

Filter by body type (comma-separated codes)

## `color` (type: `string`):

Filter by exterior color (comma-separated codes)

## `zip` (type: `string`):

Filter by location (ZIP code or city name, e.g. 'Berlin' or '10115')

## `zipr` (type: `integer`):

Search radius around the ZIP/city in kilometers

## `city` (type: `string`):

City name for location-based search

## `cy` (type: `string`):

Filter by country code

## `custtype` (type: `string`):

Filter by seller type

## `ocs_listing` (type: `string`):

Include/exclude online car sale listings

## `damaged_listing` (type: `string`):

Include or exclude damaged/repaired vehicles

## `pricetype` (type: `string`):

Price visibility type

## `emissionclass` (type: `string`):

Filter by emission class (comma-separated codes)

## `emissionsticker` (type: `string`):

Filter by German emission sticker (Umweltplakette)

## `climatisation` (type: `string`):

Filter by air conditioning type (comma-separated codes)

## `interior` (type: `string`):

Filter by interior material type (comma-separated codes)

## `consumptionfrom` (type: `number`):

Filter by minimum fuel consumption

## `consumptionto` (type: `number`):

Filter by maximum fuel consumption

## `co2from` (type: `integer`):

Filter by minimum CO2 emissions

## `co2to` (type: `integer`):

Filter by maximum CO2 emissions

## `weightfrom` (type: `integer`):

Filter by minimum weight in kilograms

## `weightto` (type: `integer`):

Filter by maximum weight in kilograms

## `cylindersfrom` (type: `integer`):

Filter by minimum number of cylinders

## `cylindersto` (type: `integer`):

Filter by maximum number of cylinders

## `cubiccapacityfrom` (type: `integer`):

Filter by minimum engine displacement in ccm

## `cubiccapacityto` (type: `integer`):

Filter by maximum engine displacement in ccm

## `proxyConfiguration` (type: `object`):

Proxy settings for anti-bot protection

## Actor input object example

```json
{
  "searchUrls": [
    {
      "url": "https://www.autoscout24.de/lst/audi"
    }
  ],
  "searchQueries": [
    "audi",
    "bmw 3er"
  ],
  "maxItems": 0,
  "maxPages": 0,
  "sort": "standard",
  "desc": false,
  "ustate": "N,U",
  "atype": "C",
  "powertype": "kw",
  "gear": "",
  "fuel": "",
  "body": "",
  "color": "",
  "zipr": 0,
  "cy": "D",
  "custtype": "",
  "ocs_listing": "include",
  "damaged_listing": "exclude",
  "pricetype": "public",
  "emissionclass": "",
  "emissionsticker": "",
  "climatisation": "",
  "interior": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Dataset containing scraped car listings

# 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.de/lst/audi"
        }
    ],
    "searchQueries": [
        "audi",
        "bmw 3er"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascrapers/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.de/lst/audi" }],
    "searchQueries": [
        "audi",
        "bmw 3er",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("datascrapers/autoscout24-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 '{
  "searchUrls": [
    {
      "url": "https://www.autoscout24.de/lst/audi"
    }
  ],
  "searchQueries": [
    "audi",
    "bmw 3er"
  ]
}' |
apify call datascrapers/autoscout24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datascrapers/autoscout24-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/XozU8hRc0pSwal6dl/builds/WHpqdjs6TGWWBJO8l/openapi.json
