# Bring a Trailer Vehicle Auction Comps (`jpmarketdata/bringatrailer-vehicle-auction-comps`) Actor

Analyze exact Bring a Trailer vehicle-model pages for sold-price medians and quartiles, comparable auction links, and separate unsold counts. Excludes parts-only auctions and keeps currencies separate.

- **URL**: https://apify.com/jpmarketdata/bringatrailer-vehicle-auction-comps.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 16.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$50.00 / 1,000 vehicle model analyzeds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Bring a Trailer Vehicle Auction Comps

Analyze recent completed vehicle auctions for exact Bring a Trailer model pages. Get sold-price quartiles, separately counted unsuccessful auctions, and auditable comparable links for acquisition and pricing decisions.

**Price:** $0.05 per successful model report (`vehicle-model-analyzed`).

### Input

Provide `modelUrls` with 1–5 public HTTPS model URLs, such as `https://bringatrailer.com/acura/legend/`. Search, listing, member, account and query URLs are not accepted. `lookbackDays` defaults to 365; `currency` defaults to USD. Optional `yearMin` and `yearMax` narrow vehicle years. `maxComps` defaults to 20 evidence links per report; `maxItems` caps model reports at 5. Duplicate model URLs are analyzed once.

### Output

One row per successfully analyzed model: `modelUrl`, `modelName`, `currency`, `status`, `soldCount`, `unsoldCount`, `excludedCount`, `priceSummary` (median, p25, p75, minimum, maximum), `comparables`, `coverage`, `filters`, `reason`, and `fetchedAt`. Comparable fields are auction ID, source URL, vehicle year, sold date, amount and currency. Quartiles use linear interpolation at (n-1)\*p. Statistics include all qualifying chart records in the selected period, not merely the returned evidence links.

Parts-only auctions, unclear vehicle identities and other currencies are excluded. Unsuccessful high bids are never counted as sold prices. Fewer than three qualifying sales returns `insufficient_comps` with null quartiles and median; min/max remain available for one or two sales. Zero qualifying sales returns `no_matching_sales` and null price statistics with an explanation. Sold prices are displayed auction outcomes and exclude buyer fees, taxes, shipping and verified settlement. The model category may mix trims and conditions; no mileage or condition adjustment is claimed. Coverage describes only records available in the source chart, not the entire vehicle market. No market-wide sell-through estimate is produced.

### Pricing

$0.05 per successful model report, charged once as `vehicle-model-analyzed`. A valid report explaining no matching sales is a successful analysis and is billable. Comparable links and unsuccessful-auction counts add no charge. Retrieval, parsing and authentication failures produce no billable report. The example input requests one model report and uses the same event against any available Apify credit; it does not promise a zero-dollar run or apply a customer-plan restriction. `maxItems` and the available event budget limit fetched and emitted reports before work begins. A later source failure does not undo earlier completed reports or their charges.

### Limits

At most five model-page requests, no retries, concurrency one, at least two seconds between requests, 8 MB maximum response and 180 seconds per run, using 256 MB memory without a browser or paid external API. A 401/403/challenge is an access failure, 429 is a rate-limit failure, timeouts fail explicitly, and missing or inconsistent chart structure is a parser error. A zero result is valid only after the source structure and model identity were verified. Runtime requests are limited to prechecked model paths; robots are rechecked in the release process. Source URLs are restricted to the exact permitted host and redirects are not automatically followed.

### Privacy

No seller or bidder identities, addresses, VINs, coordinates, comments, listing descriptions, images or raw auction titles are output or persisted. Source titles are examined transiently only to recognize vehicles and filter parts. Output is an allowlist of factual auction values and source links. Independent product, not affiliated with or endorsed by Bring a Trailer.

# Actor input Schema

## `modelUrls` (type: `array`):

Exact HTTPS Bring a Trailer model pages; no search, listing, account, query or fragment URLs.

## `lookbackDays` (type: `integer`):

Include auctions ending within this many days of the UTC run start.

## `currency` (type: `string`):

Only this explicitly identified auction currency contributes to the report.

## `yearMin` (type: `integer`):

Optional inclusive vehicle year lower bound.

## `yearMax` (type: `integer`):

Optional inclusive vehicle year upper bound; must not precede yearMin.

## `maxComps` (type: `integer`):

Evidence cap only; statistics use every eligible source chart sale.

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

Defaults to one sample report; raise up to five, subject to the available event budget.

## Actor input object example

```json
{
  "modelUrls": [
    "https://bringatrailer.com/acura/legend/"
  ],
  "lookbackDays": 365,
  "currency": "USD",
  "maxComps": 20,
  "maxItems": 1
}
```

# Actor output Schema

## `reports` (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 = {
    "modelUrls": [
        "https://bringatrailer.com/acura/legend/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/bringatrailer-vehicle-auction-comps").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 = { "modelUrls": ["https://bringatrailer.com/acura/legend/"] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/bringatrailer-vehicle-auction-comps").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 '{
  "modelUrls": [
    "https://bringatrailer.com/acura/legend/"
  ]
}' |
apify call jpmarketdata/bringatrailer-vehicle-auction-comps --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/bringatrailer-vehicle-auction-comps"
        }
    }
}
```

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/ohr5TPDiI7DjB9P34/builds/UwLfLxRxLEVoqirKI/openapi.json
