Discover/AutoTrader API
live

AutoTrader APIautotrader.co.za

Access AutoTrader South Africa vehicle listings via API. Get pricing, specs, mileage, seller info, and location for cars listed on autotrader.co.za.

Endpoint health
verified 3d ago
search
details
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the AutoTrader API?

The AutoTrader South Africa API provides access to vehicle listings from autotrader.co.za across 2 endpoints. The search endpoint returns paginated lists of listings filtered by make or make/model path, while the details endpoint retrieves full data for a single listing URL — including price in ZAR, mileage, variant, seller details, and geographic location broken down to suburb level.

Try it
The vehicle make or make/model path (e.g. 'bmw', 'mitsubishi/pajero', 'toyota/hilux').
The page number of search results to fetch.
Maximum number of listings to return from the current page.
api.parse.bot/scraper/eafb98aa-144f-46a0-9f37-efce3818015f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/eafb98aa-144f-46a0-9f37-efce3818015f/search?make=bmw&page=1&limit=2' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace autotrader-co-za-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: AutoTrader South Africa — search listings and fetch details."""
from parse_apis.autotrader_south_africa_scraper_api import AutoTrader, ListingNotFound

client = AutoTrader()

# Search BMW listings, capped at 5 total items.
for listing in client.listings.search(make="bmw", limit=5):
    print(listing.title, listing.price, listing.year)

# Drill into the first Toyota result for full details.
first = client.listings.search(make="toyota", limit=1).first()
if first:
    print(first.title, first.mileage)
    print(first.location.city, first.location.province)
    print(first.vehicle_details.fuel_type, first.vehicle_details.gearbox)
    print(first.seller.name, first.seller.type)

    # Fetch full details by URL (same shape, confirms the listing is live).
    try:
        detail = client.listings.get(url=first.url)
        print(detail.listing_id, detail.variant, detail.price)
    except ListingNotFound as exc:
        print(f"Listing removed: {exc.url}")

print("exercised: listings.search / listings.get / ListingNotFound")
All endpoints · 2 totalmissing one? ·

Search for vehicle listings by make and optionally model. Returns a list of detailed listing information including price, specifications, location, and seller details. Each listing requires a separate page fetch, so larger limits take longer. Paginates by page number; results are ordered by the site's default relevance.

Input
ParamTypeDescription
makerequiredstringThe vehicle make or make/model path (e.g. 'bmw', 'mitsubishi/pajero', 'toyota/hilux').
pageintegerThe page number of search results to fetch.
limitintegerMaximum number of listings to return from the current page.
Response
{
  "type": "object",
  "fields": {
    "make": "string, the make query used",
    "page": "integer, current page number",
    "listings": "array of listing objects with full vehicle details",
    "total_listings_on_page": "integer, number of listing URLs found on the page (before limit applied to detail fetches)"
  },
  "sample": {
    "data": {
      "make": "bmw",
      "page": 1,
      "listings": [
        {
          "url": "https://www.autotrader.co.za/car-for-sale/bmw/z3/2.8i/28468691",
          "make": "BMW",
          "year": "1998",
          "model": "Z3",
          "price": "199995",
          "title": "1998 BMW Z3 2.8i Auto",
          "seller": {
            "id": "21953",
            "name": "Autoworld Exotic",
            "type": "Trade",
            "whatsapp_available": true
          },
          "mileage": "144000",
          "variant": "2.8i Auto",
          "location": {
            "city": "Goodwood",
            "suburb": "Richmond",
            "province": "Western Cape"
          },
          "listing_id": "28468691",
          "vehicle_details": {
            "colour": "Red",
            "gearbox": "Automatic",
            "body_type": "Cabriolet",
            "fuel_type": "Petrol",
            "engine_capacity": "2793"
          }
        }
      ],
      "total_listings_on_page": 2
    },
    "status": "success"
  }
}

About the AutoTrader API

Endpoints

The search endpoint accepts a make parameter (e.g. bmw, toyota/hilux, mitsubishi/pajero) and returns an array of Listing objects from the specified page of results. Each listing in the response includes the full set of vehicle details: price, year, model, variant, mileage, seller information, and location. The optional limit parameter controls how many listings are returned from the current page, and the page parameter navigates through paginated results. The response also reports total_listings_on_page, which reflects how many listing URLs were found before the limit was applied.

Listing Details

The details endpoint takes the full autotrader.co.za listing URL and returns structured data for that specific vehicle. Response fields include make, year, model, variant, title (a formatted string combining those fields), price as a plain ZAR numeric string, mileage in km (or null if not listed), a location object with province, city, and suburb, and a seller object containing name, id, type, and a whatsapp_available boolean. If the listing has been removed, the endpoint returns input_not_found.

Coverage and Limitations

Coverage is specific to South Africa — all listings and pricing are in ZAR and sourced from autotrader.co.za. Direct seller phone numbers are not exposed in the response. Each listing in a search result requires an individual fetch, so setting a high limit value increases response time proportionally. Pagination is by integer page number; there is no cursor-based navigation.

Reliability & maintenanceVerified

The AutoTrader API is a managed, monitored endpoint for autotrader.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when autotrader.co.za changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official autotrader.co.za API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track asking prices by make and model to build a used-car valuation model for the South African market
  • Aggregate mileage and price data across a model range to identify depreciation patterns
  • Monitor new listings for a specific make/model path (e.g. toyota/hilux) to alert buyers when inventory is added
  • Extract seller type and location data to analyze dealer vs. private seller distribution by province
  • Populate a comparison tool that surfaces price, variant, and mileage side-by-side for a given make
  • Check whether a specific listing URL is still active before sending it to a prospective buyer
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does AutoTrader South Africa have an official developer API?+
AutoTrader South Africa does not publish a public developer API or documented data access program for third-party use.
What does the `search` endpoint return for each listing, and how is pagination handled?+
Each listing in the search response includes price, year, make, model, variant, mileage, seller details, and a location object with province, city, and suburb. Pagination is controlled by the integer page parameter. The total_listings_on_page field tells you how many listing URLs existed on that page before the limit was applied, so you can determine whether additional pages exist.
Are seller phone numbers available through the API?+
Phone numbers are not included in the response. The seller object exposes name, id, type, and a whatsapp_available boolean. You can fork this API on Parse and revise it to surface additional contact fields if they become accessible.
Does the API cover other vehicle categories like motorcycles, trucks, or boats?+
The current endpoints are oriented around car listings accessed via make/model paths. Motorcycles, trucks, and other vehicle categories are not explicitly covered. You can fork this API on Parse and revise it to add endpoints targeting those listing categories.
How fresh is the listing data, and what happens if a listing is removed?+
The data reflects the current state of autotrader.co.za at the time of the request. If a listing has been taken down, the details endpoint returns input_not_found rather than stale data. There is no built-in historical or archival access.
Page content last updated . Spec covers 2 endpoints from autotrader.co.za.
Related APIs in AutomotiveSee all →
autotrader.ca API
Search vehicle listings on AutoTrader.ca and retrieve detailed information including specifications, pricing, mileage, and seller contact details. Compare listings across makes, models, and locations to support vehicle research and purchasing decisions.
autotrader.com API
Search Autotrader.com vehicle listings and access detailed information like pricing, specifications, and VIN data with flexible filtering options. Browse all available vehicle makes and models to refine your search across thousands of listings.
autotrader.com.au API
Search and browse car listings on AutoTrader Australia with filters by make and model, then view detailed information about specific vehicles. Find available cars with full specs and compare options across thousands of listings using customizable filters.
cars.com API
Search for vehicles on Cars.com using filters like price, make, and model, then get detailed specifications and dealer inventory information for any listing you're interested in. Access comprehensive vehicle details including pricing, features, and dealer contact information all in one place.
avto.net API
Search and browse car listings from Slovenia's top automotive marketplace, then access detailed vehicle information including pricing, specifications, and seller details. Get comprehensive data on available cars to compare options and make informed purchasing decisions.
exoticcartrader.com API
Search and browse exotic, collector, and classic car listings with detailed vehicle information including specs, VIN numbers, photos, and lot details. Discover featured vehicles by make or category, read expert reviews, and stay updated with industry blog posts all in one place.
carsforsale.com API
Search vehicle listings and browse detailed car inventory by make, model, and trim to find the perfect vehicle on CarsForSale.com. Access comprehensive listing details including pricing, specifications, and availability all in one place.
equipmenttrader.com API
Search and browse thousands of machinery listings with detailed pricing, specifications, and seller contact information. Find the right equipment for your needs by filtering inventory across Equipment Trader's marketplace.