# Motors.co.uk Car Listings Scraper (`parseforge/motors-co-uk-scraper`) Actor

Scrapes used car listings from Motors.co.uk search pages. Returns each vehicle as a flat row with price, mileage, year, fuel type, transmission, and dealer details.

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

## Pricing

from $5.01 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Motors.co.uk Car Listings Scraper

**Scrape used car listings from Motors.co.uk by search URL, up to thousands per run.** Every listing returns price, mileage, year, fuel type, transmission, dealer info, and the full listing URL. Export to CSV, JSON, Excel, or XML.

Motors.co.uk lists thousands of used cars from dealers across the UK, but browsing page by page to collect prices, specs, and dealer details is slow. This Actor reads any Motors.co.uk search or category page you give it and extracts every matching car listing into a structured dataset. You get a clean, flat row for each vehicle, ready for analysis or import.

| Who uses it | What they scrape Motors.co.uk for |
|---|---|
| Car dealers | Monitor competitor pricing and stock levels across the UK. |
| Market analysts | Track used car market trends, average prices, and inventory volumes. |
| Data journalists | Gather regional vehicle data for reports on the automotive industry. |
| App builders | Feed a car search or comparison tool with fresh Motors.co.uk listings. |

### What it does

This Actor collects used car listings from Motors.co.uk search result pages and returns each vehicle as a flat row with its price, mileage, year, fuel type, transmission, and dealer information.

- 🔗 **Paste a search URL:** Start from any Motors.co.uk search results page, with your filters already applied in the browser.
- 📊 **Structured output:** Every listing comes out as a flat row with price, mileage, year, fuel, transmission, and dealer details.
- ⏱️ **Set a listing limit:** Control the maximum number of cars to scrape so you only collect what you need.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Motors.co.uk data

**📈 Monitor competitor stock.**

A car dealer runs the Actor weekly on a rival's filtered search URL to track which models they are listing and at what price points.

**💰 Analyse market pricing.**

A market analyst scrapes all Ford Fiesta listings under £10,000 to calculate average mileage-adjusted prices across UK regions.

**🚗 Build a car search app.**

A developer feeds daily scraped Motors.co.uk listings into a mobile app that alerts users when a specific make and model appears within budget.

**📋 Audit dealer inventory.**

A dealership group scrapes its own Motors.co.uk listings to verify that prices, photos, and descriptions match their internal stock system.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key needed** | Reads the public Motors.co.uk search pages directly, with no registration or authentication. |
| **Fixed schema** | Every listing arrives in the same flat format, making it easy to merge runs or build dashboards. |
| **Rapid collection** | Scrapes hundreds or thousands of listings in a single run, far faster than manual copying. |

### How it compares

This Actor focuses on scraping by URL, while the alternative offers built-in filters for make, model, price, and mileage.

| Feature | ParseForge | Motors.co.uk Scraper |
|---|---|---|
| Scrape by search URL | Yes | Yes |
| Built-in make and model filters | Not listed | Yes |
| Built-in price and mileage filters | Not listed | Yes |
| Dealer information in output | Yes | Yes |
| Handles multiple start URLs | Yes | Not listed |

### Configure the run

Drive the Actor from one or more Motors.co.uk search or category URLs, and set a maximum number of listings to cap the run. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "startUrls": [
    {
      "url": "https://www.motors.co.uk/used-cars/for-sale/"
    }
  ]
}
```

A larger pull:

```json
{
  "startUrls": [
    {
      "url": "https://www.motors.co.uk/used-cars/for-sale/"
    }
  ],
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.00554 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.55 |
| 1,000 results | $5.54 |
| 10,000 results | $55.40 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Motors.co.uk Car Listings Scraper](https://apify.com/parseforge/motors-co-uk-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Motors.co.uk through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/motors-co-uk-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your start URL is a valid Motors.co.uk search or category page that shows listings. If the page has no results or uses a very restrictive filter, the Actor will return an empty dataset.

**The Actor is scraping fewer listings than my maximum.**

This happens when the search results page has fewer total listings than your set maximum. The Actor stops when it runs out of pages to read.

**Some fields are empty in my output.**

Not every listing on Motors.co.uk includes all details. If a seller omits the mileage or fuel type, that field will be blank in your dataset.

**The run fails with a timeout error.**

Try reducing the 'Maximum car listings' number or splitting your search into smaller, more specific URLs to reduce the load per run.

**I get an error about an invalid URL.**

Ensure your start URL begins with 'https://www.motors.co.uk/' and points to a search or category page. Direct links to individual car detail pages are not supported.

### FAQ

| Question | Answer |
|---|---|
| Can I scrape a specific make and model? | Yes. Perform a search on Motors.co.uk with your desired make, model, and any other filters, then paste that URL into the Actor's start URLs. It will scrape only the listings that match your search. |
| How many listings can I scrape in one run? | You control this with the 'Maximum car listings' input. Set it to the number you need, up to the total available on the search results pages you provide. |
| Does this Actor handle pagination? | Yes. It follows the pagination links on the search results page automatically until it reaches your set maximum or runs out of pages. |
| What data fields do I get for each car? | Each row includes the listing title, price, mileage, registration year, fuel type, transmission, body style, engine size, dealer name, dealer location, and the direct listing URL. |
| Can I scrape multiple search URLs at once? | Yes. Add as many Motors.co.uk search or category URLs as you need to the start URLs list, and the Actor will process them all in one run. |
| Is it legal to scrape Motors.co.uk? | You should review Motors.co.uk's terms of service and ensure your use complies with them and with applicable laws. This Actor only accesses publicly available pages. |
| Can I filter by price or mileage in the Actor? | The Actor does not have its own filter inputs. Apply your filters directly on the Motors.co.uk website, copy the resulting URL, and use that as your start URL. |
| What output formats are supported? | You can export your dataset in CSV, JSON, Excel, or XML format from the Apify platform. |
| Does it scrape sold or reserved listings? | It scrapes whatever listings are visible on the search page you provide. If a listing is marked as sold or reserved and still appears in the results, it will be included. |
| Can I run this on a schedule? | Yes. Use Apify's scheduler to run the Actor daily, weekly, or at any custom interval to keep your dataset fresh. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Motors.co.uk Limited. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

One or more Motors.co.uk search or category pages to scrape car listings from.

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

Maximum number of car listings to scrape.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.motors.co.uk/used-cars/for-sale/"
    }
  ],
  "maxItems": 100
}
```

# Actor output Schema

## `results` (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.motors.co.uk/used-cars/for-sale/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/motors-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": [{ "url": "https://www.motors.co.uk/used-cars/for-sale/" }] }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/motors-co-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 '{
  "startUrls": [
    {
      "url": "https://www.motors.co.uk/used-cars/for-sale/"
    }
  ]
}' |
apify call parseforge/motors-co-uk-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/motors-co-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/grRIozxNaznAFlKcx/builds/hnRG4o2xZO2lyaLF9/openapi.json
