Cars.co.za Listings Scraper
Pricing
Pay per usage
Cars.co.za Listings Scraper
Scrape used and new car listings from Cars.co.za - South Africa's largest automotive classifieds marketplace.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Kyle Pretorius
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape used and new car listings from Cars.co.za - South Africa's largest automotive classifieds marketplace. Filter by make, model, province, and maximum price.
What it scrapes
Public listing search results from cars.co.za/usedcars/. Each result includes the listing title, price, year, mileage, province, transmission, fuel type, listing URL, and image URL.
Inputs
| Parameter | Type | Default | Description |
|---|---|---|---|
make | string | Toyota | Car make (e.g. Toyota, BMW, Ford). Leave blank for all makes. |
model | string | `` | Car model (e.g. Hilux, 3 Series). Requires make to be set. |
province | string | `` | Province filter (e.g. Western Cape, Gauteng). Leave blank for all provinces. |
maxPriceZAR | integer | (none) | Maximum listing price in South African Rand. |
maxResults | integer | 100 | Maximum number of listings to return (1-10000). |
Supported province values: Gauteng, Western Cape, KwaZulu-Natal, Eastern Cape, Free State, Limpopo, Mpumalanga, North West, Northern Cape.
Output fields
| Field | Type | Description |
|---|---|---|
title | string | Vehicle title (year, make, model, variant) |
price_zar | integer | Cash price in South African Rand |
year | integer | Model year |
mileage_km | integer | Odometer reading in kilometres |
province | string | Province where the vehicle is listed |
seller_type | string | "Private" or "Dealer" (null if not shown on listing card) |
transmission | string | "Automatic" or "Manual" |
fuel_type | string | "Petrol", "Diesel", "Electric", or "Hybrid" |
url | string | Direct URL to the listing page |
image_url | string | URL of the main listing photo |
listing_date | string | Date the listing was posted (null - not available in search results) |
Sample output
{"title": "2026 Toyota Hilux 2.8 GD 6 RB Raider X Auto Extended Cab","price_zar": 699900,"year": 2026,"mileage_km": 20261,"province": "Limpopo","seller_type": null,"transmission": "Automatic","fuel_type": "Diesel","url": "https://www.cars.co.za/for-sale/new/2026-Toyota-Hilux-2.8-GD-6-RB-Raider-X-Auto-Extended-Cab-Limpopo-Bela-Bela/11041272/","image_url": "https://img-ik.cars.co.za/ik-seo/carsimages/tr:n-search_result400x300:f-auto/11041272/2026-Toyota-Hilux-28-GD-6-RB-Raider-X-Auto-Extended-Cab.jpg?v=841307295","listing_date": null}
Pricing
This actor uses pay-per-result pricing at $1.00 per 1,000 results. Scraping 100 listings costs $0.10.
Limitations
listing_dateis not available on search result pages and will always be null. To get the listing date, scrape the individual listing page.seller_type(Private vs Dealer) is not shown on search result cards and will be null in most cases.- Transmission and fuel type are extracted from the listing card text when available; when absent, they are inferred from the vehicle name in the URL slug (e.g. "-Auto-" maps to "Automatic", "-GD-" maps to Diesel).
- The site returns approximately 20 listings per page. Fetching 1,000 results requires 50 page requests.
- The site may enforce rate limits for very large crawls. The actor uses a concurrency of 3 with automatic retries.
- cars.co.za uses React with server-side rendering. If the site migrates to client-side-only rendering, a browser-based crawler (Playwright) would be needed.
- On the Apify platform the actor uses residential proxies automatically. Running locally may result in IP blocks for large crawls.