Bring a Trailer Auctions Scraper avatar

Bring a Trailer Auctions Scraper

Pricing

Pay per event

Go to Apify Store
Bring a Trailer Auctions Scraper

Bring a Trailer Auctions Scraper

Extract live BaT auction listings with current bids, end times, countries, thumbnails, and public listing URLs for vehicle market analysis.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Extract live Bring a Trailer auction listings, bid levels, countries, end times, thumbnails, and auction URLs from public BaT pages.

What does Bring a Trailer Auctions Scraper do?

Bring a Trailer Auctions Scraper turns the public BaT live auctions page into structured data.

It reads the server-rendered auction data exposed on Bring a Trailer.

It saves one dataset row per auction listing.

It is designed for recurring monitoring and market-intelligence workflows.

Use it to export active inventory, current bids, auction end times, country metadata, and listing URLs.

Who is it for?

🚗 Collector-car dealers tracking desirable inventory.

📊 Auction analysts monitoring current bid levels.

🧾 Appraisers collecting comparable live-auction context.

💼 Pricing-intelligence teams building dashboards.

🔔 Enthusiasts watching categories and high-value vehicles.

Why use this scraper?

Bring a Trailer is a high-signal collector-vehicle marketplace.

Manual monitoring takes time.

Structured exports make it easier to sort, filter, alert, and compare listings.

This actor provides repeatable data without requiring a login for public auction pages.

What data can you extract?

The actor extracts auction listing records.

FieldDescription
listingIdBring a Trailer listing ID
titleAuction title or vehicle headline
yearVehicle year when exposed by BaT
urlPublic auction URL
currentBidNumeric current bid
currentBidFormattedFormatted bid text
currencyListing currency
countryListing country
countryCodeTwo-letter country code
locationLatitudeLatitude when provided
locationLongitudeLongitude when provided
endTimeAuction end time in ISO format
endTimestampAuction end timestamp
noReserveWhether BaT marks the listing as no reserve
premiumWhether BaT marks the listing as premium
repeatListingRepeat listing flag
categoriesBaT category IDs
thumbnailUrlAuction thumbnail image
excerptShort BaT listing summary
sourceUrlPage that produced the row
scrapedAtExtraction timestamp

How much does it cost to scrape Bring a Trailer auctions?

This actor uses pay-per-event pricing.

There is a $0.005 start fee per run.

Per auction listing pricing is tiered by Apify plan: Free $0.000031389, Bronze $0.000027295, Silver $0.00002129, Gold $0.000016377, Platinum $0.000010918, Diamond $0.00001.

A 100-listing run costs roughly $0.0082 on the Free tier before any platform/account-level adjustments.

Use maxItems to control cost.

Start with 100 auctions for a normal market snapshot.

Reduce maxItems when testing filters.

Input options

startUrls accepts Bring a Trailer URLs.

Leave it empty to scrape https://bringatrailer.com/auctions/.

Use maxItems to cap saved records.

Use minBid to keep only listings above a bid threshold.

Use countryCode to keep only a country such as US, CA, or GB.

Use includeExcerpt to include or omit the listing summary text.

Example input

{
"startUrls": [
{ "url": "https://bringatrailer.com/auctions/" }
],
"maxItems": 100,
"minBid": 0,
"countryCode": "",
"includeExcerpt": true
}

Example output

{
"listingId": 116636262,
"title": "Lot #250,000: 1985 Ferrari 288 GTO",
"year": "1985",
"url": "https://bringatrailer.com/listing/1985-ferrari-288-gto-2/",
"currentBid": 6800000,
"currentBidFormatted": "USD $6,800,000",
"currency": "USD",
"country": "United States",
"countryCode": "US",
"endTime": "2026-07-07T17:00:00.000Z",
"noReserve": false,
"premium": true,
"thumbnailUrl": "https://bringatrailer.com/wp-content/uploads/example.jpg",
"sourceUrl": "https://bringatrailer.com/auctions/",
"scrapedAt": "2026-07-07T04:10:13.584Z"
}

How to scrape live BaT auctions

  1. Open the actor on Apify.

  2. Keep the default https://bringatrailer.com/auctions/ start URL.

  3. Set maxItems to the number of active auctions you need.

  4. Optionally set minBid or countryCode.

  5. Run the actor.

  6. Export the dataset as JSON, CSV, Excel, or via API.

Monitoring workflow ideas

Run the actor every hour to track bid changes.

Send dataset rows into a database.

Compare currentBid and endTime between runs.

Trigger alerts for vehicles above or below thresholds.

Build dashboards for active collector-car inventory.

Appraisal workflow ideas

Export active auctions for a specific market segment.

Filter by year, title keywords, country, or bid level in your downstream system.

Use url to open the original BaT listing for manual review.

Capture high-value lots before auction close.

Dealer workflow ideas

Monitor active vehicles that match acquisition criteria.

Track countries and currencies.

Prioritize premium or no-reserve listings.

Use thumbnails for internal watchlists.

Combine BaT data with CRM notes.

Tips for better results

Use the default auctions URL for the broadest active inventory snapshot.

Keep maxItems low while testing.

Use countryCode only when you know the exact country code.

Leave includeExcerpt enabled if you need vehicle context.

Disable includeExcerpt for smaller exports.

Limitations

The actor extracts public information visible in BaT page data.

It does not log in to user accounts.

It does not bid, watch, message, or interact with auctions.

Direct listing URLs may have fewer structured fields than the live auctions index.

Historical sold-price analysis is outside this first version.

Integrations

Send results to Google Sheets for manual review.

Load JSON into a warehouse for historical bid tracking.

Use webhooks to notify a Slack channel after each run.

Connect Apify datasets to Make or Zapier.

Query the dataset API from a pricing dashboard.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/bringatrailer-auctions-scraper').call({
startUrls: [{ url: 'https://bringatrailer.com/auctions/' }],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/bringatrailer-auctions-scraper').call(run_input={
'startUrls': [{'url': 'https://bringatrailer.com/auctions/'}],
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(len(items))

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~bringatrailer-auctions-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://bringatrailer.com/auctions/"}],"maxItems":100}'

MCP usage

Use the Apify MCP server with Claude Code or Claude Desktop.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/bringatrailer-auctions-scraper

Claude Code setup:

$claude mcp add apify-bat-auctions "https://mcp.apify.com/?tools=automation-lab/bringatrailer-auctions-scraper"

Claude Desktop JSON config:

{
"mcpServers": {
"apify-bat-auctions": {
"url": "https://mcp.apify.com/?tools=automation-lab/bringatrailer-auctions-scraper"
}
}
}

Example prompt:

"Run the Bring a Trailer Auctions Scraper for 100 current auctions and summarize the top current bids by country."

Another prompt:

"Scrape live BaT auctions and create a watchlist of premium listings ending soon."

Legality

This actor extracts public data from public pages.

You are responsible for using the data lawfully.

Respect Bring a Trailer's terms, privacy rights, and applicable laws.

Do not use scraped data for spam or unauthorized automated interaction.

FAQ

Why did I get fewer records than expected?

Filters such as minBid and countryCode can reduce the saved dataset size.

Can I scrape direct listing URLs?

Yes, but the live auctions page exposes richer structured auction fields.

Troubleshooting

If the dataset is empty, check maxItems, minBid, and countryCode filters.

If a direct listing URL has null bid fields, use the live auctions page for richer structured data.

If a run stops early, lower maxItems and retry.

If BaT changes page structure, open an issue with a sample URL.

Explore related automation-lab actors on Apify for vehicle listings, marketplaces, lead lists, and pricing intelligence.

Use this actor as the Bring a Trailer source in a broader automotive data workflow.

Changelog

Initial version extracts live Bring a Trailer auction listing data from public pages.

Support

If you need a field that appears on BaT but is missing from the dataset, open a support request with a sample auction URL.

Final notes

The best first run is the default input.

It is cheap, broad, and representative.

Increase maxItems when you are ready to monitor the full public inventory.