# AutoTrader UK Scraper — Used Car Listings & Prices (`studio-amba/autotrader-uk-scraper`) Actor

Scrape used-car listings from AutoTrader UK (autotrader.co.uk), the UK's largest car marketplace. Search by make, model, postcode, fuel type and price range. Extract prices, mileage, year, seller type, dealer ratings, finance offers and photos. No login or cookies required.

- **URL**: https://apify.com/studio-amba/autotrader-uk-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 car listing scrapeds

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

Scrape used-car listings from [autotrader.co.uk](https://www.autotrader.co.uk) — the UK's largest car marketplace, with over 400,000 vehicles listed at any time. Search by make, model, postcode, fuel type and price range, and get structured JSON with prices, mileage, registration year, seller type, dealer ratings, AutoTrader's own market price rating and finance offers.

No login, no cookies, no browser automation. The actor talks directly to AutoTrader's search API, so runs are fast and results are clean.

### Why use this actor

- **Price research** — track asking prices for a specific make/model across the UK, including AutoTrader's LOW/GOOD/GREAT/HIGH market price indicator per listing.
- **Dealer intelligence** — see which dealers list which stock, with their review ratings and dealer page links.
- **Market monitoring** — schedule daily runs to catch new listings, price drops and finance offers for any search.
- **Lead generation** — filter by private sellers or trade sellers in any postcode area.
- **Data science** — build depreciation curves from year, mileage and price across tens of thousands of listings.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `make` | string | `BMW` | Car make, using AutoTrader's exact make name (e.g. `Ford`, `Volkswagen`, `Tesla`). |
| `model` | string | — | Optional model filter (e.g. `3 Series`, `Fiesta`, `Golf`). Requires `make`. |
| `postcode` | string | `SW1A 1AA` | UK postcode the search is centred on. AutoTrader requires one; result distances are measured from it. |
| `fuelType` | string | `all` | One of `Petrol`, `Diesel`, `Electric`, `Petrol Hybrid`, `Petrol Plug-in Hybrid`, `Diesel Hybrid`. |
| `priceMin` | integer | — | Minimum price in GBP. |
| `priceMax` | integer | — | Maximum price in GBP. |
| `maxResults` | integer | `50` | Maximum number of listings to return. Each API page carries ~22 listings. |
| `proxyConfiguration` | object | UK residential | Keep the prefilled UK (GB) residential proxy. AutoTrader blocks datacenter IPs. |

#### Example input

```json
{
    "make": "BMW",
    "model": "3 Series",
    "postcode": "M1 1AE",
    "fuelType": "Diesel",
    "priceMin": 5000,
    "priceMax": 15000,
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB"
    }
}
````

### Output

Each dataset item is one car listing:

| Field | Example | Description |
|-------|---------|-------------|
| `listingTitle` | `BMW 3 Series` | Make + model headline |
| `subtitle` | `2.0 320i M Sport Auto Euro 6 (s/s) 4dr` | Trim / derivative line |
| `make` / `model` | `BMW` / `3 Series` | Structured make and model |
| `year` | `2019` | Registration year |
| `registration` | `2019 (69 reg)` | UK registration badge text |
| `condition` | `used` | Used or new |
| `price` | `12989` | Numeric price in GBP |
| `priceText` | `£12,989` | Price as displayed |
| `mileage` | `45231` | Numeric mileage in miles |
| `location` | `Manchester (4 miles)` | Vehicle location and distance |
| `distanceMiles` | `4` | Distance from the search postcode |
| `sellerType` | `TRADE` | `TRADE` (dealer) or `PRIVATE` |
| `dealerLink` | `https://www.autotrader.co.uk/dealers/...` | Dealer page (trade listings) |
| `dealerRating` | `4.7` | Dealer review score out of 5 |
| `priceIndicator` | `GOOD` | AutoTrader market price rating: `LOW`, `GOOD`, `GREAT`, `HIGH` |
| `financeMonthlyPrice` | `£253` | Monthly finance price, when offered |
| `imageUrl` / `imageUrls` | `https://m.atcdn.co.uk/a/media/...` | Listing photos |
| `url` | `https://www.autotrader.co.uk/car-details/2026...` | Direct listing URL |
| `scrapedAt` | `2026-07-10T09:00:00.000Z` | Collection timestamp |

#### Example output

```json
{
    "listingTitle": "BMW 3 Series",
    "subtitle": "2.0 320i M Sport Shadow Edition Auto xDrive Euro 6 (s/s) 4dr",
    "make": "BMW",
    "model": "3 Series",
    "year": 2019,
    "registration": "2019 (69 reg)",
    "condition": "used",
    "price": 12989,
    "priceText": "£12,989",
    "currency": "GBP",
    "mileage": 45231,
    "mileageText": "45,231 miles",
    "location": "Dunstable (31 miles)",
    "distanceMiles": 31,
    "sellerType": "TRADE",
    "dealerLink": "https://www.autotrader.co.uk/dealers/bedfordshire/dunstable/the-car-guys-10025631",
    "dealerRating": 4.3,
    "priceIndicator": "GOOD",
    "financeMonthlyPrice": "£253",
    "imageUrl": "https://m.atcdn.co.uk/a/media/w480h360/89de92ce8f574234b8f2fc2e7679627a.jpg",
    "advertId": "202607063946944",
    "url": "https://www.autotrader.co.uk/car-details/202607063946944",
    "scrapedAt": "2026-07-10T09:00:00.000Z"
}
```

### How to scrape AutoTrader data

1. Open the actor and press **Try for free** (or run it via the Apify API).
2. Set `make` (and optionally `model`) to the car you want to research.
3. Set `postcode` to the UK area you care about — distances in the results are measured from it.
4. Optionally narrow down with `fuelType`, `priceMin` and `priceMax`.
5. Set `maxResults` and keep the prefilled UK residential proxy.
6. Run it. Results land in the dataset as clean JSON, downloadable as JSON, CSV or Excel.

To scrape AutoTrader data on a schedule, create an Apify Schedule that runs this actor daily or hourly — useful for tracking new stock or price drops on a saved search.

### Cost estimate

One API request returns ~22 listings, so even large runs stay cheap: roughly 5 requests per 100 cars plus a small residential proxy overhead. A 1,000-listing run typically completes in under two minutes.

### Limitations

- AutoTrader lists UK vehicles only, and a valid UK postcode is required for every search.
- The search grid exposes listing-card data. Full technical specs (engine size, CO2, MOT history) live on detail pages and are not included.
- Fuel type is available as a search filter but AutoTrader does not return it as a field on listing cards.
- AutoTrader caps deep pagination on very broad searches; use filters (model, price range) to segment big result sets.
- Keep the UK residential proxy configuration — datacenter IPs get a Cloudflare challenge.

### Legal

This actor scrapes publicly visible listing data only. It collects no personal data and requires no login. Users are responsible for complying with AutoTrader's terms of service and applicable law when using scraped data.

# Actor input Schema

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

Car make to search for (e.g. 'BMW', 'Ford', 'Volkswagen'). Uses AutoTrader's exact make names.

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

Car model to filter by (e.g. '3 Series', 'Fiesta', 'Golf'). Requires the make to be set. Uses AutoTrader's exact model names.

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

UK postcode the search is centred on (AutoTrader requires one; distances in results are measured from it). Any valid UK postcode works.

## `fuelType` (type: `string`):

Filter by fuel type.

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

Minimum price filter in British pounds.

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

Maximum price filter in British pounds.

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

Maximum number of car listings to scrape. Each search page returns ~22 listings.

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

Proxy settings. UK residential proxies are required — AutoTrader blocks datacenter IPs with a Cloudflare challenge.

## Actor input object example

```json
{
  "make": "BMW",
  "postcode": "SW1A 1AA",
  "fuelType": "all",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# 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 = {
    "make": "BMW",
    "postcode": "SW1A 1AA",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/autotrader-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 = {
    "make": "BMW",
    "postcode": "SW1A 1AA",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/autotrader-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 '{
  "make": "BMW",
  "postcode": "SW1A 1AA",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call studio-amba/autotrader-uk-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoTrader UK Scraper — Used Car Listings & Prices",
        "description": "Scrape used-car listings from AutoTrader UK (autotrader.co.uk), the UK's largest car marketplace. Search by make, model, postcode, fuel type and price range. Extract prices, mileage, year, seller type, dealer ratings, finance offers and photos. No login or cookies required.",
        "version": "0.1",
        "x-build-id": "rVAalIpgmIoHg9q0F"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~autotrader-uk-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-autotrader-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/studio-amba~autotrader-uk-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-autotrader-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/studio-amba~autotrader-uk-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-autotrader-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": {
                    "make": {
                        "title": "Make",
                        "type": "string",
                        "description": "Car make to search for (e.g. 'BMW', 'Ford', 'Volkswagen'). Uses AutoTrader's exact make names.",
                        "default": "BMW"
                    },
                    "model": {
                        "title": "Model",
                        "type": "string",
                        "description": "Car model to filter by (e.g. '3 Series', 'Fiesta', 'Golf'). Requires the make to be set. Uses AutoTrader's exact model names."
                    },
                    "postcode": {
                        "title": "Postcode",
                        "type": "string",
                        "description": "UK postcode the search is centred on (AutoTrader requires one; distances in results are measured from it). Any valid UK postcode works.",
                        "default": "SW1A 1AA"
                    },
                    "fuelType": {
                        "title": "Fuel Type",
                        "enum": [
                            "all",
                            "Petrol",
                            "Diesel",
                            "Electric",
                            "Petrol Hybrid",
                            "Petrol Plug-in Hybrid",
                            "Diesel Hybrid"
                        ],
                        "type": "string",
                        "description": "Filter by fuel type.",
                        "default": "all"
                    },
                    "priceMin": {
                        "title": "Minimum Price (GBP)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price filter in British pounds."
                    },
                    "priceMax": {
                        "title": "Maximum Price (GBP)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price filter in British pounds."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of car listings to scrape. Each search page returns ~22 listings.",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. UK residential proxies are required — AutoTrader blocks datacenter IPs with a Cloudflare challenge.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "GB"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
