# AutoTrader UK Scraper (`solidcode/autotrader-co-uk-scraper`) Actor

\[💰 $0.8 / 1K] Extract used and new car listings from AutoTrader.co.uk — price, mileage, year, specs, dealer info, finance quotes, and high-res images. Search by postcode + radius or paste any AutoTrader URL.

- **URL**: https://apify.com/solidcode/autotrader-co-uk-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** E-commerce, Real estate, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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.

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

## AutoTrader UK Scraper

Pull live used and new car listings from AutoTrader.co.uk at scale — make, model, year, mileage, price, full spec sheet, dealer phone and email, finance quotes, and up to 50 high-resolution photos per car. Built for car-flipping dealers, finance-broker lead-gen agencies, used-market analysts, fleet buyers, and classified competitors who need fresh UK vehicle inventory data without wrestling with AutoTrader's HTML or losing rows to silent pagination caps.

### Why This Scraper?

- **Postcode-anchored radius search from 1 mile to nationwide** — 11 fixed radii (1, 5, 10, 15, 20, 30, 50, 75, 100, 200, Nationwide / 1500 miles) centred on any UK postcode covers everything from a single town to all 50 million-plus active listings nationwide.
- **8 sort modes** — Relevance, Price low to high, Price high to low, Year newest, Year oldest, Mileage low to high, Distance from postcode, and Recently listed. Surface low-mileage gems or freshly listed underpriced cars without post-processing.
- **Full enrichment per listing in one toggle** — `includeListingDetails: true` returns up to 50 full-resolution photos at 1024px, 100+ feature tags, full spec sheet (engine size, doors, seats, colour, previous owners, emission class), service history, dealer name, postcode, phone, email, and dealer star rating with review count.
- **Finance quotes on every listing** — monthly HP and PCP price, APR for both, plus AutoTrader's representative-example finance summary. Powers finance-broker lead generation and affordability-targeted shopping tools.
- **Verified dealer contacts** — trade-seller listings return advertiser name, full town and county location, postcode, phone number, email, dealer-link URL, overall review rating, and review count. Private-seller flag separates the two cleanly via `sellerType`.
- **7 fuel types and 11 body types with smart expansion** — Petrol, Diesel, Electric, Hybrid, Plug-in Hybrid (auto-expands to both petrol and diesel PHEV variants), LPG, Bi-Fuel; Hatchback, Saloon, Estate, SUV, Coupe, Convertible, MPV, Pickup, Van (auto-expands to all 5 commercial van sub-types), Camper, Limousine.
- **Direct paste-in of saved AutoTrader URLs** — drop any `/car-search?...` URL or individual `/car-details/<id>` URL into `startUrls` and the scraper replays the exact filters you saved in your browser, no need to re-pick filters in the input form.
- **No pagination ceiling fees** — pay only for the rows you receive. The scraper streams 25 listings per page until your `maxResults` cap is hit; the last page is kept whole even if it slightly overshoots.
- **Price indicator on every car** — AutoTrader's "Great price / Fair price / Higher price" tag is captured per listing so you can spot underpriced inventory at a glance.

### Use Cases

**Market Research**
- Track used-car price decay curves by make, model, and region.
- Map EV and Plug-in Hybrid uptake across UK postcodes.
- Build mileage-vs-price regressions to spot fair-market value bands.
- Monitor the rare-vehicle market (classics, supercars, RHD imports) over time.

**Dealer & Lead Generation**
- Build trade-seller supply lists with verified dealer name, phone, email, and postcode.
- Feed finance brokers a steady pipeline of buyers actively viewing financed inventory.
- Prospect classified-competitor sales teams with full dealer contact details.

**Competitive Intelligence**
- Track competitor classifieds — daily snapshots reveal stock turnover and ageing inventory.
- Alert on new high-value listings (e.g. any Porsche 911 under £50,000 within 100 miles).
- Benchmark your own dealership's pricing against the postcode-radius market.

**Inventory Sourcing**
- Flippers: surface underpriced cars by sorting `mileageAsc` with a tight `priceMax`.
- Fleet buyers: monitor specific year and mileage bands for ex-lease vehicles.
- Exporters: lock to nationwide radius to find rare RHD vehicles for shipment.

**Automotive Analytics**
- Used EV market analysis — battery-age vs price, regional charging-infra correlations.
- Regional pricing premium reports — same spec, different postcode, different price.
- Service-history premium quantification — full-history vs partial vs none.

**Personal Buying Research**
- Data-driven shopping with full price history, finance options, and feature comparison.
- Build your own filter that AutoTrader doesn't expose (e.g. "low mileage AND full service history AND under £15k AND within 50 miles").

### Getting Started

#### Postcode + radius (simplest)

```json
{
  "postcode": "M1 1AA",
  "radius": "30",
  "maxResults": 100
}
````

#### Make + model with price and year filter

```json
{
  "postcode": "EH1 1YZ",
  "radius": "50",
  "make": "BMW",
  "model": "3 Series",
  "yearMin": 2018,
  "priceMax": 30000,
  "sortBy": "mileageAsc",
  "maxResults": 250
}
```

#### Electric and Plug-in Hybrid with full enrichment

```json
{
  "postcode": "B1 1HH",
  "radius": "100",
  "fuelType": ["Electric", "Plug-in Hybrid"],
  "yearMin": 2020,
  "sortBy": "mileageAsc",
  "includeListingDetails": true,
  "maxResults": 200
}
```

#### Saved AutoTrader search URL

```json
{
  "startUrls": [
    { "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A1AA&radius=10&make=Tesla&model=Model+3" }
  ],
  "includeListingDetails": true,
  "maxResults": 100
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | array | `[]` | Paste AutoTrader.co.uk search-result URLs or individual car-detail URLs. Filters from the URL are auto-extracted; when present, the search-form fields below are ignored. |
| `postcode` | string | `"SW1A 1AA"` | UK postcode to anchor the radius search around (e.g. `M1 1AE`, `EH1 1YZ`). |
| `radius` | string | `"200"` | Search radius in miles around the postcode. Values: `1`, `5`, `10`, `15`, `20`, `30`, `50`, `75`, `100`, `200`, or `1500` for Nationwide. |

#### Vehicle Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `make` | string | `""` | Manufacturer name as shown on AutoTrader (e.g. `BMW`, `Volkswagen`, `Ford`). Empty for all makes. |
| `model` | string | `""` | Model name; must match the chosen Make (e.g. `3 Series`, `Golf`, `Focus`). |
| `bodyType` | array | `[]` | One or more of: Hatchback, Saloon, Estate, SUV, Coupe, Convertible, MPV, Pickup, Van, Camper, Limousine. `Van` auto-expands to 5 commercial van sub-types. |
| `fuelType` | array | `[]` | One or more of: Petrol, Diesel, Electric, Hybrid, Plug-in Hybrid, LPG, Bi-Fuel. `Plug-in Hybrid` auto-expands to both petrol and diesel PHEV variants. |
| `gearbox` | string | `"any"` | Transmission: `any`, `Manual`, or `Automatic`. |

#### Price, Year & Mileage

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `priceMin` | integer | `null` | Lower price bound in GBP. |
| `priceMax` | integer | `null` | Upper price bound in GBP. |
| `yearMin` | integer | `null` | Earliest registration year (e.g. `2018`). |
| `yearMax` | integer | `null` | Latest registration year. |
| `mileageMax` | integer | `null` | Maximum odometer reading in miles. |

#### Output

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sellerType` | string | `"any"` | Filter listings by seller: `any`, `trade` (dealer), or `private`. |
| `sortBy` | string | `"relevance"` | Result ordering: `relevance`, `priceAsc`, `priceDesc`, `yearDesc`, `yearAsc`, `mileageAsc`, `distance`, `datestamp` (Recently listed). |
| `includeListingDetails` | boolean | `true` | When enabled, every search-result row is enriched with the full listing page (specs, finance, dealer profile, all photos, service history, features). Disable for a faster run that only returns search-result fields. |
| `maxResults` | integer | `100` | Maximum number of listings to return per query or URL. Set to `0` for unlimited. The scraper stops requesting new pages once the cap is reached and keeps the final page whole. |

### Output

Every car listing is one flat dataset row. Fields populate based on the `includeListingDetails` toggle — search-only mode returns the Core Fields; enrichment mode adds Spec, Dealer, Photos, and Finance fields.

```json
{
  "advertId": "202504251717568",
  "make": "BMW",
  "model": "3 Series",
  "derivative": "320d M Sport Saloon 4dr Diesel Auto Euro 6 (s/s) (190 ps)",
  "trim": "320d M Sport Saloon 4dr Diesel Auto Euro 6 (s/s) (190 ps)",
  "title": "BMW 3 Series",
  "subTitle": "320d M Sport Saloon 4dr Diesel Auto Euro 6 (s/s) (190 ps)",
  "year": 2021,
  "registration": "21 reg",
  "mileage": 28450,
  "price": 22995,
  "priceFormatted": "£22,995",
  "currency": "GBP",
  "fuelType": "Diesel",
  "transmission": "Automatic",
  "gearbox": "Automatic",
  "bodyType": "Saloon",
  "doors": 4,
  "seats": 5,
  "engineSize": "2.0L",
  "exteriorColor": "Black",
  "colour": "Black",
  "previousOwners": 1,
  "emissionClass": "Euro 6",
  "priceIndicator": "Great price",
  "sellerType": "trade",
  "dealerName": "Premium Auto London Ltd",
  "dealerType": "TRADE",
  "dealerRating": 4.7,
  "dealerLocation": "London, Greater London",
  "dealerPhone": "020 7946 0123",
  "location": "Wembley",
  "distance": "8 miles",
  "imageCount": 32,
  "images": ["https://m.atcdn.co.uk/.../w1024.jpg", "..."],
  "description": "Stunning one-owner BMW 320d M Sport with full BMW service history...",
  "features": ["M Sport package", "Heated front seats", "Reversing camera", "..."],
  "financeOptions": {
    "monthlyPriceHP": "£412",
    "aprHP": 9.9,
    "monthlyPricePCP": "£298",
    "aprPCP": 8.9,
    "summary": "£412 per month"
  },
  "serviceHistory": "Full service history",
  "url": "https://www.autotrader.co.uk/car-details/202504251717568",
  "scrapedAt": "2026-05-08T14:21:47Z"
}
```

#### Core Fields (always returned)

| Field | Type | Description |
|-------|------|-------------|
| `advertId` | string | Unique 15-digit AutoTrader listing ID. |
| `make` | string | Manufacturer (e.g. BMW, Volkswagen). |
| `model` | string | Model (e.g. 3 Series, Golf). |
| `derivative` | string | Full trim/derivative line (engine, gearbox, body, spec). |
| `trim` | string | Same as `derivative`. |
| `title` | string | AutoTrader title (typically `<make> <model>`). |
| `subTitle` | string | AutoTrader subtitle / derivative line. |
| `year` | integer | Year of first registration. |
| `registration` | string | Registration designator (e.g. `21 reg`). |
| `mileage` | integer | Odometer reading in miles. |
| `price` | integer | Asking price in GBP, parsed to integer. |
| `priceFormatted` | string | Price as displayed (e.g. `£22,995`). |
| `currency` | string | Always `"GBP"`. |
| `priceIndicator` | string | AutoTrader's price tag (e.g. `Great price`, `Higher than average`). |
| `location` | string | City or town the car is located in. |
| `distance` | string | Distance from your search postcode (e.g. `8 miles`). |
| `url` | string | Full listing URL on AutoTrader. |
| `scrapedAt` | string | ISO 8601 timestamp the row was captured. |

#### Vehicle Spec (with `includeListingDetails: true`)

| Field | Type | Description |
|-------|------|-------------|
| `fuelType` | string | Petrol, Diesel, Electric, Hybrid, etc. |
| `transmission` | string | Manual or Automatic. |
| `gearbox` | string | Same as `transmission`. |
| `bodyType` | string | Hatchback, Saloon, SUV, etc. |
| `doors` | integer | Number of doors. |
| `seats` | integer | Number of seats. |
| `engineSize` | string | Engine size in litres. |
| `exteriorColor` | string | Body colour. |
| `colour` | string | Same as `exteriorColor`. |
| `previousOwners` | integer | Number of previous keepers. |
| `emissionClass` | string | Euro 6, Euro 5, etc. |

#### Dealer & Seller

| Field | Type | Description |
|-------|------|-------------|
| `sellerType` | string | `trade` (dealer) or `private`. |
| `dealerName` | string | Trade-seller business name. |
| `dealerType` | string | TRADE or PRIVATE (raw). |
| `dealerRating` | number | Overall AutoTrader review rating, 0–5. |
| `dealerLocation` | string | Town and county of the dealer. |
| `dealerPhone` | string | Dealer phone number. |
| `dealer` | object | Nested dealer object with `name`, `type`, `rating`, `reviewCount`, `phone`, `email`, `location`, `postcode`, `id`, and `link`. |

#### Photos & Description (with `includeListingDetails: true`)

| Field | Type | Description |
|-------|------|-------------|
| `imageCount` | integer | Total number of photos in the listing gallery. |
| `images` | array | Up to 50 full-resolution photo URLs at 1024px width. |
| `description` | string | Full free-text seller description. |
| `features` | array | All feature/equipment tags listed by the seller. |

#### Finance & History (with `includeListingDetails: true`)

| Field | Type | Description |
|-------|------|-------------|
| `financeOptions.monthlyPriceHP` | string | Monthly HP repayment, formatted (e.g. `£412`). |
| `financeOptions.aprHP` | number | APR for the HP quote. |
| `financeOptions.monthlyPricePCP` | string | Monthly PCP repayment, formatted. |
| `financeOptions.aprPCP` | number | APR for the PCP quote. |
| `financeOptions.summary` | string | AutoTrader's representative-example summary. |
| `serviceHistory` | string | Service-history summary (e.g. `Full service history`). |

### Tips for Best Results

- Start with postcode + 50-mile radius and no other filters to gauge inventory size, then narrow down with `make`, `model`, or price bounds once you see the totals.
- Sort by `mileageAsc` to surface low-mileage examples before they're snapped up — combined with `priceMax` set 10–15% below your target, this is the flipper's go-to filter combo.
- For UK-wide scans set `radius: "1500"` (Nationwide) — most live inventory clusters around major metros, but rare specs only show up nationwide.
- Set `includeListingDetails: true` (default) when you need dealer phone, email, finance quotes, full feature list, or service history. Disable it for fast price/mileage scans where you only care about search-result fields.
- Filter `sellerType: "private"` for direct private-party deals; `sellerType: "trade"` for dealer-inventory market analysis or trade-supply lead generation.
- Paste any AutoTrader saved-search URL straight into `startUrls` — the scraper extracts every filter from the URL params (price, year, mileage, fuel, body, sort) so you don't have to re-pick them in the input form.
- Use `sortBy: "datestamp"` (Recently listed) for daily new-stock alerting — pair with a tight `priceMax` to catch underpriced fresh inventory the moment it hits the site.

### Pricing

**$0.80 per 1,000 results** — flat pay-per-result. No compute charges — you only pay per result returned.

| Results | Estimated Cost |
|---------|----------------|
| 100 | $0.08 |
| 1,000 | $0.80 |
| 10,000 | $8.00 |
| 100,000 | $80.00 |

Each car listing is one result, regardless of whether you enable `includeListingDetails`. Apify platform fees apply separately on top of the per-result price.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation across your stack.
- **Google Sheets** — Direct spreadsheet export for analysts and ops teams.
- **Slack** / **Email** — Notifications when a new run completes or matches your alert filter.
- **Webhooks** — Trigger your own APIs on run completion or new dataset items.
- **Apify API** — Full programmatic access to schedule runs, fetch datasets, and stream results.

### Legal & Ethical Use

This actor accesses publicly available content on AutoTrader.co.uk. Use the data responsibly and in line with AutoTrader's Terms of Service, the UK Data Protection Act, and the EU/UK GDPR. Dealer contact information is provided for legitimate B2B outreach and market research only — do not use it for unsolicited marketing to private individuals, identity-related profiling, or any purpose that breaches data-protection law. You are responsible for the lawful use of any personal data extracted.

# Actor input Schema

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

Paste AutoTrader.co.uk search result URLs or individual car-detail URLs (e.g. 'https://www.autotrader.co.uk/car-search?postcode=SW1A1AA\&make=BMW' or 'https://www.autotrader.co.uk/car-details/202504251717568'). When provided, these are used directly and the search filters below are ignored. Useful when you already have a saved search.

## `postcode` (type: `string`):

UK postcode to search around, e.g. 'SW1A 1AA' or 'M1 1AE'. Used together with Search Radius. Ignored when AutoTrader URLs are provided.

## `radius` (type: `string`):

How far around the postcode to search, in miles. Use 'Nationwide' to search the whole UK. When calling the actor via API, quote the value as a string (e.g. `"30"`, not `30`) — the Apify dropdown editor requires string values here.

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

Manufacturer name as shown on AutoTrader, e.g. 'BMW', 'Volkswagen', 'Ford'. Leave empty for all makes.

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

Model name as shown on AutoTrader (must match the chosen Make), e.g. '3 Series', 'Golf', 'Focus'. Leave empty for all models.

## `condition` (type: `string`):

Filter to new, used, or any car condition. Filtering is applied to the search results as they are returned, so 'New' or 'Used' may yield fewer rows per page than the unfiltered total shown by AutoTrader.

## `bodyType` (type: `array`):

Filter by one or more body types. Leave empty for all body types.

## `fuelType` (type: `array`):

Filter by one or more fuel types. Leave empty for all fuel types.

## `gearbox` (type: `string`):

Transmission type.

## `priceMin` (type: `integer`):

Only include cars at or above this price in pounds. Leave empty for no lower bound.

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

Only include cars at or below this price in pounds. Leave empty for no upper bound.

## `yearMin` (type: `integer`):

Only include cars first registered in or after this year (e.g. 2018). Leave empty for any age.

## `yearMax` (type: `integer`):

Only include cars first registered in or before this year. Leave empty for any age.

## `mileageMax` (type: `integer`):

Only include cars with at most this many miles on the clock. Leave empty for any mileage.

## `sellerType` (type: `string`):

Filter listings by who is selling.

## `sortBy` (type: `string`):

How to order the search results. Defaults to AutoTrader's relevance ranking.

## `includeListingDetails` (type: `boolean`):

When enabled, every search-result row is enriched with the full listing page (specifications, finance quotes, dealer profile, all images, vehicle history, features). Disable for a faster, lighter run that only returns the search-result fields.

## `maxResults` (type: `integer`):

Maximum number of car listings to return per search query or URL. The actor may return a few extra from the final page — it stops requesting new pages once the cap is reached. Set to 0 for unlimited (subject to AutoTrader's pagination ceiling).

## Actor input object example

```json
{
  "startUrls": [],
  "postcode": "SW1A 1AA",
  "radius": "200",
  "condition": "any",
  "bodyType": [],
  "fuelType": [],
  "gearbox": "any",
  "sellerType": "any",
  "sortBy": "relevance",
  "includeListingDetails": true,
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of car listings with key fields like make, model, year, price, mileage, and location.

## `details` (type: `string`):

Full per-listing detail rows including specifications, finance, dealer, and images.

# 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": [],
    "postcode": "SW1A 1AA",
    "radius": "200",
    "make": "",
    "model": "",
    "condition": "any",
    "bodyType": [],
    "fuelType": [],
    "gearbox": "any",
    "sellerType": "any",
    "sortBy": "relevance",
    "includeListingDetails": true,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/autotrader-co-uk-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": [],
    "postcode": "SW1A 1AA",
    "radius": "200",
    "make": "",
    "model": "",
    "condition": "any",
    "bodyType": [],
    "fuelType": [],
    "gearbox": "any",
    "sellerType": "any",
    "sortBy": "relevance",
    "includeListingDetails": True,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/autotrader-co-uk-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": [],
  "postcode": "SW1A 1AA",
  "radius": "200",
  "make": "",
  "model": "",
  "condition": "any",
  "bodyType": [],
  "fuelType": [],
  "gearbox": "any",
  "sellerType": "any",
  "sortBy": "relevance",
  "includeListingDetails": true,
  "maxResults": 100
}' |
apify call solidcode/autotrader-co-uk-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoTrader UK Scraper",
        "description": "[💰 $0.8 / 1K] Extract used and new car listings from AutoTrader.co.uk — price, mileage, year, specs, dealer info, finance quotes, and high-res images. Search by postcode + radius or paste any AutoTrader URL.",
        "version": "1.0",
        "x-build-id": "USpIhaihHNRo7T1oe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~autotrader-co-uk-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-autotrader-co-uk-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/solidcode~autotrader-co-uk-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-autotrader-co-uk-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/solidcode~autotrader-co-uk-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-autotrader-co-uk-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": {
                    "startUrls": {
                        "title": "AutoTrader URLs",
                        "type": "array",
                        "description": "Paste AutoTrader.co.uk search result URLs or individual car-detail URLs (e.g. 'https://www.autotrader.co.uk/car-search?postcode=SW1A1AA&make=BMW' or 'https://www.autotrader.co.uk/car-details/202504251717568'). When provided, these are used directly and the search filters below are ignored. Useful when you already have a saved search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "postcode": {
                        "title": "Postcode",
                        "type": "string",
                        "description": "UK postcode to search around, e.g. 'SW1A 1AA' or 'M1 1AE'. Used together with Search Radius. Ignored when AutoTrader URLs are provided."
                    },
                    "radius": {
                        "title": "Search Radius (miles)",
                        "enum": [
                            "1",
                            "5",
                            "10",
                            "15",
                            "20",
                            "30",
                            "50",
                            "75",
                            "100",
                            "200",
                            "1500"
                        ],
                        "type": "string",
                        "description": "How far around the postcode to search, in miles. Use 'Nationwide' to search the whole UK. When calling the actor via API, quote the value as a string (e.g. `\"30\"`, not `30`) — the Apify dropdown editor requires string values here.",
                        "default": "200"
                    },
                    "make": {
                        "title": "Make",
                        "type": "string",
                        "description": "Manufacturer name as shown on AutoTrader, e.g. 'BMW', 'Volkswagen', 'Ford'. Leave empty for all makes."
                    },
                    "model": {
                        "title": "Model",
                        "type": "string",
                        "description": "Model name as shown on AutoTrader (must match the chosen Make), e.g. '3 Series', 'Golf', 'Focus'. Leave empty for all models."
                    },
                    "condition": {
                        "title": "Condition",
                        "enum": [
                            "any",
                            "new",
                            "used"
                        ],
                        "type": "string",
                        "description": "Filter to new, used, or any car condition. Filtering is applied to the search results as they are returned, so 'New' or 'Used' may yield fewer rows per page than the unfiltered total shown by AutoTrader.",
                        "default": "any"
                    },
                    "bodyType": {
                        "title": "Body Type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by one or more body types. Leave empty for all body types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Hatchback",
                                "Saloon",
                                "Estate",
                                "SUV",
                                "Coupe",
                                "Convertible",
                                "MPV",
                                "Pickup",
                                "Van",
                                "Camper",
                                "Limousine"
                            ],
                            "enumTitles": [
                                "Hatchback",
                                "Saloon",
                                "Estate",
                                "SUV",
                                "Coupe",
                                "Convertible",
                                "MPV",
                                "Pickup",
                                "Van",
                                "Camper",
                                "Limousine"
                            ]
                        },
                        "default": []
                    },
                    "fuelType": {
                        "title": "Fuel Type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by one or more fuel types. Leave empty for all fuel types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Petrol",
                                "Diesel",
                                "Electric",
                                "Hybrid",
                                "Plug-in Hybrid",
                                "LPG",
                                "Bi-Fuel"
                            ],
                            "enumTitles": [
                                "Petrol",
                                "Diesel",
                                "Electric",
                                "Hybrid",
                                "Plug-in Hybrid",
                                "LPG",
                                "Bi-Fuel"
                            ]
                        },
                        "default": []
                    },
                    "gearbox": {
                        "title": "Gearbox",
                        "enum": [
                            "any",
                            "Manual",
                            "Automatic"
                        ],
                        "type": "string",
                        "description": "Transmission type.",
                        "default": "any"
                    },
                    "priceMin": {
                        "title": "Minimum Price (GBP)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Only include cars at or above this price in pounds. Leave empty for no lower bound."
                    },
                    "priceMax": {
                        "title": "Maximum Price (GBP)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Only include cars at or below this price in pounds. Leave empty for no upper bound."
                    },
                    "yearMin": {
                        "title": "Minimum Year",
                        "minimum": 1950,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Only include cars first registered in or after this year (e.g. 2018). Leave empty for any age."
                    },
                    "yearMax": {
                        "title": "Maximum Year",
                        "minimum": 1950,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Only include cars first registered in or before this year. Leave empty for any age."
                    },
                    "mileageMax": {
                        "title": "Maximum Mileage",
                        "minimum": 0,
                        "maximum": 500000,
                        "type": "integer",
                        "description": "Only include cars with at most this many miles on the clock. Leave empty for any mileage."
                    },
                    "sellerType": {
                        "title": "Seller Type",
                        "enum": [
                            "any",
                            "trade",
                            "private"
                        ],
                        "type": "string",
                        "description": "Filter listings by who is selling.",
                        "default": "any"
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "priceAsc",
                            "priceDesc",
                            "yearDesc",
                            "yearAsc",
                            "mileageAsc",
                            "distance",
                            "datestamp"
                        ],
                        "type": "string",
                        "description": "How to order the search results. Defaults to AutoTrader's relevance ranking.",
                        "default": "relevance"
                    },
                    "includeListingDetails": {
                        "title": "Include full listing details",
                        "type": "boolean",
                        "description": "When enabled, every search-result row is enriched with the full listing page (specifications, finance quotes, dealer profile, all images, vehicle history, features). Disable for a faster, lighter run that only returns the search-result fields.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of car listings to return per search query or URL. The actor may return a few extra from the final page — it stops requesting new pages once the cap is reached. Set to 0 for unlimited (subject to AutoTrader's pagination ceiling).",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
