Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

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

POST /v1/scraper/collectors/carvana_cars/run
$ 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
Carvana Scraper API: make and model in, a residential exit in the middle, delivered rows with rank, vehicle_id and stock_number on the right, $0.001 per listing.
You send make and model; the run goes out through a residential exit and comes back as listings with rank, vehicle_id and stock_number — 23 fields on every row — and you are billed $0.001 for each listing actually delivered, nothing for a run that delivers none.
$0.001 / listing2,000 listings on the free $2 every month
Semantic inputmake, model, max_results — no URL lists
Up to 96listings per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

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.

Get my free API key

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.

FieldTypeWhat it holds
rankinteger1-based position.
vehicle_idstring · nullableCarvana vehicle id — the key in the listing URL.
stock_numberstring · nullableCarvana stock number.
vinstring · nullableVIN.
yearinteger · nullableModel year.
makestring · nullableMake.
modelstring · nullableModel, including the variant ("Camry Hybrid").
parent_modelstring · nullableModel family ("Camry" for a Camry Hybrid).
trimstring · nullableTrim, e.g. "SEL".
kbb_trimstring · nullableKelley Blue Book long trim, e.g. "SEL Sport Utility 4D".
conditionstring · nullableOffering — Carvana lists used vehicles.
pricenumber · nullableCarvana price in USD.
msrpnumber · nullableOriginal MSRP in USD.
previous_pricenumber · nullablePrice before the last change; null when never repriced.
mileageinteger · nullableOdometer miles.
body_stylestring · nullableBody style, e.g. "Suv".
fuel_typestring · nullableFuel type, e.g. "Gas".
exterior_colorstring · nullableExterior colour.
interior_colorstring · nullableInterior colour.
mpginteger · nullableMiles per gallon.
seating_capacityinteger · nullableSeats.
imagestring · nullablePrimary photo.
urlstring · nullableListing URL.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
makestringnoVehicle make, e.g. "Toyota" or "Mercedes-Benz". Omit to browse all inventory.
modelstringnoVehicle model (requires make), e.g. "Camry".
max_resultsintegernoHow 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.

$0.001per delivered listing$1 per 1,000 delivered listings
2,000 listingson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $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/scraper/collectors/carvana_cars/run.

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 scraperThis collector
Promo tilesParsed as cars, or filtered by guessed selectorsNever in the data: the vehicles array has none
FieldsText scraped out of a cardTyped fields from the server payload: VIN, MSRP, previous price, MPG
Payload boundariesChunk-by-chunk parsing that breaks when the blob straddles twoThe stream is joined before parsing
ResilienceOne selector setServer 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.

Carvana Scraper API: the POST to /v1/scraper/collectors/carvana_cars/run with make and model on the left, and the JSON envelope on the right with 24 listings and usage.cost_usd $0.024.
The same call you would paste into a terminal: a Bearer key, make and model in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many listings arrived and usage.cost_usd is $0.024, which is 24 × $0.001. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

FAQ

Questions we get about the Carvana scraper API.

Something else? Ask us →

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.

Get my free API key