
Bring a Trailer Scraper
hipersoft/bringatrailer-scraper
Scrape Bring a Trailer (BaT) car auctions: sold prices, high bids, end dates, no-reserve flag, location, photos and descriptions for 260,000+ completed auctions plus every live auction. Filter by make/model page, year and sold/unsold. Export CSV/JSON.
Total users
2Monthly users
1Total runs
29Per auction
$0.002Last rebuilt
Oct 26, 2026Overview
Bring a Trailer Scraper extracts car auction data from Bring a Trailer (BaT, bringatrailer.com), the largest online auction site for collector, classic and enthusiast cars. Get 260,000+ completed auctions with sold prices, high bids, end dates and results, plus every live auction with its current bid and end time. Each auction includes the title, model year, price, currency, sold/not-sold status, no-reserve flag, location with GPS coordinates, description and main photo. Filter by make or model page (e.g. Porsche 911, BMW E30 M3, Land Rover Defender), model year and result, and export to CSV, Excel or JSON.
What does Bring a Trailer Scraper do?
- 🏁 Completed auction results: sold prices and high bids from more than 260,000 BaT auctions, newest first.
- 🔴 Live auctions: every auction currently running with its current bid and exact end time.
- 🚗 Make and model filters: paste any BaT make, model or category page, such as Porsche 911, Ford Bronco, Mercedes-Benz 300SL or Toyota Land Cruiser.
- 📅 Model-year range and sold / not sold filters.
- 🔎 Title contains: narrow down to "Turbo", "5-Speed", "Defender 110" and so on.
- 🏷️ No-reserve flag and filter.
- 📍 Location: country and coordinates for live auctions.
- 📝 Description excerpt and main photo for every auction.
What data can you scrape from Bring a Trailer?
| Field | Description |
|---|---|
| ID, title, link | BaT listing identifier, title and page |
| Year | Model year |
| Status | Live, sold, not sold or withdrawn |
| Price | Sold price, high bid or current bid |
| Currency | Auction currency |
| Result text | E.g. "Sold for USD $157,911 on 10/5/2026" |
| End date | When the auction ended or ends |
| No reserve | Whether the auction had no reserve |
| Premium | Premium (featured) listing |
| Location | Country, country code, latitude, longitude |
| Description | Listing excerpt |
| Photo | Main image link |
Use cases for BaT auction data
- Collector-car valuation: build price guides from real BaT sold prices by make, model and year.
- Dealers and flippers: find what cars actually sell for before buying or listing.
- Market trend analysis: track prices of Porsche 911s, Land Cruisers, Broncos or any model over time.
- Auction monitoring: watch live auctions for a model and get alerts before they end.
- Insurance and appraisals: support agreed-value appraisals with comparable sales.
- Content and newsletters: publish weekly "top sales" and "notable results" lists.
How to scrape Bring a Trailer
- Click Try for free to open Bring a Trailer Scraper in Apify Console.
- Choose Completed auctions, Live auctions or Both.
- Optionally paste make or model pages from bringatrailer.com and set year, result or title filters.
- Set Max auctions and click Start.
- Download the auctions as CSV, Excel or JSON.
Input
Example input
{
"auctionType": "completed",
"startUrls": [
{ "url": "https://bringatrailer.com/porsche/911/" },
{ "url": "https://bringatrailer.com/land-rover/defender/" }
],
"result": "sold",
"yearFrom": 1985,
"yearTo": 1998,
"titleContains": "",
"noReserveOnly": false,
"maxItems": 1000
}
| Field | Description |
|---|---|
| Auctions | Completed, live or both. |
| Make or model pages | BaT make/model/category pages. Leave empty for all auctions. |
| Result | All, sold only or not sold only (completed auctions). |
| Model year from / to | Model-year range. |
| Title contains | All words must appear in the title. |
| No-reserve auctions only | Only no-reserve auctions. |
| Max auctions | Stop after this many auctions (0 = no limit). |
Output
Completed auction example
{
"id": 120517943,
"title": "Modified 1972 Porsche 911T Coupe 5-Speed",
"url": "https://bringatrailer.com/listing/1972-porsche-911t-coupe-48/",
"year": 1972,
"status": "sold",
"price": 157911,
"priceLabel": "sold price",
"currency": "USD",
"resultText": "Sold for USD $157,911 on 10/5/2026",
"endDate": "2026-10-05",
"noReserve": false,
"countryCode": "US",
"excerpt": "This 1972 Porsche 911T coupe delivered new to Porsche Audi at O’Hare in Elk Grove Village, Illinois…",
"imageUrl": "https://bringatrailer.com/wp-content/uploads/2026/08/1972_Porsche_911T_Coupe_5-Speed-18-scaled-27344.jpg"
}
Live auction example
{
"id": 113456983,
"title": "RoW 1991 Porsche 911 Turbo",
"year": 1991,
"status": "live",
"price": 305000,
"priceLabel": "current bid",
"currency": "USD",
"endsAt": "2026-10-06T17:05:00.000Z",
"noReserve": false,
"premium": true,
"country": "United States",
"latitude": 45.5201,
"longitude": -122.688
}
Output schema
| Field | Type | Description |
|---|---|---|
id |
number | BaT listing ID. |
title, url |
string | Auction title and link. |
year |
number | Model year. |
status |
string | live, sold, not sold or withdrawn. |
price |
number | Sold price, high bid or current bid. |
priceLabel |
string | What price means. |
currency |
string | Currency code. |
resultText |
string | Result as shown on BaT. |
endDate |
string | End date. |
endsAt |
string (ISO date) | End time of live auctions. |
noReserve, premium |
boolean | Auction flags. |
country, countryCode, latitude, longitude |
mixed | Location. |
excerpt |
string | Description excerpt. |
imageUrl |
string (URL) | Main photo. |
source |
string | Which search found the auction. |
scrapedAt |
string (ISO date) | When the row was collected. |
How much does it cost to scrape Bring a Trailer?
Bring a Trailer Scraper uses pay-per-auction pricing: a small fixed price per auction, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price. Thousands of auction results take only a few minutes.
More vehicle and marketplace data
- eBay Scraper: eBay listings and prices, including eBay Motors.
- Carousell Scraper: Carousell marketplace listings.
FAQ
How do I get results for one model? Open the model on bringatrailer.com (e.g. bringatrailer.com/porsche/911/), copy the link and paste it into Make or model pages.
Does it include unsold cars? Yes. Set Result to Not sold only to get "bid to" and withdrawn auctions with their high bids.
How far back does the data go? All completed auctions listed on BaT, newest first, more than 260,000 in total.
Can I monitor live auctions? Yes. Choose Live auctions, add model pages, and schedule the scraper to run every few hours.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate Bring a Trailer Scraper with other apps? Bring a Trailer Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape Bring a Trailer? The scraper only collects publicly listed auction data. You are responsible for using the data in line with Bring a Trailer's terms.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with Bring a Trailer.
Input
| Field | Type | Description |
|---|---|---|
auctionTypeAuctions | string · completed, live, both | Completed auctions (results with sold prices), live auctions (current bids), or both. Default: "completed" |
startUrlsMake or model pages | array | Optional. Bring a Trailer make, model or category pages, e.g. https://bringatrailer.com/porsche/911/ or https://bringatrailer.com/bmw/e30-m3/. Leave empty for all auctions. |
resultResult | string · all, sold, unsold | For completed auctions: sold cars only, unsold (bid to / withdrawn) only, or all. Default: "all" |
yearFromModel year from | integer | Only cars from this model year or newer. |
yearToModel year to | integer | Only cars up to this model year. |
titleContainsTitle contains | string | Only auctions whose title contains all of these words, e.g. 'turbo 5-speed' or 'Defender 110'. |
noReserveOnlyNo-reserve auctions only | boolean | Only auctions with no reserve. Default: false |
maxItemsMax auctions | integer | Stop after this many auctions. 0 means no limit. Default: 200 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~bringatrailer-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [
{
"url": "https://bringatrailer.com/porsche/911/"
}
],
"maxItems": 100
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/bringatrailer-scraper").call(run_input={
"startUrls": [
{
"url": "https://bringatrailer.com/porsche/911/"
}
],
"maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/bringatrailer-scraper').call({
"startUrls": [
{
"url": "https://bringatrailer.com/porsche/911/"
}
],
"maxItems": 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Auction One Bring a Trailer auction scraped | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.