Carvana Scraper API
A Carvana scraper API that reads Carvana’s used-car inventory, optionally narrowed to a make and model, and returns one row per vehicle: year, make, model and trim (Carvana’s and the KBB long form), price and MSRP with the previous price on repriced cars, mileage, body style, fuel type, colours, MPG, seating, VIN, stock number, photo and listing URL.
$0.001 per delivered listing · $2 free every month · Failed runs never billed
$ curl $QD/carvana_cars/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"max_results": 24}'
{ "status": "done", "count": 24,
"results": [
{
"vehicle_id": "…",
"stock_number": "…",
"vin": "…",
"year": … } ],
"cost": 0.024 }
# 24 listings × $0.001 · nothing delivered, nothing charged
Try it
Carvana used cars, running now
Change the input and run it against the live collector — nothing to install, no sign-up.
Run it from your own code, on your own inputs
Same collector, same rows — $2 of free API credit every month, no card.
What a Carvana scraper API does
Carvana ships its search response inside the page as a React Server Components stream, and every vehicle in it arrives fully typed — make, parent model, trim, mileage, VIN, price and MSRP as fields, not as text to be parsed out of a card. This collector concatenates the stream and reads that response. It has to be concatenated: the inventory blob is about 110 KB and chunk boundaries fall wherever the server flushed, so parsing chunks one by one works until the day the payload straddles two.
The vehicles array contains no advertisements. Carvana injects promo tiles into the results grid through a sibling array that states only a key and a slot — which is why a “page of 24” yields 21 cars: 21 vehicles plus 3 tiles fill 24 grid slots, measured on five captures. A DOM scraper has to recognise and drop those tiles; this source never sees them. The per-card schema.org Vehicle blocks are kept as an independent fallback — poorer, with no body style or MSRP, but a change to the stream shape degrades the collector rather than killing it.
Limits, in plain numbers
Everything that bounds one run of this collector. No hidden throttles.
Max per run
96 listings
Price
$0.001 / listing
Per 1,000
$1.00
Failed runs
Free zero rows, zero charge
Free every month
$2 no card
Rate limit
60 req/min on the free tier
What one listing looks like
Every delivered listing carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
rank | integer | 1-based position. |
vehicle_id | string · nullable | Carvana vehicle id — the key in the listing URL. |
stock_number | string · nullable | Carvana stock number. |
vin | string · nullable | VIN. |
year | integer · nullable | Model year. |
make | string · nullable | Make. |
model | string · nullable | Model, including the variant ("Camry Hybrid"). |
parent_model | string · nullable | Model family ("Camry" for a Camry Hybrid). |
trim | string · nullable | Trim, e.g. "SEL". |
kbb_trim | string · nullable | Kelley Blue Book long trim, e.g. "SEL Sport Utility 4D". |
condition | string · nullable | Offering — Carvana lists used vehicles. |
price | number · nullable | Carvana price in USD. |
msrp | number · nullable | Original MSRP in USD. |
previous_price | number · nullable | Price before the last change; null when never repriced. |
mileage | integer · nullable | Odometer miles. |
body_style | string · nullable | Body style, e.g. "Suv". |
fuel_type | string · nullable | Fuel type, e.g. "Gas". |
exterior_color | string · nullable | Exterior colour. |
interior_color | string · nullable | Interior colour. |
mpg | integer · nullable | Miles per gallon. |
seating_capacity | integer · nullable | Seats. |
image | string · nullable | Primary photo. |
url | string · nullable | Listing URL. |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
make | string | no | Vehicle make, e.g. "Toyota" or "Mercedes-Benz". Omit to browse all inventory. |
model | string | no | Vehicle model (requires make), e.g. "Camry". |
max_results | integer | no | How many listings to deliver at most (1–96). You pay only for delivered listings. |
Pricing
Carvana Scraper API pricing
$0.001 per delivered listing. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 listings before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $250 free credit / month
- 1,200 requests / min
- 30% off unit prices
Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.
Integration
One POST, typed rows
Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/carvana_cars/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"max_results":24}'
What people build with the Carvana scraper API
Three shapes of work this endpoint was designed around.
Used-car price tracking
Price, MSRP and previous price on every row: watch repricing across a make and model week over week, keyed by VIN.
Inventory analytics
Mileage, year, trim and body style for a whole model line — the inputs of a depreciation curve, from a retailer with a single national price.
VIN-level enrichment
VIN and stock number per car, ready to join with a history or valuation service.
Carvana Scraper API versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Promo tiles | Parsed as cars, or filtered by guessed selectors | Never in the data: the vehicles array has none |
| Fields | Text scraped out of a card | Typed fields from the server payload: VIN, MSRP, previous price, MPG |
| Payload boundaries | Chunk-by-chunk parsing that breaks when the blob straddles two | The stream is joined before parsing |
| Resilience | One selector set | Server payload first, schema.org Vehicle blocks as a real fallback |
What people search for
Live autocomplete demand around Carvana used cars, pulled with our own Keyword ideas collector.
Sources and standards
The platform documentation and standards this collector is built against — check any claim on this page against the primary source:
Can I filter by make and model?
Yes — make and model narrow the inventory; leave both out to read the general listing. Price, year and mileage filters are not exposed on this surface, so filter the rows on your side.
Why 21 cars on a “page of 24”?
Because Carvana fills 3 of the 24 grid slots with promo tiles that live in a separate array. The collector delivers the 21 vehicles and reports the skipped tiles in the run notes.
Is the price the total or the monthly figure?
The vehicle’s total price, as Carvana states it in the payload, plus msrp and — on repriced cars — previous_price.
Does it read Carvana’s API?
It reads the search response Carvana embeds in its own page, on the TLS tier, with no browser. There is no key and no login involved.
Is there a free Carvana scraper API?
Every account gets $2 of credit every month with no card, which is about 2,000 delivered listings on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.
How much does one run cost?
Multiply the rows you actually receive by $0.001. A run capped at 96 listings — the maximum for this collector — costs $0.096 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.
Run the Carvana scraper API now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.