# AutoTrader UK Vehicle Listings Scraper (`fetch_cat/autotrader-uk-vehicles-scraper`) Actor

Export public UK vehicle listings, prices, specifications, dealer details and finance terms from AutoTrader search or detail URLs. Try the input examples to begin.

- **URL**: https://apify.com/fetch\_cat/autotrader-uk-vehicles-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.48 / 1,000 item processeds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## AutoTrader UK Vehicle Listings Scraper

This AutoTrader scraper exports public UK vehicle listings from AutoTrader search pages and individual vehicle pages. Build a structured vehicle catalogue for comparison, dealer-inventory research, and saved-search monitoring.

### Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

- [Enrich One AutoTrader UK Vehicle Listing](https://apify.com/fetch_cat/autotrader-uk-vehicles-scraper/examples/enrich-autotrader-uk-vehicle-listing)
- [Compare London Used Car Listings](https://apify.com/fetch_cat/autotrader-uk-vehicles-scraper/examples/compare-london-used-car-listings)
- [Export AutoTrader UK BMW Listings](https://apify.com/fetch_cat/autotrader-uk-vehicles-scraper/examples/export-autotrader-uk-bmw-listings)

```json
{
  "startUrls": [{ "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA&make=BMW" }],
  "maxItems": 10,
  "includeListingDetails": true
}
```

Use a public `/car-search` URL that includes a `postcode`, or provide a public `/car-details/{advertId}` URL for one vehicle.

### What you get

Each dataset row is one public vehicle listing. The Actor preserves the requested source URL and collects the listing fields that AutoTrader makes publicly visible.

| Field group | Included data |
|---|---|
| Identity | `advertId`, `sourceUrl`, `sourceSearchUrl`, `title`, `make`, `model`, `variant`, `year`, `registration` |
| Vehicle specification | `mileage`, `fuelType`, `transmission`, `bodyType`, `specifications`, `features` |
| Price and finance | `price`, `finance` including public representative finance details when shown |
| Seller | `dealer` including public name, contact, rating and location fields when shown |
| Media and checks | `images`, `history`, `vehicleCheck` when shown on the public listing |
| Collection context | `page`, `scrapedAt` |

Optional sections are omitted when the public page does not show them; the Actor does not invent unavailable vehicle, dealer, finance, or check data.

### Used car listings scraper use cases

### Who is it for?

- **Vehicle buyers** comparing advertised specifications, mileage, price and finance terms.
- **Dealers and analysts** tracking public competitor stock and advertised inventory changes.
- **Researchers** building a repeatable UK vehicle dataset from saved AutoTrader searches.
- **Automations and agents** that need normalized rows instead of manually reviewing search cards.

### Input settings

| Input | Description |
|---|---|
| `startUrls` | Required list of public AutoTrader UK search or vehicle-detail URLs. Search URLs need a postcode. |
| `maxItems` | Hard cap across all supplied URLs. Start low while validating a search; maximum is 10,000. |
| `includeListingDetails` | When enabled, visits each public detail page to collect the fullest available vehicle, seller, finance, media and history data. Disable for faster search-card exports. |

### Output details

`advertId` and `sourceUrl` are the stable identifiers to retain when deduplicating later exports. `sourceSearchUrl` and `page` identify where a search result came from. `price` is the advertised value shown on the page, while `finance` is a nested object containing only the public finance terms displayed for that listing.

`dealer`, `images`, `history`, and `vehicleCheck` are nested public sections. Their properties vary by listing, seller type, and whether the page exposes the relevant panel. A vehicle detail URL is the best choice when you need the fullest record for a known advert.

### Pricing

This Actor charges a one-time `start` event for each run and an `item` event for every dataset row successfully produced. Use `maxItems` to control the size and cost of each export. See the [live Apify Pricing tab](https://apify.com/fetch_cat/autotrader-uk-vehicles-scraper/pricing) for current rates and subscription-tier pricing.

### Tips for reliable exports

- Copy a complete public search URL from AutoTrader, including its postcode and filters.
- Start with 5–10 items when trying a new search URL.
- Use a vehicle detail URL when you need one complete record rather than a search result set.
- Keep `includeListingDetails` enabled for dealer, finance, media and vehicle-check fields.
- Save `advertId` and `sourceUrl` in your own workflow to compare later runs or avoid duplicate imports.

### Limits and partial results

This Actor works with anonymous public AutoTrader UK pages only. Sign-in-only, private, removed, expired, or temporarily unavailable listings are not collected. If one source URL cannot be read, rows already collected from other URLs remain in the dataset. Public page layouts and available fields can differ by advert.

### API usage

Use the same input JSON with the Apify API. Replace `YOUR_APIFY_TOKEN` with an API token and adjust the URL or item limit for your workflow.

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/autotrader-uk-vehicles-scraper').call({
  startUrls: [{ url: 'https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA&make=BMW' }],
  maxItems: 10,
  includeListingDetails: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/autotrader-uk-vehicles-scraper").call(run_input={
    "startUrls": [{"url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA"}],
    "maxItems": 10,
    "includeListingDetails": True,
})
print(list(client.dataset(run["defaultDatasetId"]).iterate_items()))
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~autotrader-uk-vehicles-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA"}],"maxItems":10,"includeListingDetails":true}'
```

### MCP and AI agents

Run this Actor from Apify MCP with the tool selector below, then pass the same `startUrls`, `maxItems`, and `includeListingDetails` fields used in the input recipe:

```text
https://mcp.apify.com?tools=fetch_cat/autotrader-uk-vehicles-scraper
```

For Claude Code, add the server with:

```bash
claude mcp add apify --transport http "https://mcp.apify.com?tools=fetch_cat/autotrader-uk-vehicles-scraper"
```

Or add this server entry to an MCP client configuration:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=fetch_cat/autotrader-uk-vehicles-scraper"
    }
  }
}
```

Example prompts: “Export the first 10 public BMW listings from this AutoTrader UK search URL” or “Collect the public vehicle, dealer, finance, and image fields from this AutoTrader detail URL.”

### FAQ

**What data can I export with autotrader scraper?** Each row can include public identity, price, mileage, specification, dealer, finance, image, history and vehicle-check fields that the requested listing exposes.

**Can I run AutoTrader UK Vehicle Listings Scraper through an API, schedule, or MCP client?** Yes. Use the API examples above, schedule the Actor in Apify, or call it with the MCP tool URL.

**How much does it cost to use AutoTrader UK Vehicle Listings Scraper?** Each run has a one-time start event and each successfully produced row has an item event; see the live Pricing tab for current tier rates.

**Why does a search URL need a postcode?** AutoTrader's UK public search uses a postcode to return geographically relevant listings.

**Can I export one car?** Yes. Provide its public `/car-details/{advertId}` URL in `startUrls`.

**Why is a dealer or finance field missing?** Those sections are optional and are returned only when the individual public listing displays them.

**Can I combine searches?** Yes. Supply multiple URLs in `startUrls`; `maxItems` is the total cap across the whole run.

### Related Actors

Use these FetchCat marketplace and listing-data Actors when your collection target is not AutoTrader UK:

- [eBay Marketplace Scraper](https://apify.com/fetch_cat/ebay-marketplace-scraper)
- [Facebook Marketplace Scraper](https://apify.com/fetch_cat/facebook-marketplace-scraper)
- [Gumtree Listings Scraper](https://apify.com/fetch_cat/gumtree-listings-scraper)
- [Marktplaats Listings Scraper](https://apify.com/fetch_cat/marktplaats-listings-scraper)
- [OLX India Listings Scraper](https://apify.com/fetch_cat/olx-india-listings-scraper)

### Support

For help, open an issue from this Actor's Apify Store page and include the public URL you used, the input settings (without credentials), and the run ID. Do not share private account information.

# Actor input Schema

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

Public /car-search URLs (include a postcode) or /car-details/{advertId} URLs.

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

Hard cap across all source URLs.

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

Fetch public detail pages for full vehicle, dealer, finance, media and history fields.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA"
    }
  ],
  "maxItems": 10,
  "includeListingDetails": true
}
```

# Actor output Schema

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

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/autotrader-uk-vehicles-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": [{ "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA" }] }

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/autotrader-uk-vehicles-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 '{
  "startUrls": [
    {
      "url": "https://www.autotrader.co.uk/car-search?postcode=SW1A%201AA"
    }
  ]
}' |
apify call fetch_cat/autotrader-uk-vehicles-scraper --silent --output-dataset

```

## MCP server setup

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