Ultimate Car Listings Scraper (50+ Sites) avatar

Ultimate Car Listings Scraper (50+ Sites)

Pricing

Pay per usage

Go to Apify Store
Ultimate Car Listings Scraper (50+ Sites)

Ultimate Car Listings Scraper (50+ Sites)

Scrape car listings from 50+ marketplaces (AutoTrader ZA/CA/AU/NZ, Cars.co.za, WeBuyCars, Craigslist, TrueCar, Bring a Trailer, Gumtree, OLX + more). Filter by brand/model/year/mileage/price, run by page range or resume state, export clean JSON to Apify Dataset + STATE/SUMMARY—no browser. Fast. Done

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Used Car Listings Scraper for Apify (Cars Actor)

Scrape used car listings from 96 car marketplaces across the US, UK, South Africa, Australia, Canada, Europe, Asia, Latin America, and the Middle East.

This Apify Cars Actor extracts structured automotive data including:

  • listing URL and listing ID
  • price and currency code
  • country code
  • year, brand, model, mileage
  • dealer/location metadata

It is built for car price monitoring, automotive lead generation, market intelligence, and historical vehicle listing datasets.

Why This Car Scraper Actor

  • Multi-country used car scraping from popular marketplaces.
  • Fast default run profile that can complete in under 5 minutes.
  • Brand/model/year/price/mileage filters for targeted extraction.
  • Output to Apify Dataset in clean JSON rows.
  • Source registry and smoke tests for production quality control.
  • Brand mismatch rows are excluded from final output when brand filters are set.

Representative sources include:

  • truecarus, carmaxus, autolistus, enterprisecarsalesus, craigslistus, bringatrailerus, classiccarsus
  • carscoza, webuycars, autotraderza, gumtreeza, carshopza, motusselectza, kiacertifiedza
  • autotraderau, carsguideau, driveau, picklesau, justcarsau, onlycarsau, johnhughesau
  • autotraderca, kijijica
  • pistonheadsuk, motorsuk, carwowuk, gumtreeuk, theaausedcarsuk, carandclassicuk
  • autovitro, otomotopl, marktplaats, finnno, standvirtualpt, autobazareu
  • cardekho, carwalein, pakwheels, chototvn, ikmanlk, sgcarmartsg
  • mercadolibrear, mercadolibremx, and additional MercadoLibre country sources
  • dubizzlekw, dubizzleqa, dubizzleom, dubizzlebh

Complete source list is maintained in:

  • Actors/cars/registry.py

Actor Output Schema (Dataset Fields)

Apify metadata files (for console schema discovery):

  • .actor/actor.json
  • .actor/input_schema.json
  • .actor/output_schema.json
  • .actor/dataset_schema.json

Core fields:

  • source, source_site
  • country_code, country_name, currency_code
  • listing_id, url, title, car_name
  • price, year, brand, model, mileage_km

Additional fields:

  • trim, body_type, engine_size_cc, power_kw, doors, seats
  • transmission, fuel, drivetrain, colour, condition
  • dealer, dealer_key, location
  • description, image_url, vin, stock_reference
  • listing_status, status_checked_at, scraped_at, raw_detail

Fast Default Inputs (Under 5 Minutes)

Defaults are tuned for quick validation runs:

  • websites=["truecarus"]
  • pagesPerRun=1
  • maxListings=5
  • sourceConcurrency=1
  • minDelay=0.2
  • maxDelay=0.6

Input Highlights

See full schema in:

  • Actors/cars/input_schema.json

Key inputs:

  • websites (preferred): multi-select sources
  • countries: optional multi-select country codes; can be used instead of websites
  • Paging: startPage, endPage, or incremental pagesPerRun + resumeState
  • Filters: brandQuery, brandFilter, modelQuery, modelFilter
  • Range filters: yearMin, yearMax, mileageMin, mileageMax, minPrice, maxPrice
  • Output controls: includeRawDetail, compactRawDetail, rawDetailTextLimit

Apify Pay-Per-Event Billing

Billing is always enabled in the Cars Actor for:

  • each output result row (per-result billing), and
  • each website/source searched (per-website billing)

Fixed event names:

  • per-result event: result
  • per-website event: website_search

Configure these same event names in Apify Store pricing.

The Actor writes billed counters to SUMMARY.billing.

Brand Filtering Behavior

  • If brandQuery or brandFilter is set, non-matching brand rows are removed from output.
  • When a source supports upstream brand filters, the Actor passes filters to the source runner to reduce scraping time and avoid off-brand rows earlier.
  • The Actor skips known single-brand sources that cannot match your selected brand (for example skipping Kia-only or Nissan-only sources during a Toyota search).

Fetch Strategy and Fallbacks

For HTTP-driven sources, fetch backends run in this order:

  1. Scrapling
  2. Pydoll
  3. Selenium
  4. requests (last-resort safety)

Environment toggles:

  • SCRAPLING_FALLBACK_ENABLED=0: disable Scrapling
  • SCRAPLING_PRIMARY_ENABLED=0: disable Scrapling as first backend
  • PYDOLL_FALLBACK_ENABLED=0: disable Pydoll fallback
  • SELENIUM_FALLBACK_ENABLED=0: disable Selenium fallback

Local Run

cd Actors/cars
pip install -r requirements.txt
mkdir -p storage/key_value_stores/default
cp input.example.json storage/key_value_stores/default/INPUT.json
python src/main.py

Smoke Tests (All Car Sources)

$python scripts/smoke_cars_sources.py --config scraper_config.yaml --pages 1 --max-listings 5

Brand-filter regression smoke:

$python scripts/smoke_cars_brand_filter.py --config scraper_config.yaml --pages 1 --max-listings 12

Automated Tests

$pytest -q tests/test_cars_registry_consistency.py tests/test_cars_input_schema_alignment.py tests/test_cars_smoke_scripts.py

Optional live smoke tests:

$RUN_LIVE_CAR_SMOKE=1 pytest -q -m live tests/test_cars_live_smoke.py

Local Outputs

  • KV store: storage/key_value_stores/default/ (STATE, SUMMARY)
  • Dataset rows: storage/datasets/default/

SEO Keywords

Used car scraper, car listings scraper, automotive data scraper, Apify car scraper, vehicle price scraper, multi-country car data extraction, used vehicles dataset, car marketplace scraping.