Automotive data · Vehicle Listings · 2026年9月6日
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 2026年9月6日. 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 2026年8月19日 and 2026年9月5日. 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.