---
title: "Automotive data"
description: "Automotive data from Cars.com, Autotrader, AutoScout24 and dealer sites: vehicle listings, prices, VIN, specs, dealer inventory and parts catalogs as JSON."
canonical: https://www.zenrows.com/use-cases/automotive-data
updated: 2026-10-18
---

# Automotive data

Automotive data is the vehicle listing, pricing, specification and parts information published by marketplaces, dealer websites, auctions and manufacturers. Zenrows collects it from protected sites such as Cars.com, Autotrader and AutoScout24, finds every vehicle page on a dealer site with Crawl, and returns JSON keyed on VIN, so inventory and price changes are easy to track.

## Sample output: one vehicle listing

```json
{
  "vin": "VIN0000EXAMPLE001",
  "url": "https://www.example-dealer.com/used/2022-sedan-48213",
  "year": 2022,
  "make": "Example",
  "model": "Sedan",
  "trim": "EX-L",
  "condition": "used",
  "certified_pre_owned": true,
  "mileage_mi": 28410,
  "price": 26995,
  "currency": "USD",
  "price_history": [
    { "date": "2026-10-01", "price": 27995 },
    { "date": "2026-10-12", "price": 26995 }
  ],
  "drivetrain": "FWD",
  "fuel": "gasoline",
  "exterior_color": "Gray",
  "dealer": { "name": "Example Motors", "zip": "60614", "type": "franchise" },
  "days_listed": 18
}
```

An illustrative vehicle detail page as JSON. The VIN joins the same car across a dealer site, marketplaces and auctions.

## What automotive data teams collect

The same car shows up on the dealer's own site, on two or three marketplaces, and sometimes at auction a few months later. Automotive data work is mostly about collecting those records and tying them to one VIN.

| Job | Data you collect | Typical sources |
|---|---|---|
| Used car pricing | Price, mileage, trim, days listed, price drops | Cars.com, Autotrader, CarGurus, AutoScout24, mobile.de, eBay Motors |
| Dealer inventory tracking | Stock by VIN, new and used counts, arrivals, sold units | Dealer websites, OEM dealer locators |
| Auction results | Sale price, damage type, title status, lot details | Copart, IAA, Bring a Trailer |
| New vehicle specs and MSRP | Trims, options, MSRP, range, battery and charging specs | OEM configurators, Edmunds, Kelley Blue Book |
| Parts and aftermarket | Part number, fitment, price, stock, cross-references | RockAuto, AutoZone, O'Reilly Auto Parts, Autodoc |
| Recalls and safety | Campaign number, component, affected models | NHTSA recalls, EU Safety Gate |

## Why scraping car sites breaks

Automotive marketplaces protect their listings closely, and dealer sites run on a handful of platforms that each structure a vehicle page differently.

| What breaks | What it looks like | How Zenrows handles it |
|---|---|---|
| Marketplace bot protection | DataDome or Akamai challenges on search and listing pages after a few requests | Zenrows' stealth gets through DataDome, Akamai and similar protections, so search and listing pages load as they do for shoppers |
| Search result caps | Pagination stops after a fixed number of pages, so part of the stock never shows | Split searches by make, model, ZIP radius and price band, and crawl dealer sites directly |
| Many dealer platforms | Every dealer site names fields differently, so one set of selectors fails on the next | Extract returns vehicle fields without per-site selectors |
| Interactive configurators | Option prices appear only after choosing a trim and package | Page actions click through the steps before the page is returned, or Browser runs longer flows |
| Regional markets | European portals show local stock, prices and VAT rules | Geotargeting loads each portal from its own country, as a local buyer sees it |

## How to collect automotive data with Zenrows

1. **Pick your sources.** Use marketplaces for breadth and dealer sites for the most current stock and price.
2. **Crawl each dealer site.** Collect every vehicle detail page URL with patterns such as `/inventory/`, `/used/` and `/new/`.
3. **Fetch each vehicle page.** Turn on Extract to get year, make, model, trim, mileage, price and VIN as JSON.
4. **Track by VIN.** Refresh the URL list daily with Batch. A VIN that disappears is sold, and a new VIN is an arrival.

```python Python
# pip install requests
import requests

headers = {"X-API-Key": "YOUR_ZENROWS_API_KEY"}
crawl = requests.post(
    "https://api.zenrows.com/v1/crawls",
    headers=headers,
    json={
        "url": DEALER_SITE_URL,
        "max_items": 2000,
        "max_pages": 2500,
        "include_patterns": ["/inventory/", "/used/", "/new/"],
        "exclude_patterns": ["/service/", "/finance/"],
    },
).json()

# Later: read the vehicle page URLs the crawl found
results = requests.get(
    f"https://api.zenrows.com/v1/crawls/{crawl['crawl_id']}", headers=headers
).json()
print(results)
```

```bash cURL
curl "https://api.zenrows.com/v1/?apikey=YOUR_ZENROWS_API_KEY&url=VEHICLE_PAGE_URL&mode=auto&extract=auto"
```

```bash CLI
npx -y @zenrows/cli init
zenrows crawl create DEALER_SITE_URL --include-patterns /inventory/ --include-patterns /used/ --max-pages 2500 --follow
zenrows crawl results CRAWL_ID --out vehicles.jsonl
zenrows extract VEHICLE_PAGE_URL --autoparse
```

```text Claude Code (MCP)
# Connect once
claude mcp add zenrows -e ZENROWS_API_KEY=YOUR_ZENROWS_API_KEY -- npx -y @zenrows/mcp

# Then ask:
Use Zenrows to open this Cars.com search for used 2022 Toyota RAV4s near ZIP 60614 and return each listing's VIN, trim, mileage, price, dealer name and listing URL as a table.
```

## Which Zenrows product fits

| If you need to | Use | Why |
|---|---|---|
| Read one listing or search page from a protected marketplace | [Fetch](/products/fetch) | Returns the page with Adaptive Stealth Mode, which escalates to browser rendering and stealth only when the page needs it |
| Get vehicle fields from many dealer platforms | [Extract](/products/extract) | Automatic structured extraction returns JSON without per-site selectors |
| Find every vehicle page on a dealer site | [Crawl](/products/crawl) | Follows inventory pages and keeps URLs matching your patterns |
| Refresh inventory across hundreds of dealers daily | [Batch](/products/batch) | One job per refresh, results by webhook or download |
| Check a vehicle page from a terminal or script | [CLI](/cli) | The `extract` command returns the page as JSON |

## What success looks like

| Measure | What good looks like | How to check it |
|---|---|---|
| VIN coverage | Every vehicle a dealer lists has a record in your data | Compare your VIN count with the dealer site's own inventory count |
| Sold detection | A removed vehicle is marked sold within one refresh | Track the first run in which each VIN is missing |
| Price change capture | Every price drop is recorded with its date | Diff price per VIN run over run |
| Cross-source dedupe | One record per VIN, even when listed on three sites | Count VINs that appear more than once after merging |
| Spec completeness | Year, make, model, trim, mileage and price are filled on nearly every record | Report empty fields per source after each run |

## Automotive data FAQ

### What is automotive data?

Automotive data covers vehicles and the market around them: listings with price and mileage, dealer inventory, auction results, new vehicle specifications and MSRP, parts catalogs with fitment, recalls, and reviews. Dealers, lenders, insurers, marketplaces and parts sellers all use some of it to price, stock and value vehicles.

### Where does used car data come from?

Most of it comes from listings: dealer websites, marketplaces such as Cars.com, Autotrader, CarGurus, AutoScout24 and mobile.de, and auctions such as Copart and IAA. Building a used car database means collecting those listings daily, joining them on VIN and keeping the price and status history.

### Is there a vehicle data API?

Zenrows works as the API over the sites you choose: you send a listing or dealer URL and get vehicle fields back as JSON. For decoding a VIN into make, model and plant details, NHTSA's vPIC service is free. A common setup joins the VIN decode with scraped listing data for price, mileage and status.

### Can Zenrows scrape Cars.com, Autotrader and AutoScout24?

Yes. Large car marketplaces commonly sit behind bot protection such as DataDome or Akamai, and Zenrows' stealth gets through them. Adaptive Stealth Mode decides how much each page needs, and Extract returns the listing as JSON. Use geotargeting to send requests from Germany or the UK for European portals, so mobile.de or Autotrader UK returns local stock and prices.

### How do I track dealer inventory?

Crawl each dealer site once to collect its vehicle page URLs, then refresh that list daily with Batch and run Crawl again weekly to catch new arrivals. Key every record on VIN. A VIN that stops appearing has been sold, and the gap between first and last sighting gives you days on lot.

### How often should car listing data be refreshed?

Match the refresh to how fast each field changes. Used car prices and availability move daily, so refresh listing URLs every day. Dealer sites gain new stock all week, so re-crawl them weekly to pick up URLs the daily list does not have yet. Auction results only need collecting after each sale, and new vehicle specs and MSRP change mostly with the model year, so a monthly check is enough.

### Can I collect parts and fitment data?

Yes. Parts retailers such as RockAuto, AutoZone and Autodoc list part numbers, prices, stock and the vehicles each part fits. Fetch the part pages and name those fields with CSS selectors, and use geotargeting when the same retailer shows different prices per market.

## Related use cases

- [Ecommerce web scraping](https://www.zenrows.com/use-cases/ecommerce-web-scraping.md): Product, price, stock, review and seller data from Amazon, Walmart, eBay and Shopify stores, as JSON.
- [Competitor price scraping](https://www.zenrows.com/use-cases/price-scraping.md): Competitor prices, promotions, shipping and stock per SKU from retailers and marketplaces, refreshed on your schedule.
- [Insurance data scraping](https://www.zenrows.com/use-cases/insurance-data.md): Competitor quotes, policy terms, rate filings and property risk data, captured per test profile.
- [Product data enrichment](https://www.zenrows.com/use-cases/product-data-enrichment.md): Specs, images, descriptions and GTINs from manufacturer and retailer pages, written into the gaps in your PIM.
- [Alternative data for investors](https://www.zenrows.com/use-cases/alternative-data.md): Hiring, pricing, app ranks, reviews and store counts per ticker, collected weekly as point-in-time series.

Start free: https://app.zenrows.com/register. Docs: https://docs.zenrows.com
