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

🚗💨 Turn Bring a Trailer's entire auction archive into clean, ready-to-use data in minutes, not hours.

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

## Pricing

from $1.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 [Bring a Trailer](https://bringatrailer.com/auctions/results/)'s entire auction archive into clean, ready-to-use data — in minutes, not hours.** Sold prices, sale dates, seller and location details, VIN/chassis numbers, full specs, and every photo, extracted automatically with zero code. Point it at the results page (or any specific listing) and walk away with structured JSON, CSV, or Excel that's actually usable. Built on Apify, so scheduling, an API, webhooks, and instant exports all come free.

### 🔥 Why use the Bring a Trailer Car Scraper?

Bring a Trailer is the single richest source of real, closed-sale collector-car prices on the internet — hundreds of thousands of auctions and counting. The problem? All of it lives behind a slow, click-through-one-listing-at-a-time UI. Copy-pasting your way to a useful dataset just isn't realistic. This Actor does the tedious part for you, so you can spend your time on the analysis, not the clicking:

- 📈 **Track real market value** for any make, model, or era using actual sold prices, not dealer guesses.
- 🧮 **Power pricing and valuation tools** with a constantly refreshable feed of hard auction data.
- 🔔 **Stay on top of the market** by scheduling runs that catch every new sale automatically.
- 🔎 **Do due diligence in seconds** — pull full specs, VIN, seller history, and comment activity before you bid on a specific car.
- ⏱️ **Save hours every week** that would otherwise go into manual browsing and copy-pasting.

### ⚡ How to scrape Bring a Trailer auction data

1. Click **Try for free** to open the Actor.
2. Keep the default **Start URL** (the Bring a Trailer results page) to pull the most recently sold vehicles — or drop in specific listing URLs if you only want particular cars.
3. Set **Max items per start URL** to control exactly how much data you collect.
4. Hit **Start** and let the Actor do the work.
5. Open the **Dataset** tab to preview, filter, and export your results in one click.

No coding, no proxies, no infrastructure to babysit — pagination, retries, and rate limiting are all handled for you.

### 🎛️ Input

The Actor keeps its input small and friendly — see the **Input** tab for the full form.

| Field                | Description                                                                                                                                        |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`          | One or more Bring a Trailer URLs to start from: the auction results page for recently sold vehicles, or direct listing URLs for specific auctions. |
| `maxItems`           | Maximum number of listings to scrape per start URL.                                                                                                |
| `sortBy`             | Order to scrape results in: recently sold first, or oldest first.                                                                                  |
| `proxyConfiguration` | Optional proxy settings. Not required for normal use.                                                                                              |

Example input:

```json
{
    "startUrls": [{ "url": "https://bringatrailer.com/auctions/results/" }],
    "maxItems": 10,
    "sortBy": "td"
}
```

### 📦 Output

Every scraped listing lands in your dataset as one clean item — ready to download as JSON, HTML, CSV, or Excel, or pull straight into your own pipeline via the API.

```json
{
    "id": 119024484,
    "title": "20k-Mile 2012 Audi R8 GT Spyder V10",
    "url": "https://bringatrailer.com/listing/2012-audi-r8-gt-spyder-16/",
    "description": "This 2012 Audi R8 GT Spyder is #148 of 333 produced...",
    "price": 103000,
    "currency": "USD",
    "soldText": "Bid to USD $103,000 on 8/9/26",
    "soldAt": "2026-08-09T12:00:50.000Z",
    "commentCount": 76,
    "seller": "dciesla",
    "location": "Hampstead, New Hampshire 03841",
    "vin": "WUA8NAFGXCN910148",
    "specs": ["Chassis: WUA8NAFGXCN910148", "20k Miles", "5.2-Liter FSI V10"],
    "images": ["https://bringatrailer.com/wp-content/uploads/..."],
    "scrapedAt": "2026-08-09"
}
```

#### 📋 Data fields

| Field          | Description                                |
| -------------- | ------------------------------------------ |
| `title`        | Listing title.                             |
| `price`        | Winning bid / sold price.                  |
| `currency`     | Currency of the price.                     |
| `soldText`     | Auction result summary text.               |
| `soldAt`       | Auction end date/time (ISO 8601).          |
| `seller`       | Seller's username.                         |
| `location`     | Vehicle location.                          |
| `vin`          | VIN or chassis number, when listed.        |
| `specs`        | List of listed specs and equipment.        |
| `commentCount` | Number of comments on the listing.         |
| `images`       | Full-resolution photo URLs.                |
| `url`          | Listing page URL.                          |
| `scrapedAt`    | Date the listing was scraped (YYYY-MM-DD). |

### 💰 How much does it cost to scrape Bring a Trailer?

This Actor is lightweight by design — no browser, just fast HTTP requests — so it's cheap to run. Scraping a few hundred listings typically costs a fraction of a cent to a few cents in compute units, comfortably inside Apify's free tier for occasional use. Actual cost scales with `maxItems` and how often you schedule runs.

### 💡 Tips for better runs

- Start small: keep `maxItems` low for your first run, confirm the data looks right, then scale up.
- Use direct listing URLs in `startUrls` when you only need a handful of specific vehicles.
- Set up a **Schedule** in Apify Console to keep a live feed of recently sold vehicles without lifting a finger.
- Listings the Actor has already scraped recently are served from an internal cache, so repeat runs are faster and cheaper the second time around.

### ❓ FAQ

**Is this legal?** This Actor only reads publicly available auction listing pages. You're responsible for using the collected data in line with Bring a Trailer's Terms of Service and applicable law.

**Some fields are empty.** Not every listing includes every field (e.g. sellers don't always list a VIN). The Actor grabs whatever is present and leaves the rest `null` — no guessing, no made-up data.

**Found a bug or want something custom?** Open an issue in the Actor's **Issues** tab. Tailored versions of this scraper for your specific workflow are also available on request.

⭐ **If this Actor saves you time, a rating on the Apify Store helps others find it too.**

# Actor input Schema

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

Where to start scraping. Use the Bring a Trailer auction results page (all completed auctions) to scrape recently sold vehicles, or paste one or more direct listing URLs (e.g. https://bringatrailer.com/listing/...) to scrape specific auctions only.

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

Maximum number of vehicle listings to scrape for each start URL. Does not apply when a start URL is already a direct listing page.

## `sortBy` (type: `string`):

Order in which auction results are scraped. Only applies when a start URL is a results/search page.

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

Proxy settings used for all requests made by the Actor. The scraper works reliably without a proxy, so it's disabled by default to minimize run costs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://bringatrailer.com/auctions/results/"
    }
  ],
  "maxItems": 5,
  "sortBy": "td",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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://bringatrailer.com/auctions/results/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jordan-byte/bringatrailer-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://bringatrailer.com/auctions/results/" }] }

# Run the Actor and wait for it to finish
run = client.actor("jordan-byte/bringatrailer-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://bringatrailer.com/auctions/results/"
    }
  ]
}' |
apify call jordan-byte/bringatrailer-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/bringatrailer-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/M8sQS8rEn0f8mfVAw/builds/QHlEzRPoG6OqMsFPf/openapi.json
