Auto Trader UK Dealer Profile Scraper
Pricing
Pay per usage
Auto Trader UK Dealer Profile Scraper
Scrapes Auto Trader UK dealer profile pages and returns structured JSON with dealer name, contact details, stock counts, services, awards, reviews, and location data. Designed for Clay enrichment workflows.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Muhammad Hashir
Maintained by CommunityActor stats
0
Bookmarked
0
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
What does Auto Trader UK Dealer Profile Scraper do?
Auto Trader UK Dealer Profile Scraper is an Apify Actor that extracts structured dealer data from Auto Trader UK dealer profile pages. For each dealer it returns name, address, contact details, opening hours, manufacturer approval status, brand badges, stock counts, services, awards, reviews, about text, coordinates, and more.
Run it on Apify for scheduling, API access, proxy rotation, and integrations — or locally with apify run.
Full documentation: ./DOCUMENTATION.md — all three input modes, architecture, field logic, API, troubleshooting, and Clay mapping.
Why use this Actor?
- Clay-ready fields — Maps to LAYER1 columns (
at_dealer_profile_url,at_manufacturer_approved, stock counts, services, awards, reviews, etc.) - Three input modes — Direct profile URLs, website domains, or company name + postcode
- Efficient — Parses embedded
AT_APOLLO_STATEJSON; no browser per profile scrape - Franchised + independent — Tested on dealers such as Dundee Audi, Citygate Kia Slough, and Group 1 BMW
How to use
- Create an Apify account.
- Open the Actor → Input tab.
- Choose one or more input modes (see below). Clear the fields you are not using.
- Start the run → download results from Dataset (JSON, CSV, Excel).
Local run
pip install -r requirements.txtplaywright install chromiumapify run
For local runs, set "useApifyProxy": false in proxyConfiguration (or leave it unset — the Actor disables proxy automatically when running locally).
Three input modes
| Mode | Field | You provide | Best for |
|---|---|---|---|
| 1 | dealer_urls | Auto Trader profile URL | Fastest — you already have the link |
| 2 | root_domains | Website domain | You have the dealer website, not the AT link |
| 3 | dealer_searches | Company name + UK postcode | You have dealer name and location |
You can combine all three in one run.
Mode 1 — Direct URL
{"dealer_urls": ["https://www.autotrader.co.uk/dealers/dundee-audi-8218?channel=cars"]}
Mode 2 — Website domain
{"root_domains": ["sloughmotorgroup.co.uk"]}
The Actor searches Auto Trader, matches the dealer's website field to your domain, then scrapes the profile.
Mode 3 — Company name + postcode
{"dealer_searches": [{"company_name": "Dundee Audi","postal_code": "AB12 3AW"}]}
The Actor searches Auto Trader via GraphQL, takes the first result, then scrapes the profile.
See ./DOCUMENTATION.md#7-input-reference for full input details and ./DOCUMENTATION.md#5-execution-flow for how each mode works.
Input (summary)
| Field | Description |
|---|---|
dealer_urls | Mode 1 — AT dealer profile URLs |
root_domains | Mode 2 — Website domains (Actor finds AT profile) |
dealer_searches | Mode 3 — Company name + UK postcode (first search result) |
max_items | Limit dealers (0 = unlimited) |
max_concurrency | Parallel requests (default 10) |
proxyConfiguration | Apify Proxy (auto on Cloud, off locally) |
The Apify Console input form includes example defaults for each mode so users can see the format and edit easily.
Output (summary)
One JSON object per dealer. Example (franchised):
{"dealer_name": "Dundee Audi","at_dealer_profile_url": "https://www.autotrader.co.uk/dealers/dundee-audi-8218?channel=cars","address": "Kings Cross Road, Dundee, Angus","postcode": "DD2 3PT","phone": "(01382) 935860","website": "http://www.john-clark.co.uk/audi/","manufacturer_approved": true,"brand_badges": ["AUDI"],"used_stock_count": 124,"new_stock_count": 20,"review_score": 4.9,"review_count": 429,"dealer_type": "franchised"}
All 25 fields are documented in ./DOCUMENTATION.md#8-output-reference.
Data table
| Field | Description |
|---|---|
dealer_name | Trading name |
at_dealer_profile_url | Profile URL |
address / postcode | Location |
phone / website / email | Contact |
opening_hours | Opening times |
manufacturer_approved | Approved badge |
brand_badges | Franchise brands |
used_stock_count / new_stock_count | Stock |
services / awards | Lists |
review_score / review_count | Reviews |
about_text / family_owned / years_established | About |
lat / long | Coordinates |
dealer_type | franchised or independent |
root_domain | Input domain (Mode 2 only) |
scraped_at | UTC timestamp |
error | Error message if failed |
Pricing / cost
| Mode | Relative cost |
|---|---|
dealer_urls | Low (~target $0.005/profile on Apify Cloud) |
dealer_searches | Low–medium (1 GraphQL search + 1 profile fetch per dealer) |
root_domains | Higher (Playwright search + up to 40 profile checks per domain) |
Enable Apify Proxy on Cloud if you see 403 errors. Local runs do not use Apify Proxy by default.
Tips
- Prefer
dealer_urlswhen you already have Auto Trader links — fastest and cheapest. - Use
dealer_searcheswhen you have dealer name + postcode but not the URL. - Use
root_domainswhen you have the dealer website and need to find their AT profile. - Clear unused input fields in the Console so only your chosen mode runs.
- Use
max_itemsfor test runs. - See ./DOCUMENTATION.md#20-troubleshooting for errors.
FAQ
Public Auto Trader dealer pages only — no listings, no login. You are responsible for ToS compliance.
Which mode should I use? See the comparison table in ./DOCUMENTATION.md#71-choosing-an-input-mode.
Stock counts, brand badges, or group-domain resolution? See ./docs/FIELD-RESEARCH-Q7-Q8-Q9.md — verified answers for new_stock_count, new vs Approved Used badges, and multi-profile URL resolution.
Issues? Apify Console → Actor → Issues tab, or see full ./DOCUMENTATION.md.