# AutoTrader UK Car Scraper (Listings & Prices) (`webdatatools/autotrader-uk-scraper`) Actor

Scrape AutoTrader UK car listings for any make, model, postcode and price range: title, asking price, year, mileage, location, private or dealer seller, price rating, image and link. Real Chromium, no login, pay per listing.

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

## Pricing

from $0.92 / 1,000 listings

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AutoTrader UK Car Scraper (Listings & Prices)

### What is AutoTrader UK Car Scraper?

AutoTrader UK Car Scraper collects car listings from AutoTrader UK (autotrader.co.uk) for any make, model, postcode and price range. For each listing it returns the title, the asking price in GBP, the year, the mileage, the location with its distance from your postcode, whether the seller is a private person or a dealer, AutoTrader's price rating, the main image and the listing link. It opens the public search pages in a real Chromium browser, reads the rendered results, and pages through them. No login is used.

### What data does AutoTrader UK Car Scraper extract?

| Field | Type | Description |
|---|---|---|
| `advertId` | string | AutoTrader advert number |
| `title` | string | Make and model as shown on the card, e.g. "Ford Focus" |
| `subtitle` | string or null | Trim and engine line, e.g. "1.0T EcoBoost Zetec Euro 5 (s/s) 5dr" |
| `attentionGrabber` | string or null | Seller's short highlight, e.g. "3 MONTHS WARRANTY" |
| `price` / `priceText` | number / string | Asking price in GBP and as shown, e.g. 2700 and "£2,700" |
| `currency` | string | "GBP" when a price is shown |
| `year` | number or null | Registration year |
| `mileage` | number or null | Odometer reading in miles |
| `location` | string or null | Place name as shown, e.g. "Feltham (12 miles)" |
| `distanceMiles` | number or null | Distance from the postcode, when shown |
| `sellerType` | string or null | "Dealer" or "Private" when the card shows it |
| `priceRating` | string or null | AutoTrader's price indicator, e.g. "Great price" |
| `featured` | boolean | True for featured adverts |
| `imageUrl` | string or null | Main listing image |
| `url` | string | Listing page link |
| `make`, `model`, `postcode`, `page`, `position`, `scrapedAt` | mixed | The search that produced the row |

Engine fuel type and gearbox are not on the search card in the pages this Actor reads, so they are not returned. They are on each listing page.

### How to use AutoTrader UK Car Scraper

1. Enter a **Make** (for example Ford) and, optionally, a **Model**.
2. Enter a **Postcode**. Distances are measured from it.
3. Optionally set a **Minimum** and **Maximum price** in pounds.
4. Set **Max listings** and click **Start**.
5. Download the dataset as JSON, CSV or Excel, or read it through the API.

### Example input

```json
{
    "make": "Vauxhall",
    "model": "Corsa",
    "postcode": "M1 1AE",
    "minPrice": 1000,
    "maxPrice": 8000,
    "maxItems": 30
}
```

### Example output

Real row from a run on 2026-10-23 (Vauxhall Corsa, postcode M1 1AE, price 1,000 to 8,000 GBP). Values are as shown on AutoTrader at that time.

```json
{
    "advertId": "202610157010431",
    "title": "Vauxhall Corsa",
    "subtitle": "1.4i ecoTEC Griffin Euro 6 5dr",
    "attentionGrabber": "3 MONTHS WARRANTY",
    "price": 7580,
    "priceText": "£7,580",
    "currency": "GBP",
    "year": 2019,
    "mileage": 42188,
    "location": "York (59 miles)",
    "distanceMiles": 59,
    "sellerType": "Dealer",
    "priceRating": "Great price",
    "featured": true,
    "imageUrl": "https://m.atcdn.co.uk/a/media/w480/23eea5cc0e744ce7b32a88b7667ca2c5.jpg",
    "url": "https://www.autotrader.co.uk/car-details/202610157010431",
    "make": "Vauxhall",
    "model": "Corsa",
    "postcode": "M1 1AE",
    "page": 1,
    "position": 1,
    "scrapedAt": "2026-10-23T02:57:06.079Z"
}
```

### Input parameters

- **Make** (`make`): car make as AutoTrader writes it. Default Ford. Empty means all makes.
- **Model** (`model`): optional model within the make.
- **Postcode** (`postcode`): UK postcode for distances. Default SW1A 1AA.
- **Minimum price** (`minPrice`) and **Maximum price** (`maxPrice`): optional, in GBP.
- **Max listings** (`maxItems`): 1 to 500. Default 50.

### Pricing

Pay per listing: one event for each listing row written to the dataset. Prices in USD.

| Plan | Price per 1,000 listings |
|---|---|
| Free | $1.10 |
| Bronze | $1.04 |
| Silver | $0.99 |
| Gold, Platinum, Diamond | $0.92 |

Measured platform usage on 2026-10-23: 30-listing runs took 28 to 29 seconds on a 2 GB browser and were billed at $0.003 to $0.004 each (rounded by the platform), about $0.0001 per listing. That is an upper estimate that includes the run start.

### AutoTrader UK Car Scraper vs. alternatives

Other AutoTrader actors in the Apify Store list their per-result price at about $0.0009 to $0.0011 at the free tier (checked on 2026-10-23). This Actor reads the search cards in a real browser and returns the card data; it does not open each listing, so fuel type and gearbox are not included.

### Using AutoTrader UK Car Scraper with AI agents and MCP

Each listing is one dataset row with flat fields, so an agent can filter by `price`, `year`, `mileage` or `distanceMiles` without parsing nested data. Call the Actor through the Apify MCP server or the REST API with `{"make": "Ford", "postcode": "SW1A 1AA", "maxItems": 30}`.

### FAQ

**Is this legal?** The Actor reads public search pages without logging in, without a cookie of your own and without solving any challenge. You are responsible for how you use the data and for complying with AutoTrader's terms and local law.

**Why are fuel type and gearbox missing?** They are not on the search card. This release does not open listing pages.

**Why do some images come back null?** AutoTrader shows a placeholder when a photo is not available.

**Why do featured adverts appear?** They are paid placements. The `featured` flag tells them apart.

**What happens when AutoTrader shows a check page?** The Actor retries the page up to three times. If the results still do not render, it records the page in the ERRORS record and stops that search. A run with no listings at all fails, so you are not billed for an empty run.

**Can it run on the free Apify plan?** Browser runs need about 2 GB of memory. Check your plan's limits before scheduling large searches.

**Limits.** Large limits (hundreds of listings) were not measured in this release.

### Related Actors

- Other webdatatools Actors are listed on the publisher profile.

### Support

Open an issue on the Actor's Issues tab. Include the make, model, postcode, the run ID and the ERRORS record if one exists.

# Actor input Schema

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

The car make as AutoTrader writes it, e.g. "Ford", "Vauxhall", "Volkswagen". Leave empty for all makes.

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

The model within the make, e.g. "Fiesta" or "Corsa". Leave empty for all models of the make.

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

UK postcode the distance is measured from, e.g. "SW1A 1AA" or "M1 1AE".

## `minPrice` (type: `integer`):

Optional lowest asking price in pounds, e.g. 1000.

## `maxPrice` (type: `integer`):

Optional highest asking price in pounds, e.g. 5000.

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

Most listings to return for this search, e.g. 100. AutoTrader shows about 25 per page; the Actor pages through.

## Actor input object example

```json
{
  "make": "Ford",
  "postcode": "SW1A 1AA",
  "maxItems": 50
}
```

# Actor output Schema

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

All car listings from this run.

# 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": "Ford",
    "postcode": "SW1A 1AA",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdatatools/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": "Ford",
    "postcode": "SW1A 1AA",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("webdatatools/autotrader-uk-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 '{
  "make": "Ford",
  "postcode": "SW1A 1AA",
  "maxItems": 50
}' |
apify call webdatatools/autotrader-uk-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,webdatatools/autotrader-uk-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/cnY0B6uNxF6Lkobxj/builds/kJSLiOoWvmg95x2yq/openapi.json
