AutoTrader UK Scraper at a glance
AutoTrader UK Scraper is a ready-to-run Apify actor from abotapi for collecting lead generation data. Its documented output includes advert id, change type (incremental mode), url, title and derivative, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Lead Generation, Travel, Ecommerce
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.00 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 43 options
Pull structured vehicle listings from autotrader.co.uk at scale. Search by filters or use AutoTrader URLs. Returns price, make, model, year, mileage, full specs, finance, vehicle history check, photo gallery, and dealer contact details.
What AutoTrader UK Scraper can do
- More data than typical scrapers. 100+ fields per vehicle, including full dealer contact (name, phone, email, postal address, GPS coordinates, opening hours), FCA finance registration, a 10-point vehicle history check, structured specification, running costs and the complete photo gallery with per-image classification tags.
- Two ways in. Search by filters (make, model, price, year, mileage, fuel, body, transmission, colour, drivetrain, seller type, distance and more) or paste any AutoTrader search or advert URL.
- Eight marketplaces, one actor. Cars, vans, bikes, motorhomes, caravans, trucks, farm and plant, all through the same input.
- Full result depth on request. Walks up to 100 result pages per search, up to the site's own ceiling of about 2,000 listings; set Max pages to go past the default of 1.
- Pay only for the detail you use. The per-advert enrichment surcharge is billed only for adverts whose detail page is actually fetched and kept in the output; a listing-grid-only search run adds no surcharge.
- Resume and recurring monitoring. Continue an interrupted crawl with resumeFromRunId, or turn on Incremental mode to schedule the same search and get only the listings that are new, changed, back on sale, or gone.
Choose what to collect
These inputs let you configure AutoTrader UK Scraper - Cars, Prices, Specs & Dealers. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | search = pick a vehicle type, postcode and filters. url = paste AutoTrader search or advert URLs. |
channelstring | Which AutoTrader marketplace to search. |
postcodestring | UK postcode used as the search centre and to compute distance to each seller. Required by the site. |
makestring | Exact AutoTrader make, e.g. BMW, Ford, Volkswagen. Leave empty for all makes. |
modelstring | Exact AutoTrader model, e.g. '3 Series'. Only applies when a make is set. |
minPriceinteger | Minimum total price. Leave empty for no minimum. |
maxPriceinteger | Maximum total price. Leave empty for no maximum. |
Show 36 more inputs
| Input | What it controls |
|---|---|
minYearinteger | Earliest registration/manufacture year. Leave empty for any. |
maxYearinteger | Latest registration/manufacture year. Leave empty for any. |
minMileageinteger | Minimum mileage. Leave empty for any. |
maxMileageinteger | Maximum mileage. Leave empty for any. |
fuelTypestring | Filter by fuel type. Leave empty for any. |
bodyTypestring | Filter by body type (car values shown; other vehicle types accept their own). |
transmissionstring | Filter by gearbox. Leave empty for any. |
colourstring | Filter by exterior colour, e.g. Black, Blue, White. Leave empty for any. |
drivetrainstring | Filter by drivetrain. Leave empty for any. |
sellerTypestring | Trade (dealer) or private seller. |
minEngineSizestring | Minimum engine size in litres, e.g. 1.6. Leave empty for any. |
maxEngineSizestring | Maximum engine size in litres, e.g. 3.0. Leave empty for any. |
doorsinteger | Exact number of doors. Leave empty for any. |
seatsinteger | Exact number of seats. Leave empty for any. |
radiusinteger | Limit results to this many miles from the postcode. Leave empty for national. |
writeoffStatusstring | Include all, exclude written-off vehicles, or show only written-off vehicles. |
priceSearchTypestring | Whether the price filters apply to total price or monthly finance payment. |
sortBystring | Result ordering. Note: featured/sponsored adverts may appear first regardless of sort. |
urlsarray | Paste AutoTrader search URLs (e.g. https://www.autotrader.co.uk/car-search?make=BMW&postcode=SW1A1AA) or advert URLs (e.g. https://www.autotrader.co.uk/car-details/202601038902613). Multi-URL supported. Also supported: /cars/{make}/{model} and /cars/used browse pages, and a page= parameter as the start page. Legacy /classified/advert/{id} links are mapped to the car advert. Unsupported links (dealer pages, /m/ mobile paths) are skipped with a warning. |
startUrlsarray | Alias of "URLs" for users coming from other AutoTrader scrapers. When filled it takes precedence over URLs and switches the run to URL mode. |
maxItemsinteger | Alias of "Max listings". Used when Max listings is 0. |
endPageinteger | Alias of "Max pages per search": the larger of the two applies. |
fetchDetailsboolean | ON: each listing gets full description, spec breakdown, 10-point history check, service history, finance details, full gallery with image tags and complete dealer contact (one extra request per listing). OFF: faster, listing-grid fields only. |
includeFinanceGuidesboolean | OFF (default): keep only advert-specific finance (monthly price, FCA name/number, lender type). ON: also include AutoTrader's static PCP/HP/CS explainer text, which is identical for every advert and large. Only applies when 'Fetch full advert details' is ON. |
maxPagesinteger | How many result pages (about 20 listings each) to walk per search (1 page when left empty). AutoTrader caps a single search at 100 pages (about 2,000 listings). Subdivide with filters to go beyond that. Values above 100 are clamped to 100. |
maxListingsinteger | Overall cap across all searches/URLs. 0 means no cap (bounded by max pages). |
maxResidentialRequestsinteger | Budget control: the most residential exits the run may use before falling back to the backup pool. 0 disables residential entirely (datacenter + backup only). Residential is only used if datacenter gets rejected. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large crawl of listings without returning or charging for listings already collected there. Use this after an interrupted run, or when continuing a listing pull in another run. For recurring monitoring of the same search, use Incremental mode below instead. |
incrementalModeboolean | Turn this on for recurring monitoring of the same search. The first run returns all matching listings as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED listings. Turn on "Emit unchanged" or "Emit expired" only when you also want those listings returned (and billed). State is kept separately for each mode/filter combination; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the mode/filters, so different searches never mix state with each other. |
emitUnchangedboolean | Off by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns (and bills) extra rows you already have, so leave it off unless you specifically want the full snapshot every run. |
emitExpiredboolean | Off by default. Turn on to also return listings that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max listings/Max pages capped it, a page was blocked, or Resume was used. This returns (and bills) extra synthetic rows, so leave it off unless you need expiry tracking. |
ignoreFieldsForChangesarray | Field names that must NOT make a listing count as UPDATED, e.g. description or specifications..value (dotted paths; matches every list item). The fields are still returned in every row. Fields that move with the live market or your postcode (distance, badges, price rating, deviations, highlights) and image host names are always ignored. Changing this list never causes a one-time wave of UPDATED rows. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, Integrations, then select it here. Notion gets a page per vehicle; other connectors get a best-effort write. Each item is written as a condensed, human-readable summary (a title plus key fields), not the full JSON. Leave empty to skip. Supported: Notion, Linear, Airtable, Apify. |
notionParentPageUrlstring | URL or id of the Notion page under which vehicle pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on vehicles written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
advertIdAdvert IDchangeTypeChange Type (Incremental Mode) (text)urlURL (link)titleTitlesubTitleDerivativemakeMakemodelModelyearYearconditionConditionmileageMileagepricePricepriceFormattedPrice (text)Show 40 more fields
priceIndicatorPrice ratingmonthlyPriceMonthlyhasFinanceFinancefuelTypeFuelbodyTypeBodytransmissionGearboxengineSizeLitresEnginedoorsDoorsseatsSeatsbodyColourColourco2EmissionsCO2annualTaxTax/yrinsuranceGroupIns. groupsellerTypeSellerdealerNameDealerdealerReviewRatingDealer ratingdealerReviewCountDealer reviewsvehicleLocationLocationdistanceMilesDistance (mi)latitudeLatlongitudeLngnumberOfImagesPhotosvehicleCheckHistory checkchannelTypescrapedAtScrapedchangedFieldsChanged Fields (Incremental Mode) (text)firstSeenAtFirst Seen At (Incremental Mode)lastSeenAtLast Seen At (Incremental Mode)descriptionDescriptionkeySpecificationKey specspecificationsSpecificationsrunningCostsRunning costskeyFeaturesKey featuresstandardEquipmentStandard equipmentserviceHistoryService historyfinanceFinancefinanceProviderFinance providerfinanceTermMonthsFinance term (months)dealerDealerimagesImagesExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"advertId": "302099001122334",
"url": "https://www.autotrader.co.uk/car-details/302099001122334",
"channel": "cars",
"title": "Ford Focus",
"subTitle": "1.0 EcoBoost Titanium 5dr",
"make": "Ford",
"model": "Focus",
"vehicleCategory": "Car",
"year": 2021,
"condition": "used",
"mileage": 18500,
"price": 14500,
"priceFormatted": "£14,500",
"priceIndicator": "FAIR",
"priceIndicatorLabel": "Fair price",
"hasFinance": true,
"monthlyPrice": "£210",
"financeProvider": "Sample Finance",
"sellerType": "TRADE",
"dealerName": "Northgate Motor Group",
"dealerReviewRating": 4.3,
"dealerReviewCount": 182,
"vehicleLocation": "Leeds",
"distanceMiles": 12,
"latitude": 53.8,
"longitude": -1.5,
"images": [
"https://m.atcdn.co.uk/a/media/w800h600/sample0001.jpg"
],
"numberOfImages": 24,
"badges": [
{
"type": "MILEAGE",
"text": "18,500 miles"
}
],
"fuelType": "Petrol",
"bodyType": "Hatchback",
"engineSizeLitres": "1.0L",
"engineSizeCC": 999,
"transmission": "Manual",
"drivetrain": "Front Wheel Drive",
"doors": "5",
"seats": "5",
"bodyColour": "Blue",
"emissionClass": "Euro 6",
"trim": "Titanium",
"description": [
"A well maintained example with a full service history."
],
"keySpecification": [
{
"label": "Mileage",
"value": "18,500 miles"
}
],
"specifications": [
{
"category": "Performance",
"items": [
{
"label": "0-62mph",
"value": "10.5 seconds"
}
]
}
],
"keyFeatures": [
"Apple CarPlay",
"Cruise Control"
],
"standardEquipment": [
"Bluetooth",
"Air Conditioning"
],
"runningCosts": [
{
"label": "Insurance group",
"value": "12E"
}
],
"co2Emissions": "108g/km",
"annualTax": "£180",
"fuelConsumption": "54.3mpg",
"insuranceGroup": "12E",
"vehicleCheck": {
"status": "PASSED",
"statusText": "10 checks passed",
"checks": [
{
"id": "STOLEN",
"label": "Not recorded as stolen",
"status": "PASSED"
}
]
},
"serviceHistory": {
"type": "FULL",
"label": "Service history",
"description": "Full service history"
},
"owners": "2",
"finance": {
"monthlyPrice": "£210",
"fcaName": "Sample Finance Limited",
"fcaNumber": "000111",
"lenderType": "appointed representative"
},
"dealer": {
"name": "Northgate Motor Group",
"email": "sales@example-dealer.co.uk",
"phone": "(0113) 496 0000",
"website": "https://www.example-dealer.co.uk",
"address": "1 Sample Business Park",
"town": "Leeds",
"county": "West Yorkshire",
"postcode": "LS1 4AP",
"openingHours": [
{
"day": "Monday",
"hours": "09:00 - 18:00"
}
]
},
"galleryImages": [
{
"url": "https://m.atcdn.co.uk/a/media/w800h600/sample0001.jpg",
"tags": [
"Front Right"
]
}
],
"scrapedAt": "2026-01-01T00:00:00.000Z"
}Ways to use this data
- Dealer stock monitoring: track a dealer's or a competitor's live inventory, price changes and how long stock sits before it sells.
- Market pricing research: build price-per-mile and price-per-year datasets across makes and models to spot under- and over-priced listings.
- Lead generation: collect dealer contact details and current stock for outreach lists or an aggregator site.
- Vehicle history and condition screening: pull the 10-point history check and full specification before shortlisting a vehicle.
- Price-drop and new-listing alerts: schedule Incremental mode so you only hear about listings that appear, change price, or disappear.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does AutoTrader UK Scraper return?
The documented output for AutoTrader UK Scraper includes advert id, change type (incremental mode), url, title, derivative, make, model and year. Availability of each field depends on the source page and the selected mode.
How much does AutoTrader UK Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new, changed or expired listings on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Later runs then return only NEW and UPDATED listings by default, and unchanged ones are not billed. Turn on Emit expired to also learn when a tracked listing disappears, once a run has scanned the whole search end to end; REAPPEARED only appears once that has happened, for a listing an earlier such run had marked gone.
Why does a pasted advert URL return so many empty fields?
A pasted advert URL is fetched directly, without going through the search grid, so it never picks up the search-grid-only fields (title, make, model, year, price, badges, photo list, condition, price indicator, monthly price, number of images, vehicle location). It still returns the full detail-page fields (specification, history check, finance, gallery, dealer contact, mileage). To get both for the same vehicle, also pass a search URL that would surface it, or use search mode with matching filters.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
