Bring a Trailer Auctions Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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.
| Field | Description |
|---|---|
listingId | Bring a Trailer listing ID |
title | Auction title or vehicle headline |
year | Vehicle year when exposed by BaT |
url | Public auction URL |
currentBid | Numeric current bid |
currentBidFormatted | Formatted bid text |
currency | Listing currency |
country | Listing country |
countryCode | Two-letter country code |
locationLatitude | Latitude when provided |
locationLongitude | Longitude when provided |
endTime | Auction end time in ISO format |
endTimestamp | Auction end timestamp |
noReserve | Whether BaT marks the listing as no reserve |
premium | Whether BaT marks the listing as premium |
repeatListing | Repeat listing flag |
categories | BaT category IDs |
thumbnailUrl | Auction thumbnail image |
excerpt | Short BaT listing summary |
sourceUrl | Page that produced the row |
scrapedAt | Extraction 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
-
Open the actor on Apify.
-
Keep the default
https://bringatrailer.com/auctions/start URL. -
Set
maxItemsto the number of active auctions you need. -
Optionally set
minBidorcountryCode. -
Run the actor.
-
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 ApifyClientimport osclient = 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().itemsprint(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
Is it legal to scrape Bring a Trailer?
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.
Related scrapers
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.