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

the online car marketplace based search page filtered on the site finds  price, mileage, VIN, exterior/interior color, engine, transmission, drivetrain, fuel economy, accident/owner history, dealership name and address, and photos.

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

## Pricing

$1.00 / 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 TrueCar.com listings into clean, structured data in minutes** - no coding, no manual copy-pasting. Get year, make, model, trim, price, mileage, VIN, full specs, dealership details, and photos for used cars, delivered straight to your dataset and ready to plug into your workflow.

### What does TrueCar Car Data Scraper do?

TrueCar Car Data Scraper collects used car listings from [TrueCar.com](https://www.truecar.com), the online car marketplace. Point it at a location-based search page, or any search you've already filtered on the site, and it pages through the results and visits every vehicle it finds - price, mileage, VIN, exterior/interior color, engine, transmission, drivetrain, fuel economy, accident/owner history, dealership name and address, and photos.

Because it runs on the Apify platform, you also get 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 TrueCar Car Data Scraper?

- **Market research** - track used car pricing and inventory trends by make, model, or location.
- **Inventory monitoring** - keep tabs on what's listed near a given city, 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 TrueCar Car Data Scraper

1. Go to the **Input** tab.
2. Leave the default **Start URLs** as-is, or paste in your own TrueCar.com search URL for a location (for example, one you've already filtered by make, model, or price 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

TrueCar Car Data 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.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/`, or any search you've filtered by location, make, model, or price on truecar.com, including a specific results page (e.g. `?page=3`). 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.truecar.com/used-cars-for-sale/listing/WAUC4AFHXHN003438/2017-audi-s5/`, 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 TrueCar.com search or vehicle listing pages to scrape. Defaults to a Los Angeles search.                          |
| `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 required for reliable runs and enabled by default.                        |
| `useCachedSession`   | Boolean | Advanced option. Reuses a previously established browsing session between runs to speed up scheduled runs (default: enabled). |

Example input:

```json
{
    "startUrls": [
        { "url": "https://www.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/" },
        { "url": "https://www.truecar.com/used-cars-for-sale/listing/WAUC4AFHXHN003438/2017-audi-s5/" }
    ],
    "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.truecar.com/used-cars-for-sale/listing/WAUC4AFHXHN003438/2017-audi-s5/",
    "vin": "WAUC4AFHXHN003438",
    "stockNumber": "003438",
    "year": 2017,
    "make": "Audi",
    "model": "S5",
    "trim": "Standard",
    "style": "Cabriolet Automatic",
    "bodyStyle": "Convertible",
    "condition": "USED",
    "price": 13995,
    "currency": "USD",
    "mileage": 92917,
    "exteriorColor": "Mythos Black Metallic/Black Roof",
    "interiorColor": "BLACK/MAGMA RED",
    "engine": "3.0L V-6 Gas Supercharged",
    "transmission": "Automatic",
    "driveType": "All Wheel Drive",
    "fuelType": "Gas",
    "mpgCity": 18,
    "mpgHighway": 26,
    "mpgCombined": 21,
    "accidentCount": 0,
    "ownerCount": 4,
    "isCleanTitle": true,
    "keyFeatures": ["Premium Wheels", "Navigation", "Backup Camera"],
    "dealerName": "Upgrade Auto Sale",
    "dealerPhone": "323) 999-2969",
    "dealerAddress": "3050 Firestone Blvd",
    "dealerCity": "Southgate",
    "dealerState": "CA",
    "images": ["https://listings-prod.tcimg.net/listings/518917/38/34/WAUC4AFHXHN003438/001_2026062508.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 stock number |
| `year`, `make`, `model`, `trim`, `style`                                  | Core vehicle identification             |
| `bodyStyle`, `condition`                                                  | Body type and used/new condition        |
| `price`, `currency`                                                       | Listed asking price and currency        |
| `mileage`                                                                 | Odometer reading, in miles              |
| `exteriorColor`, `interiorColor`                                          | Paint and interior color                |
| `engine`, `transmission`, `driveType`, `fuelType`                         | Powertrain specs                        |
| `mpgCity`, `mpgHighway`, `mpgCombined`                                    | Fuel economy                            |
| `accidentCount`, `ownerCount`, `isCleanTitle`                             | Vehicle history summary                 |
| `keyFeatures`                                                             | Notable equipment and options           |
| `dealerName`, `dealerPhone`, `dealerAddress`, `dealerCity`, `dealerState` | Seller/dealership details               |
| `images`                                                                  | Photo URLs for the vehicle              |

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

### Pricing / Cost estimation

How much does it cost to scrape TrueCar 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 truecar.com (by make, model, price, or body style) and paste the resulting URL into **Start URLs** instead of scraping a whole location - it's faster and easier to work with.
- Leave **Reuse browsing session between runs** enabled for scheduled runs - it noticeably speeds up each run after the first.
- 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, TrueCar 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 TrueCar.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.truecar.com/used-cars-for-sale/listing/WAUC4AFHXHN003438/2017-audi-s5/`) 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`):

TrueCar pages to scrape. Two kinds of URLs are supported: <ul><li><b>Search/listing pages</b> such as <code>https://www.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/</code>, including any page-numbered URL (e.g. <code>?page=3</code>). The Actor pages through the results automatically and visits every vehicle it finds.</li><li><b>Single vehicle pages</b> such as <code>https://www.truecar.com/used-cars-for-sale/listing/WAUC4AFHXHN003438/2017-audi-s5/</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`):

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

## `useCachedSession` (type: `boolean`):

Speeds up and reduces the cost of scheduled/repeated runs by reusing a previously established browsing session instead of setting up a new one every time. Turn off to always start fresh.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "useCachedSession": true
}
```

# 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.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jordan-byte/truecar-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.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("jordan-byte/truecar-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.truecar.com/used-cars-for-sale/listings/location-los-angeles-ca/"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call jordan-byte/truecar-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/truecar-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/PuaCl4eBqmFxnbbvT/builds/jvOzVZYYs1yex7Gsa/openapi.json
