# Bring a Trailer Sold Prices: Car Auction Comps (`getascraper/collector-car-auction-outcome-monitor`) Actor

Scrape Bring a Trailer and Hagerty Marketplace auction results. Export sold prices, reserve-not-met outcomes, vehicle specs, VINs, bids, and listing changes as JSON or CSV for collector-car comps and valuations.

- **URL**: https://apify.com/getascraper/collector-car-auction-outcome-monitor.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.66 / 1,000 car outcomes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 🚗 Collector Car Auction Monitor: Sold Prices & Outcomes

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FFF7ED;border:1px solid #FED7AA;border-top:4px solid #C2410C;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Compare public collector-car auction outcomes in one clean dataset.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Collect sold prices, reserve outcomes, vehicle details, and change flags from Bring a Trailer and Hagerty Marketplace.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FED7AA;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#9A3412">💰 Sold comps</span><br>
<span style="font-size:12px;color:#57534E">Compare public result and hammer prices.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FED7AA;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#9A3412">🔔 Change flags</span><br>
<span style="font-size:12px;color:#57534E">Spot new records and changed outcomes.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FED7AA;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#9A3412">🔧 Vehicle context</span><br>
<span style="font-size:12px;color:#57534E">Keep year, make, model, mileage, and specs.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FED7AA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#9A3412">🔗 Source proof</span><br>
<span style="font-size:12px;color:#57534E">Trace every row to its public listing.</span>
</td>
</tr>
</table>

Collector Car Auction Outcome Monitor turns public auction result pages into analysis-ready records. No marketplace login is required for supported pages.

### 🔍 What does this Actor do?

Paste public result pages or individual listings from Bring a Trailer and Hagerty Marketplace. The Actor saves each genuine outcome without filling gaps with placeholder data.

Use it to:

- Compare sold prices across two established collector-car marketplaces.
- Separate sold, reserve-not-met, withdrawn, and other ended outcomes.
- Track new listings and price or status changes between scheduled runs.
- Build comp sets with vehicle year, make, model, mileage, and auction activity.
- Keep the original listing URL and public lead image beside every record.

### 👥 Who uses it?

- **I am a collector-car dealer** comparing recent sold outcomes before pricing an acquisition or trade-in.
- **I am an appraiser** building source-linked comp sets for a valuation report.
- **I am an auction analyst** monitoring reserve performance and outcome changes across scheduled runs.
- **I am an enthusiast** tracking the closing prices of specific makes, models, or eras.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add public pages</span><br>
<span style="font-size:12px;color:#57534E">Paste supported result or listing URLs.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Choose your outcomes</span><br>
<span style="font-size:12px;color:#57534E">Set status, keyword, and record limits.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Review or schedule</span><br>
<span style="font-size:12px;color:#57534E">Export comps or repeat runs for change flags.</span>
</td>
</tr>
</table>

### 🧭 Source coverage

The first release supports these public surfaces:

- Bring a Trailer sold-result pages and individual public listing pages.
- Hagerty Marketplace ended-auction pages and individual public auction pages.

Cars & Bids, Collecting Cars, Car & Classic, Copart, and IAA are not included. The Actor does not bypass logins, subscriptions, or access challenges.

### ⚙️ Input

| Field                | Type             | Required | Description                                                                                                                                               |
| -------------------- | ---------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`          | array of URLs    | No       | Public Bring a Trailer result or listing URLs and Hagerty Marketplace result or auction URLs. The supplied examples return a bounded mixed-source sample. |
| `keyword`            | string           | No       | Keep vehicles whose title, make, model, or description contains this text. Leave it blank to keep every vehicle.                                          |
| `outcomeStatuses`    | array of strings | No       | Choose sold, reserve-not-met, withdrawn, and other ended outcomes. All four are selected by default.                                                      |
| `onlyChanges`        | boolean          | No       | Save only new records and changed prices or statuses compared with the prior run in the same storage. It is off by default.                               |
| `includeDescription` | boolean          | No       | Include a public description or result-card excerpt when available. It is on by default.                                                                  |
| `includeImages`      | boolean          | No       | Include the public lead image URL when available. It is on by default.                                                                                    |
| `maxItems`           | integer          | No       | Cap saved records from 1 to 500. The default returns 10 records.                                                                                          |
| `maxConcurrency`     | integer          | No       | Read 1 to 5 public pages in parallel. The default uses 2 requests.                                                                                        |
| `proxyConfiguration` | object           | No       | Control optional network routing. Cloud runs default to Apify datacenter routing.                                                                         |

### 📦 Data table

Missing values are omitted. The Actor never inserts guessed vehicle details or placeholder strings.

| Field                   | Type    | Description                                                         |
| ----------------------- | ------- | ------------------------------------------------------------------- |
| `source`                | string  | Normalized auction source name.                                     |
| `listingId`             | string  | Source listing identifier.                                          |
| `title`                 | string  | Public vehicle or auction title.                                    |
| `year`                  | number  | Model year when shown.                                              |
| `make`                  | string  | Vehicle make when shown.                                            |
| `model`                 | string  | Vehicle model when shown.                                           |
| `subModel`              | string  | Source-published vehicle submodel.                                  |
| `bodyStyle`             | string  | Public body style.                                                  |
| `origin`                | string  | Source-published vehicle origin.                                    |
| `decade`                | string  | Public era or decade label.                                         |
| `drivetrain`            | string  | Public drivetrain description.                                      |
| `vin`                   | string  | VIN published on the public auction page.                           |
| `exteriorColor`         | string  | Public exterior color.                                              |
| `interiorColor`         | string  | Public interior color.                                              |
| `ownershipStatus`       | string  | Source-published ownership status.                                  |
| `outcomeStatus`         | string  | Sold, reserve-not-met, withdrawn, or other ended outcome.           |
| `resultPrice`           | number  | Final price displayed on the public result.                         |
| `hammerPrice`           | number  | Hammer or sale price before a separately shown buyer premium.       |
| `buyerPremium`          | number  | Buyer premium when the source exposes it separately.                |
| `buyerPremiumRate`      | number  | Source-published buyer premium rate.                                |
| `currency`              | string  | Currency code when identified by the source.                        |
| `outcomeDate`           | string  | Auction end or outcome timestamp.                                   |
| `location`              | string  | Vehicle location when shown.                                        |
| `country`               | string  | Country label when shown.                                           |
| `mileage`               | number  | Public mileage value when shown.                                    |
| `mileageUnit`           | string  | Unit attached to mileage.                                           |
| `engine`                | string  | Public engine description.                                          |
| `transmission`          | string  | Public transmission description.                                    |
| `bidCount`              | number  | Successful or total bid count shown by the source.                  |
| `commentCount`          | number  | Public comment count when shown.                                    |
| `viewCount`             | number  | Public page view count when shown.                                  |
| `watcherCount`          | number  | Public BaT watcher count when shown.                                |
| `likeCount`             | number  | Public Hagerty like count when shown.                               |
| `hasReserve`            | boolean | Whether the auction has a reserve when disclosed.                   |
| `soldAfterAuction`      | boolean | Whether Hagerty marks the vehicle sold after auction.               |
| `soldAfterEndTime`      | string  | Source-published post-auction sale timestamp.                       |
| `lotNumber`             | number  | Public BaT lot number.                                              |
| `seller`                | string  | Public seller username or name.                                     |
| `sellerType`            | string  | Public private-party or dealer label.                               |
| `chassis`               | string  | Public BaT chassis identifier.                                      |
| `category`              | string  | Public vehicle category.                                            |
| `url`                   | string  | Direct public listing URL.                                          |
| `imageUrl`              | string  | Public lead image URL.                                              |
| `description`           | string  | Public listing description or result excerpt.                       |
| `firstSeenAt`           | string  | First time this Actor observed the listing in the saved state.      |
| `lastSeenAt`            | string  | Most recent observation time.                                       |
| `isNew`                 | boolean | True when no prior saved state exists for the listing.              |
| `hasOutcomeChanged`     | boolean | True when saved price or status differs from the prior observation. |
| `previousOutcomeStatus` | string  | Prior saved status when one exists.                                 |
| `previousResultPrice`   | number  | Prior saved result price when one exists.                           |
| `scrapedAt`             | string  | Time the record was collected.                                      |

### 🧾 Example record

```json
{
    "source": "hagerty_marketplace",
    "listingId": "211d5830-7d3c-406c-8545-b8c6bb8ddcf2",
    "title": "Gasser-Style Supercharged 468-Powered 1955 Chevrolet Bel Air 2-Door Sedan",
    "year": 1955,
    "make": "Chevrolet",
    "model": "Bel Air",
    "outcomeStatus": "sold",
    "resultPrice": 47347.5,
    "hammerPrice": 44250,
    "buyerPremium": 3097.5,
    "currency": "USD",
    "outcomeDate": "2026-08-10T18:07:01.217Z",
    "location": "Cincinnati, Ohio",
    "mileage": 37,
    "mileageUnit": "MILES",
    "engine": "468ci V8",
    "transmission": "Manual",
    "bidCount": 58,
    "commentCount": 22,
    "viewCount": 24206,
    "hasReserve": false,
    "url": "https://www.hagerty.com/marketplace/auction/1955-Chevrolet-Bel-Air/211d5830-7d3c-406c-8545-b8c6bb8ddcf2",
    "imageUrl": "https://hagerty-marketplace-prod.imgix.net/assets/-iibJreX9mxfzcEAFplXqQ.jpg",
    "isNew": true,
    "hasOutcomeChanged": false,
    "scrapedAt": "2026-08-10T18:30:53.120Z"
}
```

### 💰 Pricing

Pricing follows the pay-per-event configuration shown on Apify. You pay for successfully saved outcome events, with no subscription commitment. Empty datasets do not create result events.

### ⭐ Enjoying Collector Car Auction Monitor?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#FFF7ED;border:1px solid #FED7AA;border-left:5px solid #C2410C;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#1C1917">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Found a useful comp without hours of manual result checks?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps dealers, appraisers, analysts, and enthusiasts find this Actor.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#C2410C;border:1px solid #FED7AA;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/collector-car-auction-outcome-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Which collector-car auctions are supported?

The first release supports public Bring a Trailer and Hagerty Marketplace outcome pages. Other marketplaces are excluded until their access and usage conditions are suitable.

##### Does it get blocked?

The supported pages were selected because their public auction content is available without a login. Optional network routing can help with ordinary regional connection issues.

##### How fresh are the auction results?

Each run reads the public page at run time. Schedule repeat runs when you need a regular sold-comp or outcome-change feed.

##### How does change detection work?

The Actor stores each listing's last observed status and price. Later runs mark new records and genuine changes without inventing missing history.

### 🔗 Other actors

- [AuctionNinja Scraper: Estate Sales & Online Auctions](https://apify.com/getascraper/auctionninja-scraper) ↗ - Collect estate-sale auction lots and bidding details.
- [HiBid Scraper: Real-Time Auction Listings](https://apify.com/getascraper/hibid-scraper) ↗ - Track public HiBid auction listings and current bidding data.
- [ShopGoodwill Scraper: Sold Comps & Auction Monitor](https://apify.com/getascraper/shopgoodwill-scraper) ↗ - Build sold comps and monitor ShopGoodwill auctions.
- [Whatnot Scraper: Live Shows, Products & Sellers](https://apify.com/getascraper/whatnot-scraper) ↗ - Collect public live-commerce products and seller records.
- [Mercari Sold Comps Scraper: Sold Prices, Sell-Through & Days to Sell](https://apify.com/getascraper/mercari-sold-comps-scraper) ↗ - Compare resale prices and sell-through signals from Mercari.

# Actor input Schema

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

Public Bring a Trailer result or listing URLs and Hagerty Marketplace result or auction URLs.

## `keyword` (type: `string`):

Keep records whose vehicle title, make, model, or description contains this text. Leave blank for every vehicle.

## `outcomeStatuses` (type: `array`):

Save sold, reserve-not-met, withdrawn, or other ended auction outcomes.

## `onlyChanges` (type: `boolean`):

Compare with the prior run in the same storage and save only new listings or changed status and price records.

## `includeDescription` (type: `boolean`):

Include the public vehicle description or result-card excerpt when available.

## `includeImages` (type: `boolean`):

Include the public lead vehicle image URL when available.

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

Maximum number of outcome records saved in one run.

## `maxConcurrency` (type: `integer`):

Number of public pages read in parallel. Keep this low to respect source load.

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

Optional proxy settings. The default uses Apify datacenter proxy routing in cloud runs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://bringatrailer.com/auctions/results/?result=sold"
    },
    {
      "url": "https://www.hagerty.com/marketplace/search?sortBy=ending_soonest&type=auctions&forSale=false"
    }
  ],
  "keyword": "",
  "outcomeStatuses": [
    "sold",
    "reserve_not_met",
    "withdrawn",
    "ended"
  ],
  "onlyChanges": false,
  "includeDescription": true,
  "includeImages": true,
  "maxItems": 10,
  "maxConcurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `state` (type: `string`):

No description

## `runSummary` (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/?result=sold"
        },
        {
            "url": "https://www.hagerty.com/marketplace/search?sortBy=ending_soonest&type=auctions&forSale=false"
        }
    ],
    "keyword": "",
    "outcomeStatuses": [
        "sold",
        "reserve_not_met",
        "withdrawn",
        "ended"
    ],
    "onlyChanges": false,
    "includeDescription": true,
    "includeImages": true,
    "maxItems": 10,
    "maxConcurrency": 2,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/collector-car-auction-outcome-monitor").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/?result=sold" },
        { "url": "https://www.hagerty.com/marketplace/search?sortBy=ending_soonest&type=auctions&forSale=false" },
    ],
    "keyword": "",
    "outcomeStatuses": [
        "sold",
        "reserve_not_met",
        "withdrawn",
        "ended",
    ],
    "onlyChanges": False,
    "includeDescription": True,
    "includeImages": True,
    "maxItems": 10,
    "maxConcurrency": 2,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/collector-car-auction-outcome-monitor").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/?result=sold"
    },
    {
      "url": "https://www.hagerty.com/marketplace/search?sortBy=ending_soonest&type=auctions&forSale=false"
    }
  ],
  "keyword": "",
  "outcomeStatuses": [
    "sold",
    "reserve_not_met",
    "withdrawn",
    "ended"
  ],
  "onlyChanges": false,
  "includeDescription": true,
  "includeImages": true,
  "maxItems": 10,
  "maxConcurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/collector-car-auction-outcome-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/collector-car-auction-outcome-monitor"
        }
    }
}

```

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/m0skbiVsthqJGQxPC/builds/qEPf8aR1ElWYI0WGJ/openapi.json
