Ultimate Car Listings Scraper (100+ Sites)
Pricing
from $5.00 / 1,000 results
Ultimate Car Listings Scraper (100+ 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
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Inus Grobler
Actor stats
1
Bookmarked
15
Total users
3
Monthly active users
9 days ago
Last modified
Categories
Share
Ultimate Scraper Cars Actor (Apify)
Scrape used car listings from major car marketplaces across many countries and return structured rows to the Apify dataset.
Quick Start (Recommended)
For most users, only set these fields:
countriesorwebsitesbrandQuery(optional)modelQuery(optional)pagesPerRunmaxListings
Example: run a simple Toyota search in Australia.
{"countries": ["AU"],"brandQuery": "Toyota","pagesPerRun": 2,"maxListings": 50}
Example: run specific websites only.
{"websites": ["truecarus", "carscomus", "carmaxus"],"brandQuery": "Honda","pagesPerRun": 1,"maxListings": 40}
Input Guide
1) Pick where to scrape
websites: explicit website list.countries: all websites in those countries.- If both are provided,
countriesnarrows the selectedwebsites.
2) Add optional filters
brandQuery: single brand, easiest brand filter input.modelQuery: single model.yearMin,yearMax,minPrice,maxPrice: optional numeric filters.
3) Control run size
pagesPerRun: pages per source for this run.maxListings: max output rows per source (0= unlimited).sourceConcurrency: how many sources run in parallel inside one actor run.
Advanced tuning is still supported through API/raw JSON input, but hidden in the default Apify form to keep onboarding simple.
Output Fields
Core output fields:
source,source_sitecountry_code,country_name,currency_codelisting_id,url,titleprice,year,brand,model,mileage_km
Additional fields may include:
- drivetrain/spec fields (
fuel,transmission,engine_size_cc, etc.) - seller/location fields (
dealer,location) - metadata (
listing_status,scraped_at,raw_detail)
Apify metadata lives in:
/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/.actor/actor.json
Schema files are mirrored in both locations and kept in sync by tests:
/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/input_schema.json/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/output_schema.json/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/dataset_schema.json/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/.actor/input_schema.json/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/.actor/output_schema.json/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/.actor/dataset_schema.json
Brand Matching Behavior
brandQuery="VW"matchesVolkswagen.- Brand filtering is enforced on final output rows.
- For supported sources, brand pre-filters are also pushed upstream to reduce off-brand scraping.
- Known single-brand sources are skipped when they cannot match your selected brand.
Billing (Pay Per Event)
The actor always emits these event names:
result(per output row)website_search(per source searched)
In Apify Store pricing, configure the same event names.
Troubleshooting
If output is empty:
- Increase
pagesPerRun(for example from1to3). - Remove strict filters (
modelQuery, price/year ranges) and retry. - Use
websitesdirectly to test one source at a time. - Some websites may need proxies due anti-bot protection.
If runs are slow:
- Reduce number of websites.
- Lower
pagesPerRun. - Keep
includeRawDetail=false. - Increase
sourceConcurrencygradually.
Local Run
cd Actors/carspip install -r requirements.txtmkdir -p storage/key_value_stores/defaultcp input.example.json storage/key_value_stores/default/INPUT.jsonpython src/main.py
Smoke Tests
python scripts/smoke_cars_sources.py --config scraper_config.yaml --pages 1 --max-listings 5python scripts/smoke_cars_brand_filter.py --config scraper_config.yaml --pages 1 --max-listings 12
Full Source List
The source registry is maintained in:
/Users/inusgrobler/Documents/AAComputer Science/Coding Projects/2026/the-ultimate-scraper/Actors/cars/registry.py