# 🚘 carvana car data scraper US🇺🇸 (`jordan-byte/carvana-car-data-scraper-us`) Actor

Carvana Car Scraper collects used car listings from Carvana.com any search you've already filtered on the site, and it pages through the results collecting every vehicle it finds - price, mileage, VIN, exterior/interior color, drivetrain, engine, transmission, MPG, and photos.

- **URL**: https://apify.com/jordan-byte/carvana-car-data-scraper-us.md
- **Developed by:** [Jordan Byte](https://apify.com/jordan-byte) (community)
- **Categories:** Travel, Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

🚗 **Turn Carvana.com listings into clean, structured data in minutes** - no coding, no manual copy-pasting. Get year, make, model, trim, price, mileage, VIN, full specs, and photos for used cars, delivered straight to your dataset and ready to plug into your workflow.

### 🔍 What does Carvana Car Scraper do?

Carvana Car Scraper collects used car listings from [Carvana.com](https://www.carvana.com), the online used car retailer. Point it at the main "Shop All Cars" listings, or any search you've already filtered on the site, and it pages through the results collecting every vehicle it finds - price, mileage, VIN, exterior/interior color, drivetrain, engine, transmission, MPG, and photos.

Because it runs on the Apify platform, you also get automatic proxy rotation to avoid blocks, one-click scheduling for recurring runs, a REST API and webhooks for integrations, and full run monitoring - all without maintaining any infrastructure yourself. ⚡

### 💼 Why use Carvana Car Scraper?

- 📊 **Market research** - track used car pricing and inventory trends by make, model, or body style.
- 🚙 **Inventory monitoring** - keep tabs on Carvana's stock for the models you care about, and catch new arrivals early.
- 🎯 **Lead generation** - build lists of vehicles matching a buyer's exact criteria.
- 🗂️ **Data enrichment** - pull VINs, specs, and pricing into your own CRM, spreadsheet, or valuation tool.
- 💰 **Price tracking** - feed listings into a monitoring workflow to catch price drops the moment they happen.

### 🚀 How to use Carvana Car Scraper

1. Go to the **Input** tab.
2. Leave the default **Start URLs** as-is to cover the main car listings, or paste in your own Carvana.com search URL (for example, one you've already filtered by make, price, or body style on the site) or a specific vehicle page URL.
3. Set **Max vehicles per start URL** to control how many results to collect from each search URL.
4. Click **Start** and wait for the run to finish.
5. Open the **Dataset** tab to preview, filter, and export your results. ✅

### ⚙️ Input

Carvana Car Scraper accepts two kinds of URLs in **Start URLs**, and you can mix both in the same list:

- **Search/listing pages** - e.g. `https://www.carvana.com/cars?page=1`, or any search you've filtered on carvana.com. The Actor pages through the results automatically and visits every vehicle it finds, up to **Max vehicles per start URL**.
- **Single vehicle pages** - e.g. `https://www.carvana.com/vehicle/4555611`, if you only want the details for specific cars. **Max vehicles per start URL** doesn't apply here, since one URL always yields exactly one item.

| Field                | Type    | Description                                                                                               |
| -------------------- | ------- | --------------------------------------------------------------------------------------------------------- |
| `startUrls`          | Array   | One or more Carvana.com search or vehicle pages to scrape. Defaults to the main car listings.             |
| `maxItems`           | Integer | Maximum number of vehicles to collect per search/listing start URL (default: 5).                          |
| `proxyConfiguration` | Object  | Proxy settings. Apify Proxy with residential IPs is enabled by default and is required for reliable runs. |

Example input:

```json
{
    "startUrls": [
        { "url": "https://www.carvana.com/cars?page=1" },
        { "url": "https://www.carvana.com/vehicle/4555611" }
    ],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

See the **Input** tab for the full list of options and their defaults.

### 📦 Output

Each vehicle is saved as one item in the dataset, for example:

```json
{
    "url": "https://www.carvana.com/vehicle/4555611",
    "vin": "1FMCU9GD5JUC68188",
    "stockNumber": "2005041656",
    "year": 2018,
    "make": "Ford",
    "model": "Escape",
    "trim": "SE Sport Utility 4D",
    "mileage": 25266,
    "price": 17990,
    "originalPrice": 18590,
    "currency": "USD",
    "availability": "InStock",
    "exteriorColor": "Ingot Silver Metallic",
    "interiorColor": "Charcoal Black Cloth",
    "drivetrain": "4WD",
    "engine": "EcoBoost 1.5L I-4 DOHC",
    "transmission": "6-speed automatic",
    "fuelType": "Gas",
    "seating": "5 Seats",
    "mpg": "22 city, 28 hwy",
    "numberOfKeys": "1",
    "images": ["https://vexgateway.fastly.carvana.io/vex-7017627/details/feature-237662084.jpg"]
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel from the **Dataset** tab, or fetch it via the Apify API. 📥

#### 🧾 Data table

| Field                                              | Description                                                     |
| -------------------------------------------------- | --------------------------------------------------------------- |
| `url` / `vin` / `stockNumber`                      | Vehicle page URL, VIN, and Carvana stock number                 |
| `year`, `make`, `model`, `trim`                    | Core vehicle identification                                     |
| `mileage`                                          | Odometer reading, in miles                                      |
| `price`, `originalPrice`, `currency`               | Current asking price, pre-discount price (if any), and currency |
| `availability`                                     | Whether the vehicle is currently listed as in stock             |
| `exteriorColor`, `interiorColor`                   | Paint and interior color/material                               |
| `drivetrain`, `engine`, `transmission`, `fuelType` | Powertrain specs                                                |
| `seating`, `mpg`, `numberOfKeys`                   | Additional specs as listed on the vehicle page                  |
| `images`                                           | Photo URLs for the vehicle                                      |

Field availability can vary between vehicles, depending on what Carvana lists for that specific car.

### 💵 Pricing / Cost estimation

How much does it cost to scrape Carvana car data? Pricing depends on your Apify plan's compute unit rate, the number of vehicles you request, and proxy usage. A small run of a few dozen vehicles typically finishes within a few minutes. Start with a low **Max vehicles per start URL** value to estimate cost before scaling up to a larger run. Apify's free tier includes monthly platform usage credit, so light or occasional use may cost nothing. 🎉

### 🎯 Tips for better runs

- Keep **Max vehicles per start URL** modest for daily monitoring runs to control cost and run time.
- Narrow your search directly on carvana.com (by make, price, body style, etc.) and paste the resulting URL into **Start URLs** instead of scraping the full inventory - it's faster and easier to work with.
- Use the Apify **Schedule** feature to re-run this Actor daily or weekly and track how listings and prices change over time.
- If a run returns fewer results than expected, Carvana may have tightened its bot protection - the Actor already retries automatically, so try again shortly, or reach out through the Issues tab.

### ❓ FAQ

**Is this legal?** This Actor only collects publicly visible listing data. You are responsible for using the data in accordance with Carvana.com's Terms of Service and any applicable laws in your jurisdiction, especially around personal data and commercial use.

**Can I scrape a single vehicle page directly?** Yes - add the vehicle's URL (e.g. `https://www.carvana.com/vehicle/4555611`) to **Start URLs** alongside or instead of search URLs.

**Why did some fields come back empty?** Not every vehicle listing includes every spec. The Actor returns `null` for anything that isn't available for a given car.

**Found a bug or have a feature request?** Please use the Issues tab on this Actor's page - feedback directly shapes future updates. For a custom version of this scraper tailored to your specific workflow, reach out through the same tab. 🙌

# Actor input Schema

## `startUrls` (type: `array`):

Carvana pages to scrape. Two kinds of URLs are supported: <ul><li><b>Search/listing pages</b> such as <code>https://www.carvana.com/cars?page=1</code> or a search filtered on carvana.com (e.g. by make, price, or body style). The Actor will page through the results automatically and visit each vehicle it finds.</li><li><b>Single vehicle pages</b> such as <code>https://www.carvana.com/vehicle/4555611</code>, if you only want the details for specific cars.</li></ul> You can mix both kinds in the same list.

## `maxItems` (type: `integer`):

Maximum number of vehicles to scrape for each search/listing URL in Start URLs. For a single vehicle page this is ignored, since that URL always yields one item. Set to a high number (e.g. 9999) to scrape as many results as the search returns.

## `proxyConfiguration` (type: `object`):

Carvana blocks requests that don't come through a proxy with a good reputation, so Apify Proxy with residential IPs is enabled by default. Leave this as-is unless you have a reason to change it.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.carvana.com/cars?page=1"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `vehicles` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.carvana.com/cars?page=1"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jordan-byte/carvana-car-data-scraper-us").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.carvana.com/cars?page=1" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("jordan-byte/carvana-car-data-scraper-us").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.carvana.com/cars?page=1"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call jordan-byte/carvana-car-data-scraper-us --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jordan-byte/carvana-car-data-scraper-us"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pNeiLcUvc6GqUaXPb/builds/rcmLnDy6aquJuOdtr/openapi.json
