# AutoTrader South Africa Cars Scraper (`getascraper/autotrader-za-cars-scraper`) Actor

Extract used and new car listings from AutoTrader.co.za with real price, year, and mileage filters, make/model, dealer details, and photo galleries. JSON or CSV rows ready for Sheets, Make, and Zapier.

- **URL**: https://apify.com/getascraper/autotrader-za-cars-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.66 / 1,000 car listings

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 South Africa Cars Scraper

<table width="100%" style="table-layout:fixed;border-collapse:collapse">
<tr>
<td colspan="3" style="padding:14px 18px;background:#FFF7ED;border-top:3px solid #EA580C;border-left:1px solid #FCD9B4;border-right:1px solid #FCD9B4;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">South Africa's largest car marketplace, now part of a regional car-data suite.</span> <span style="font-size:15px;color:#57534E">AutoTrader.co.za listings sit alongside DubiCars and YallaMotor coverage for teams tracking used-car inventory across South Africa, the UAE, and the wider Gulf.</span>
</td>
</tr>
<tr>
<td colspan="3" style="padding:10px 14px;background:#EA580C;border-left:1px solid #FCD9B4;border-right:1px solid #FCD9B4">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">MIDDLE EAST AND AFRICA USED-CAR MARKETPLACES</span>
<span style="color:#FED7AA;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;South Africa, UAE, and wider Middle East used-car listings in one product line</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #FCD9B4;border-bottom:1px solid #FCD9B4;vertical-align:top;width:33.333%;background:#FFF7ED;border-radius:0 0 0 8px">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-cb6cBSNcP7QgaNfzZ-QTKTxVKMSF-images_%2842%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/autotrader-za-cars-scraper" style="color:#EA580C;text-decoration:none;font-weight:700;font-size:13px">AutoTrader&nbsp;SA</a></span><br>
<span style="color:#EA580C;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border-right:1px solid #FCD9B4;border-bottom:1px solid #FCD9B4;vertical-align:top;width:33.333%;background:#FFFFFF">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-fNhrHrILPlfsWbJdt-Wtb1FIPTuf-images_%2838%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/dubicars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">DubiCars&nbsp;UAE</a></span><br>
<span style="color:#57534E;font-size:11px">Public UAE vehicle listing feed</span>
</td>
<td style="padding:10px 12px;border-right:1px solid #FCD9B4;border-bottom:1px solid #FCD9B4;vertical-align:top;width:33.333%;background:#FFFFFF;border-radius:0 0 8px 0">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-KyYnxEXfNgAiGsE9u-TLgd6MjZOe-ym-default-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/yallamotor-cars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">YallaMotor&nbsp;Gulf</a></span><br>
<span style="color:#57534E;font-size:11px">UAE and Gulf used-car data</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FFF7ED;border:1px solid #FCD9B4;border-top:4px solid #EA580C;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">South Africa's biggest car marketplace, turned into structured data.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Scrape public AutoTrader.co.za car listings with real price, mileage, and year filters, and export prices, specs, dealer info, and photo galleries to Sheets, Excel, or n8n.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FCD9B4;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#EA580C">🎯 Real filters</span><br>
<span style="font-size:12px;color:#57534E">Price, mileage, and year, matched to AutoTrader's own real filter panel.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FCD9B4;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#EA580C">🚙 Make & model aware</span><br>
<span style="font-size:12px;color:#57534E">Narrow to a specific make or model, or search all of South Africa.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FCD9B4;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#EA580C">🪪 Dealer context</span><br>
<span style="font-size:12px;color:#57534E">Dealer name, location, and star rating for every listing.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FCD9B4;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#EA580C">🖼️ Full galleries</span><br>
<span style="font-size:12px;color:#57534E">Cover image plus every public listing photo.</span>
</td>
</tr>
</table>

Most AutoTrader scrapers hand you a keyword box and hope. This Actor exposes the same price, mileage, and year filters you'd use on the site itself, so what you scrape is already the inventory you actually want.

### 🔍 What does AutoTrader South Africa Cars Scraper do?

AutoTrader South Africa Cars Scraper turns public car listings from [AutoTrader.co.za](https://www.autotrader.co.za/cars-for-sale), South Africa's largest car marketplace, into structured data: price, year, mileage, fuel type, transmission, dealer details, and full photo galleries.

Pick a make and model and a price, mileage, or year range, or paste an AutoTrader.co.za search link built on the site itself. Run it once for a quick export, or schedule it on Apify to track inventory changes over time. The Actor returns only data present on the public listing.

### 💡 Why use it?

- **Dealers and sourcing teams** can pull inventory under a price and mileage ceiling across any make or model without checking listings one by one.
- **Market researchers** can track price, year, and mileage across comparable vehicles for pricing analysis.
- **Buyers and resellers** can monitor a filtered slice of the market on a schedule and catch new listings as they post.
- **Data teams already covering other regions** can add AutoTrader.co.za as a South African source alongside this portfolio's European and Indian car actors, since each site carries its own distinct listings and dealer network.

### 🧭 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FCD9B4;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#EA580C;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your filters</span><br>
<span style="font-size:12px;color:#57534E">Make/model, price, mileage, and year.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FCD9B4;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#EA580C;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run the Actor</span><br>
<span style="font-size:12px;color:#57534E">Set how many listings and pages to collect.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FCD9B4;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#EA580C;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export results</span><br>
<span style="font-size:12px;color:#57534E">Download your dataset in JSON, CSV, Excel, or HTML.</span>
</td>
</tr>
</table>

### 🧾 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | array of URLs | No | Paste public AutoTrader.co.za search links, built however you like on the site. Overrides Make/Model and the filters below. |
| `make` | string | No | Car brand, e.g. `Toyota`, `Volkswagen`, `Land Rover`. |
| `model` | string | No | Car model, e.g. `Hilux`, `Polo`. Used together with Make. |
| `priceFrom` / `priceTo` | integer | No | Minimum and maximum asking price, in South African Rand. |
| `yearFrom` / `yearTo` | integer | No | Earliest and latest model year. |
| `mileageFromKm` / `mileageToKm` | integer | No | Minimum and maximum odometer reading, in kilometers. |
| `sortOrder` | string | No | Price low/high, mileage low/high, or most recent ads. |
| `maxItems` | integer | No | Maximum listings saved to the dataset. Default `25`. |
| `maxPages` | integer | No | Maximum search result pages read. Default `5`. |
| `proxyConfiguration` | object | No | Optional proxy settings. Not required for normal use. |

### 📦 Output

Every record includes the listing link, price, year, mileage, fuel type, transmission, dealer details, and the full public photo gallery.

```json
{
  "listing_url": "https://www.autotrader.co.za/car-for-sale/toyota/hilux/2.8gd-6/28695086",
  "listing_id": 28695086,
  "title": "Toyota Hilux 2.8GD-6 Xtra Cab Legend Auto",
  "make": "Toyota",
  "model": "Hilux",
  "variant": "2.8GD-6 Xtra Cab Legend Auto",
  "condition": "Used Car",
  "price": 479900,
  "price_formatted": "R 479 900",
  "currency": "ZAR",
  "year": 2021,
  "mileage_km": 178169,
  "fuel_type": "Diesel",
  "transmission": "Automatic",
  "seller_type": "Dealer",
  "dealer_name": "CITMoto",
  "dealer_city": "Pretoria",
  "dealer_rating_score": 4.7,
  "image_url": "https://img.autotrader.co.za/47873032",
  "scraped_at": "2026-08-20T13:37:18.984Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `listing_url`, `listing_id` | string, number | Public listing link and its source identifier. |
| `title`, `make`, `model`, `variant`, `condition` | string | Listing headline, vehicle breakdown, and new/used status. |
| `price`, `price_formatted`, `currency` | number, string | Asking price as a real number in Rand, the source's own formatted text (e.g. "R 379 900"), and currency. |
| `year`, `mileage_km` | number | Model year and odometer reading in kilometers. |
| `fuel_type`, `transmission` | string | Vehicle specification fields, when published. |
| `seller_type`, `dealer_name`, `dealer_suburb`, `dealer_city` | string | Whether the seller is a dealer, and their name and location. |
| `dealer_rating_score`, `dealer_rating_count` | number | Dealer star rating and how many ratings it's based on, when published. |
| `image_url`, `image_urls`, `image_count` | string, array, number | Cover photo, the full public photo gallery, and total photo count. |
| `is_premium`, `is_certified`, `is_special` | boolean | Listing badges, when published. |
| `source_url` | string | The search URL that produced this listing. |
| `scraped_at` | string | Timestamp of when this record was built. |

Any field the source listing does not publish is left out of that record entirely, so you never see placeholder or made-up values. The `price` field is always the real numeric asking price; the source's formatted "R 379 900" text is kept separately in `price_formatted` for reference, never used as the numeric value.

### 💰 Pricing

This Actor runs on Apify's pay-per-event pricing. You only pay for listings actually returned, and an empty or failed run costs nothing beyond a few seconds of compute. There is no subscription.

### ⭐ Enjoying AutoTrader South Africa Cars Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FFF7ED;border:1px solid #FCD9B4;border-left:5px solid #EA580C;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">This Actor just saved you from checking AutoTrader listings one at a time.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other dealers, researchers, and buyers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#EA580C;border:1px solid #FCD9B4;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/autotrader-za-cars-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🛠️ Tips and advanced options

- Set both `priceFrom` and `priceTo` together to cut down on irrelevant results fast.
- `make` and `model` accept any brand or model AutoTrader covers, not just the popular ones. Use the name as it appears on the site, e.g. `Land Rover`, `Mercedes-Benz`.
- For a search you don't see modeled cleanly, paste that search directly from AutoTrader.co.za into `startUrls`; the Actor follows any valid AutoTrader car search link.
- Use `sortOrder` with a small `maxItems` to grab just the cheapest or most recent listings for a make/model without paging through the whole inventory.

### ❓ FAQ

**Why is `price` a plain number instead of the "R 379 900" text I see on the site?**
AutoTrader's own display price is a formatted string with spacing that isn't something you can sort, filter, or chart directly. This Actor converts it to a real number in Rand for the `price` field, and keeps the original formatted text separately in `price_formatted` for reference.

**Can I filter by a specific make or model?**
Yes, with the `make` and `model` input fields, or by pasting a make/model search link from AutoTrader.co.za into `startUrls` for anything not covered cleanly by those fields.

**Why is a field missing from an item?**
AutoTrader listings don't publish every detail on every listing. Missing values are omitted rather than replaced with guesses.

**Is this affiliated with AutoTrader?**
No. This is an independent tool that collects publicly available listing information. Use it in line with applicable rules and the source website's terms.

Found a bug or want a feature added? Open an issue on the Actor's Issues tab, or reach out for a custom version of this Actor.

### 🔗 Other actors

- [Standvirtual Cars Scraper: Carros usados](https://apify.com/getascraper/standvirtual-cars-scraper) ↗ - Used-car listings from Portugal's largest car marketplace.
- [Carwale Used Cars Scraper: India Listings](https://apify.com/getascraper/carwale-used-cars-scraper) ↗ - Used-car listings from one of India's largest car marketplaces.
- [OtoMoto Cars Scraper: Samochody używane](https://apify.com/getascraper/otomoto-cars-scraper) ↗ - Used-car inventory from Poland's largest car marketplace.
- [Marktplaats Cars Scraper: Tweedehands auto's](https://apify.com/getascraper/marktplaats-cars-scraper) ↗ - Used-car listings from the Netherlands.
- [Blocket Cars Scraper: Bilar till salu](https://apify.com/getascraper/blocket-cars-scraper) ↗ - Used-car listings from Sweden's largest classifieds marketplace.

# Actor input Schema

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

Paste one or more AutoTrader.co.za car search links directly, built however you like on the site itself. When set, this replaces Make/Model and the filters below. Leave empty to build the search from those fields instead.

## `make` (type: `string`):

Car brand, e.g. "Toyota", "Volkswagen", "Land Rover". Matches AutoTrader's own make filter, applied as part of the search URL. Leave blank to search all makes.

## `model` (type: `string`):

Car model, e.g. "Hilux", "Polo", "Range Rover Evoque". Only used together with Make. Leave blank to search all models of the chosen make.

## `priceFrom` (type: `integer`):

Minimum asking price in South African Rand.

## `priceTo` (type: `integer`):

Maximum asking price in South African Rand.

## `yearFrom` (type: `integer`):

Earliest model year.

## `yearTo` (type: `integer`):

Latest model year.

## `mileageFromKm` (type: `integer`):

Minimum odometer reading in kilometers.

## `mileageToKm` (type: `integer`):

Maximum odometer reading in kilometers.

## `sortOrder` (type: `string`):

How results are ordered. Default follows AutoTrader's own default relevance order.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. AutoTrader.co.za works with a direct connection by default.

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

Maximum number of unique car listings to return.

## `maxPages` (type: `integer`):

Maximum number of search result pages to visit.

## Actor input object example

```json
{
  "startUrls": [],
  "make": "Toyota",
  "model": "Hilux",
  "sortOrder": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10,
  "maxPages": 2
}
```

# 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": [],
    "make": "Toyota",
    "model": "Hilux",
    "sortOrder": "",
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "maxItems": 10,
    "maxPages": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/autotrader-za-cars-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": [],
    "make": "Toyota",
    "model": "Hilux",
    "sortOrder": "",
    "proxyConfiguration": { "useApifyProxy": False },
    "maxItems": 10,
    "maxPages": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/autotrader-za-cars-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": [],
  "make": "Toyota",
  "model": "Hilux",
  "sortOrder": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10,
  "maxPages": 2
}' |
apify call getascraper/autotrader-za-cars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/autotrader-za-cars-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/cb6cBSNcP7QgaNfzZ/builds/g9PX6pv06pbtUkE5E/openapi.json
