ParseForge Scrapers

PistonHeads UK Car Classifieds Scraper

parseforge/pistonheads-scraper

E-commerceLead generation

Scrapes PistonHeads car classified listings by search URL or filter fields. Returns each car as a flat row with price, mileage, year, fuel type, transmission, seller info, and location.

Run this scraper See the API call
Total users
7
Monthly active
4
Total runs
271
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

PistonHeads UK Car Classifieds Scraper

Scrape PistonHeads car classifieds by make, model, price, or URL, up to a million listings per run. Every car comes with its price, mileage, year, fuel type, and seller details. No proxy or login needed. Export to CSV, JSON, Excel, or XML.

PistonHeads lists thousands of UK used cars, but browsing page by page and copying details into a spreadsheet is slow. This Actor reads the public classifieds feed directly, filtering by make, model, price band, year, mileage, fuel type, transmission, body style, colour, drivetrain, doors, seats, seller type, and postcode radius. It returns every matching listing in one flat table so you can compare the whole market at once.

Who uses it What they scrape PistonHeads for
Car buyers Compare every PistonHeads listing that matches their exact budget and spec in one spreadsheet.
Car dealers Monitor PistonHeads trade and private listings to price their own stock competitively.
Market analysts Track PistonHeads asking prices, mileage distributions, and stock volumes by make and model over time.
Enthusiast communities Watch for rare or specific PistonHeads listings, such as manual V8 coupes under a mileage threshold.

What it does

This Actor collects PistonHeads car classified listings by search URL or filter fields and returns each one as a flat row with price, mileage, year, fuel, transmission, seller info, and more.

  • ๐Ÿ”— Paste a search URL: copy any PistonHeads search URL from your browser and the Actor applies those exact filters.
  • ๐Ÿท๏ธ Build a query with filters: select make, model keyword, price band, year, mileage, fuel type, transmission, body style, colour, drivetrain, doors, seats, seller type, and postcode radius.
  • ๐Ÿ“ Distance search: supply a UK postcode and a radius in miles to find cars near you.
  • ๐Ÿ“Š Sort control: order results by relevance, recency, price, distance, mileage, or year.
  • ๐Ÿ Sold listings: optionally include already-sold cars to study market pricing.
  • ๐Ÿ’ท Listing type filter: restrict to visible-price ads, price-on-application, online auctions, or auction house listings.

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

What you can do with PistonHeads data

๐Ÿš— Find the right used car.

A private buyer sets a maximum price, a minimum year, a postcode, and a 50-mile radius, then exports every matching PistonHeads listing to a spreadsheet to compare condition and value.

๐Ÿช Price dealer stock against the market.

A used-car dealer scrapes PistonHeads trade and private listings for a specific make and model weekly, tracking the median asking price to set their own forecourt prices.

๐Ÿ“ˆ Monitor UK car market trends.

An analyst collects all PistonHeads listings for a segment, such as electric SUVs, each month and charts average price and mileage shifts over time.

๐Ÿ” Hunt rare specifications.

An enthusiast searches PistonHeads for a manual, rear-wheel-drive coupe with a specific engine keyword, under 60,000 miles, and gets an alert-ready dataset of every match.

Why choose this scraper

What you get
Full classifieds data Price, mileage, year, fuel type, transmission, body style, colour, drivetrain, doors, seats, seller type, and location.
Flexible input Paste a PistonHeads search URL or build a query with the filter fields. URL parameters take precedence when both are used.
Large-scale runs Collect up to a million listings per run, limited only by what PistonHeads returns for your query.
No proxy or login Reads the public PistonHeads classifieds feed directly. No account, no API key, no proxy setup.

How it compares

Two other Apify actors also scrape PistonHeads. Here is how they compare on the features buyers ask about most.

Feature ParseForge pistonheads.com PistonHeads UK Car Listings Scraper
Filter by make and model Yes, make dropdown and free-text model keyword Not listed Not listed
Filter by price, year, and mileage Yes, min and max ranges for all three Not listed Not listed
Postcode and distance search Yes, UK postcode with 10 to 200 mile radius Not listed Not listed
Fuel type, transmission, and body style filters Yes, multi-select for each Not listed Not listed
Include sold listings Yes, optional checkbox Not listed Not listed
Paste a PistonHeads search URL Yes, URL parameters take precedence over filters Not listed Not listed

Configure the run

Drive the Actor from a PistonHeads search URL or the built-in filter fields, alone or together, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10
}

A larger pull:

{
  "maxItems": 200
}

Pricing

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

Results collected Approximate cost
100 results $1.50
1,000 results $15.00
10,000 results $150.00

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 to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the PistonHeads UK Car Classifieds Scraper.
  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 (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

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

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/pistonheads-scraper"

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

Troubleshooting

Why am I getting no results?

Your filter combination may be too narrow. Remove optional filters such as colour, doors, or seats, and check that your price and year ranges are realistic. Paste the same search URL into a browser to confirm PistonHeads returns listings.

The Actor stops before reaching my maximum cars count.

PistonHeads only returns as many listings as match your query. If the Actor stops early, there are no more matching cars. Broaden your filters or increase the distance radius.

My search URL is being ignored.

When both a search URL and filter fields are provided, URL parameters take precedence. Clear the filter fields if you want the URL to work alone, or adjust the URL to include the filters you need.

Some listings are missing fields in the output.

PistonHeads sellers do not always fill in every field. Missing data in the output reflects missing data in the original listing.

The postcode search returns listings far away.

Reduce the distance radius. PistonHeads uses straight-line distance, so a 10-mile radius will return the most local results.

FAQ

Question Answer
Do I need a PistonHeads account or API key? No. The Actor reads the public PistonHeads classifieds pages directly. No login, no API key, and no proxy are required.
How do I filter by make and model? Select a make from the dropdown, then type a model keyword such as '911' or 'Defender' in the Model keyword field. You can also paste a full PistonHeads search URL with your filters already applied.
Can I search by postcode? Yes. Enter a full UK postcode and choose a distance radius from 10 to 200 miles, or leave it on 'Country wide' to ignore location.
What does the search URL field do? Paste any PistonHeads search URL from your browser and the Actor will use the exact filters from that URL. If you also set filter fields, the URL parameters take precedence.
Can I get sold listings as well as live ones? Yes. Tick the 'Include sold cars' checkbox and the Actor will return sold listings alongside active classifieds.
How many listings can I scrape in one run? Set the 'Maximum cars' field to any number up to 1,000,000. The Actor stops when it reaches that count or when PistonHeads has no more matching listings.
What export formats are supported? You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform.
Can I filter by fuel type or transmission? Yes. The fuel type, transmission, body style, colour, drivetrain, doors, and seats filters all support multi-select, so you can pick several values at once.
Does this Actor handle PistonHeads auctions? Yes. Use the 'Listing type' filter to include or restrict results to online auctions and auction house listings.
What if I get no results? Check that your filters are not too restrictive. Try removing optional filters one by one, or paste a working PistonHeads search URL to verify the listings exist.

Related actors

Browse the full ParseForge collection 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 PistonHeads. 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.

Input

FieldTypeWhat it doesDefault
searchUrl string Paste a PistonHeads.com search URL to use the exact filters from your browser. Examples: https://www.pistonheads.com/buy/search?priceMax=50000&yearMin=2020 or https://www.pistonheads.com/buy/aston-martin/db9. Leave blank to use the filter fields below. not set
maxItems integer How many cars to collect per run. 10
makeUrlName string (381 options) Filter listings by manufacturer (e.g. aston-martin, porsche, bmw). not set
modelKeyword string Filter by model name (free-text keyword search). Examples: '911', 'M3', 'Defender'. not set
priceMin integer Minimum asking price in pounds. not set
priceMax integer Maximum asking price in pounds. not set
yearMin integer Earliest registration year. not set
yearMax integer Latest registration year. not set
mileageMin integer Minimum odometer reading in miles. not set
mileageMax integer Maximum odometer reading in miles. not set
keywords string Free-text keyword search in headlines and listings (e.g. 'manual', 'rs', 'gt3'). not set
fuelTypeCodes array Filter by fuel type. Multi-select allowed. not set
transmission array Filter by gearbox type. Multi-select allowed. not set
bodyTypeCodes array Filter by body style. Multi-select allowed. not set
colourCodes array Filter by exterior colour. Multi-select allowed. not set
driveTrain array Filter by drivetrain layout. Multi-select allowed. not set
noDoors array Filter by number of doors. not set
seats array Filter by number of seats. not set
sellerType string (3 options) Filter by seller category. not set
postcode string UK postcode for distance-based search (use together with the Distance field). not set
distance string (6 options) Search radius around the postcode in miles. not set
sortOption string (8 options) Sort order of the results. mostRelevant
includeSold boolean Include listings that are already sold. false
pricingModels array Restrict to specific listing types (auctions, classifieds, or part-exchange). not set

Pricing

from $11.25 per 1,000 results

Charged forWhat it isPrice each
Record Charged when a vehicle listing is scraped $0.01125 to $0.015

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~pistonheads-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run PistonHeads UK Car Classifieds Scraper on Apify All scrapers