Automotive data · Vehicle Listings · September 6, 2026
256,950 crawled used-vehicle listings — price, mileage, VIN, trim, seller type and more — queryable over one REST API. Filter by make, model, price, mileage, year or source; sort by price, mileage or freshness. Built from three sources with genuinely different coverage: CarMax's own fully enumerable retailer catalog, plus best-effort ZIP-sweeps of Autotrader and Cars.com — read the coverage section before treating this as one uniform national census.
256,950
used-vehicle listings — one record per listing, refreshed on a standing crawl schedule.
35.3%
CarMax (retailer catalog)
27.8%
Autotrader (sweep)
37%
Cars.com (sweep)
Snapshot September 6, 2026. CarMax is a single retailer's fully enumerable inventory; Autotrader and Cars.com are best-effort marketplace sweeps, not exhaustive listings of either site.
256,950
used-vehicle listings across three sources with genuinely different coverage: one single-retailer catalog, two marketplace sweeps — CarMax's own fully enumerable national inventory, plus best-effort ZIP-code sweeps of Autotrader and Cars.com, since neither marketplace exposes a national query.
34.4%
of listings sit in the $30K–$50K band — the single largest, and the index as a whole runs well above the cheap end of the used market: 52.9% of listings clear $30K, spanning everyday commuters to seven-figure exotics.
27.8%
of listings — effectively every Autotrader record — carry no seller_type field at all — CarMax rows are always retailer and current Cars.com rows are always dealer, but Autotrader leaves the field blank entirely rather than defaulting to a guess.
10.6%
of listings are currently marked price-reduced, and virtually all of them come from Autotrader alone — CarMax and Cars.com do not currently populate the price-reduction signal, so filtering on it effectively filters to one source today.
This is not one uniform national used-car census — it is three sources stitched into one schema, and they behave differently. CarMax rows come from a single retailer's own fully enumerable inventory, re-crawled on a standing schedule: every CarMax listing is a real, currently-live vehicle at a real CarMax location, and seller_type is always retailer. Autotrader and Cars.com rows come from a best-effort ZIP-code sweep of those two marketplaces, because neither exposes a national query — broad coverage, but not exhaustive, and their city/state fields approximate the searched metro area rather than the seller's exact location. Treat CarMax counts as close to a full catalog and Autotrader/Cars.com counts as a wide but partial sample.
The modal band is $30K–$50K, but the index is wide: 52.9% of listings clear $30K, and the highest-priced listing on this page alone tops six figures. A single price histogram is a poor summary of three sources that skew differently — CarMax's own inventory trends toward everyday used cars, while the marketplace sweeps surface everything a ZIP-code search happens to return, exotics included.
| Price | Listings | Share |
|---|---|---|
| Under $10K | 3,515 | 1.4% |
| $10K–$20K | 40,868 | 15.9% |
| $20K–$30K | 76,293 | 29.7% |
| $30K–$50K | 88,460 | 34.4% |
| $50K+ | 47,500 | 18.5% |
Field coverage is source-dependent, not uniform. seller_type is populated for CarMax and Cars.com but blank for Autotrader; is_price_reduced is currently populated only for Autotrader. Check the by-source breakdown below before assuming either field applies dataset-wide.
One row per source, with what seller_type coverage actually looks like for that source today — not a hypothetical, the field as crawled.
| Source | Listings | Share | seller_type coverage |
|---|---|---|---|
| CarMax | 90,586 | 35.3% | Always "retailer" — every CarMax row is CarMax's own inventory. |
| Autotrader | 71,359 | 27.8% | Blank on every row — Autotrader listings carry no seller_type field. |
| Cars.com | 95,005 | 37% | Currently always "dealer" in this snapshot — Cars.com listings can also infer "private", just none are live right now. |
CarMax's count is close to that retailer's full live catalog; Autotrader and Cars.com counts are a wide but best-effort ZIP-sweep sample, not an exhaustive listing of either marketplace.
Straight from a price_desc query — nothing hand-picked. All three sources are eligible; in practice the priciest listings tend to cluster on the marketplace sweeps, which is itself a fact about their coverage, not CarMax's inventory.
| Vehicle | Price | Mileage | Source |
|---|---|---|---|
| 2021 Ferrari 812 GTS | $871,294 | 8,638 mi | Autotrader |
| 2016 Porsche 911 R | $729,900 | 9,622 mi | Autotrader |
| 2019 Ferrari 812 Superfast | $699,900 | 3,726 mi | Autotrader |
| 2022 Ferrari F8 Tributo | $680,314 | 12,198 mi | Autotrader |
| 2024 Ferrari SF90 Spider | $641,294 | 167 mi | Autotrader |
| 2024 Ferrari SF90 Spider | $571,622 | 899 mi | Autotrader |
| 2014 Ferrari 458 Spider | $519,900 | 14,334 mi | Autotrader |
| 2025 Porsche 911 GT3 RS | $509,988 | 2,454 mi | Autotrader |
| 2005 Ferrari F430 Coupe | $501,389 | 20,332 mi | Autotrader |
| 2026 Rolls-Royce Cullinan | $498,386 | 5,364 mi | Cars.com |
| 2020 Ferrari F8 Tributo | $491,389 | 2,029 mi | Autotrader |
| 2021 Ferrari F8 Tributo | $491,294 | 4,718 mi | Autotrader |
One record per listing, keyed by a composite id (source:source_listing_id). Grouped for readability; the API returns a flat object. Field coverage varies by source — see the by-source section above.
Identity
idsourcesource_listing_idvinurlVehicle
yearmakemodeltrimbody_stylemileageexterior_colorinterior_colorenginetransmissiondrive_typefuel_typeListing
priceis_price_reducedseller_typeseller_namecitystateEnrichment
accident_countowner_countProvenance
run_idfirst_seen_atlast_seen_atcrawled_atschema_versionThe search endpoint takes the filters below; combine any of them. Page with page and page_size (≤100 per page, and page × page_size ≤ 10,000).
Full-text & identity
Vehicle attributes
Listing
Ranges
Sort
relevancerecently_updatednewly_listedprice_ascprice_descmileage_ascmileage_descyear_descyear_ascEvery query authenticates with an x-api-key header and reads the stored search index — there is no live crawl or marketplace session to manage, and you are billed pay on success: charged for results, not failed requests. Four endpoints cover it:
GET /datasets/vehicle-listings/search — filter, sort, page the population.GET /datasets/vehicle-listings/items/{id} — one listing by its composite id.GET /datasets/vehicle-listings/facets — counts for source, make, model, and more.GET /datasets/vehicle-listings/price-history/{id} — recorded price changes for one listing over time.The same endpoints are exposed as MCP tools — datasets_vehicle_listings_search, datasets_vehicle_listings_item, datasets_vehicle_listings_facets and datasets_vehicle_listings_price_history — so an agent can call them directly. Pricing is pay-on-success across all of them.
Cite this
Crawlora (2026). Vehicle Listings Dataset. 256,950 crawled used-vehicle listings across CarMax, Autotrader and Cars.com; not a uniform national census. https://crawlora.net/datasets/vehicle-listings.
Search with filters
# Toyota RAV4 listings under $25K, cheapest first
curl "https://api.crawlora.net/api/v1/datasets/vehicle-listings/search?q=RAV4&max_price=25000&sort=price_asc" \
-H "x-api-key: $CRAWLORA_API_KEY"One listing by composite id
# One listing by its composite id (source:source_listing_id)
curl "https://api.crawlora.net/api/v1/datasets/vehicle-listings/items/carmax:28187774" -H "x-api-key: $CRAWLORA_API_KEY"Facet the population
# Facet the population by source (or make, body_style, state, …)
curl "https://api.crawlora.net/api/v1/datasets/vehicle-listings/facets?facet=source" -H "x-api-key: $CRAWLORA_API_KEY"Price history for one listing
# Recorded price changes for one listing over time
curl "https://api.crawlora.net/api/v1/datasets/vehicle-listings/price-history/carmax:28187774" -H "x-api-key: $CRAWLORA_API_KEY"The same figures behind the bars and the waffle — plain and machine-readable for search engines and AI answer engines that cannot parse a chart.
| Price | Listings | Share |
|---|---|---|
| Under $10K | 3,515 | 1.4% |
| $10K–$20K | 40,868 | 15.9% |
| $20K–$30K | 76,293 | 29.7% |
| $30K–$50K | 88,460 | 34.4% |
| $50K+ | 47,500 | 18.5% |
| Source | Listings | Share |
|---|---|---|
| CarMax | 90,586 | 35.3% |
| Autotrader | 71,359 | 27.8% |
| Cars.com | 95,005 | 37% |
Query 257K crawled used-vehicle listings — price, mileage, VIN, trim, seller type and more — through one REST API. Market research, pricing tools, inventory monitoring or lead generation: clean JSON, pay on success.
The dataset holds 256,950 crawled used-vehicle listings across three sources with genuinely different coverage. carmax rows (90,586, 35.3%) are a single retailer's own fully enumerable national inventory, re-crawled on a standing schedule. autotrader (71,359, 27.8%) and carsdotcom (95,005, 37%) rows are a best-effort ZIP-code sweep of those two marketplaces, since neither exposes a national query — broad but not exhaustive.
No — and the gap is not uniform across sources. CarMax's slice is close to that retailer's actual live catalog. Autotrader's and Cars.com's slices are wide but best-effort ZIP-code sweeps, so they skew toward whatever markets and searches the crawl covers, not a random sample of every listing on either site. Use it as a broad discovery and pricing-research surface, not as a definitive market-share or population-level claim.
They are collected differently. CarMax exposes a fully browsable national inventory, so those rows are close to a complete catalog with a precise city and state and a consistent seller_type of "retailer". Autotrader and Cars.com do not expose a national query, so those rows come from sweeping many ZIP codes — their city/state fields approximate the searched metro area rather than the seller's exact location, and their seller_type coverage differs: Cars.com currently reports "dealer" on every live row (the field also supports "private", just none are live right now), while Autotrader leaves seller_type blank entirely.
seller_type classifies who is selling the vehicle: retailer, dealer, or private. It is populated per-source, not per-record by design — every CarMax row is retailer, every currently-crawled Cars.com row is dealer, and Autotrader rows carry no seller_type field at all (71,359 listings, 27.8% of the dataset). Filter seller_type when you need CarMax or Cars.com precision; do not expect it on Autotrader rows today.
is_price_reduced flags a listing whose price has visibly dropped since it was first listed. Right now that signal is populated almost entirely by Autotrader (27,214 of 27,214 price-reduced listings); CarMax and Cars.com do not currently surface the flag on their listing pages, so filtering is_price_reduced=true effectively filters to Autotrader today. Re-check this before building on it, since it can change as crawl coverage grows — pair it with the price-history endpoint if you need the underlying price changes directly.
Every field is a publicly listed vehicle attribute: VIN, year, make, model, trim, body style, mileage, colors, transmission, drivetrain, fuel type, price, seller info, and location. accident_count and owner_count are CarMax-only, best-effort enrichment fields layered on top of the base listing — most rows do not carry them at all. An absent field means "not yet enriched"; a present 0 means a real "no recorded accidents" or "one owner" claim. Do not conflate the two.
Every record in this snapshot was crawled between August 19, 2026 and September 5, 2026. Four endpoints cover it: search (full-text and faceted, with make, model, price, mileage, year, source and seller-type filters), one listing by its composite id, facet counts for source/make/model and more, and a price-history endpoint for a single listing's recorded price changes over time. The same endpoints are exposed as MCP tools so an agent can call them directly, and billing is pay-on-success across all of them.