Bring a Trailer Scraper avatar

Bring a Trailer Scraper

Pricing

from $3.00 / 1,000 auction scrapeds

Go to Apify Store
Bring a Trailer Scraper

Bring a Trailer Scraper

Scrape Bring a Trailer live auctions and sold results by make, model or search: sold price or high bid, end date, year, mileage, VIN, bids and comments. Built for collector car valuations.

Pricing

from $3.00 / 1,000 auction scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Scrape Bring a Trailer (BaT) auction results and live auctions: sold prices, high bids, end dates, year, make, model, mileage, VIN, bid history and photos. Works with any make, model, category or results URL, or a plain search query.

Bring a Trailer has the most-watched sold-price history for collector and enthusiast cars, but no export. Paste a model page like https://bringatrailer.com/porsche/911/ or type "BMW E30 M3" and get every completed auction as clean JSON, CSV or Excel, or straight into your app through the API. The actor reads the structured data BaT itself uses to render its results (including the same filter endpoint as the "Results" page), so prices and dates are exact numbers instead of scraped text. It throttles itself, retries on a fresh proxy session and never logs in. You pay only for the auctions you get.

What data does Bring a Trailer Scraper extract?

Every auction from a results or live list gives you:

FieldDescription
id, urlBaT listing id and listing URL
titleListing title, e.g. "RoW 1980 Porsche 911SC Coupe" (the "No Reserve:" prefix is moved to isNoReserve)
year, make, modelModel year (number), make, and the model of the page you scraped (e.g. 911 for /porsche/911/)
statussold, reserve not met, withdrawn, live, or ended (closed without a result)
soldPriceHammer price as a number, when sold
highBidHighest bid as a number for reserve-not-met, withdrawn and live auctions
currency, priceTextUSD, EUR, GBP, ... and BaT's own text ("Sold for USD $82,000 on 9/14/2026")
endedAt / endsAtAuction end time (ISO 8601, UTC) for completed / live auctions
isNoReserve, isPremium, isRepeatListingNo Reserve, Premium and "BaT Alumni" (car sold on BaT before) flags
country, countryCode, latitude, longitudeWhere the vehicle is located (coordinates for live auctions)
thumbnailUrl, imageUrl, excerptCard photo (thumbnail and full size) and the listing summary
sourceUrl, scrapedAtThe URL or search the auction came from, and when it was scraped

Turn on Include listing details to also open each listing page and add:

FieldDescription
vinVIN or chassis number as listed
mileage, mileageUnit, mileageTextOdometer as a number (miles or km) plus BaT's wording ("54k Miles Shown on Replacement Speedometer", "TMU")
engine, transmissione.g. "3.0-Liter Flat-Six", "Five-Speed Manual Transaxle"
exteriorColor, interiorColore.g. "Minerva Blue Metallic", "Tan Upholstery w/Plaid Cloth Inserts"
essentialsThe full "Listing Details" bullet list
locationCity, state and postal code of the vehicle
sellerUsername, sellerTypeSeller's public BaT handle and private or dealer
lotNumberBaT lot number
bidCount, openingBid, firstBidAt, lastBidAt, bidHistoryNumber of bids and every bid as {amount, at} (bidder names are not collected)
commentCount, views, watchersEngagement counters
model, modelFull, era, originBaT's precise model tag (e.g. 911SC), decade and origin
images, imageCountAll gallery photo URLs in full resolution
descriptionFull listing description as plain text

How to scrape Bring a Trailer sold prices

  1. Open bringatrailer.com and go to a make or model page (for example Porsche -> 911), or to Auctions -> Results and set filters (search words, sold only, year range). Copy the URL into Start URLs. Or just type a Search query such as "Ferrari 308".
  2. Choose Auctions: completed results (default), live auctions, or both.
  3. Set Max items (your cost cap) and optionally turn on Include listing details.
  4. Click Start and export the dataset as JSON, CSV or Excel, or read it through the API.

Input example

{
"startUrls": [
{ "url": "https://bringatrailer.com/porsche/911/" },
{ "url": "https://bringatrailer.com/auctions/results/?search=e30+m3&result=sold&yearFrom=1988&yearTo=1991" }
],
"mode": "completed",
"maxItems": 500,
"includeDetails": true
}

or by keywords, live and completed:

{
"searchQuery": "Land Cruiser FJ40",
"mode": "both",
"maxItems": 200
}

Output example

{
"id": 114307212,
"url": "https://bringatrailer.com/listing/1980-porsche-911sc-139/",
"title": "RoW 1980 Porsche 911SC Coupe",
"year": 1980,
"make": "Porsche",
"model": "911SC",
"status": "sold",
"soldPrice": 82000,
"highBid": null,
"currency": "USD",
"priceText": "Sold for USD $82,000 on 9/14/2026",
"endedAt": "2026-09-14T18:08:17Z",
"isNoReserve": false,
"country": "United States",
"thumbnailUrl": "https://bringatrailer.com/wp-content/uploads/2026/05/1980_porsche_911sc_...-scaled.jpg?w=470&h=318&crop=1",
"excerpt": "This 1980 Porsche 911SC is a rest-of-world coupe that has been imported from Germany to the US...",
"vin": "91A0131527",
"mileage": 54000,
"mileageUnit": "miles",
"mileageText": "54k Miles Shown on Replacement Speedometer",
"engine": "3.0-Liter Flat-Six",
"transmission": "Five-Speed Manual Transaxle",
"exteriorColor": "Minerva Blue Metallic",
"interiorColor": "Tan Upholstery w/Plaid Cloth Inserts",
"location": "Seattle, Washington 98112",
"sellerUsername": "Porscheplatz1",
"sellerType": "private",
"lotNumber": "263041",
"bidCount": 48,
"commentCount": 160,
"views": 19337,
"watchers": 2463,
"openingBid": 1,
"bidHistory": [{ "amount": 1, "at": "2026-09-07T18:38:31Z" }, { "amount": 82000, "at": "2026-09-14T18:06:17Z" }],
"essentials": ["Chassis: 91A0131527", "54k Miles Shown on Replacement Speedometer", "3.0-Liter Flat-Six", "..."],
"images": ["https://bringatrailer.com/wp-content/uploads/2026/05/1980_porsche_911sc_...-scaled.jpg", "..."],
"description": "This 1980 Porsche 911SC is a rest-of-world coupe...",
"sourceUrl": "https://bringatrailer.com/porsche/911/",
"scrapedAt": "2026-09-14T20:17:53Z"
}

All of them up to 10,000 per start URL. Bring a Trailer serves completed results 60 at a time and stops at the 10,000th result of any single query, which only matters for the very biggest makes (Porsche has 33,000+ results, the 911 alone about 20,000). For those, add several URLs split by year range, e.g. https://bringatrailer.com/auctions/results/?search=porsche+911&yearFrom=1965&yearTo=1989 and ...&yearFrom=1990&yearTo=2004. Duplicates across URLs are removed automatically. Live auctions are always returned in full.

Can I scrape live Bring a Trailer auctions?

Yes. Set Auctions to "Live auctions" (or "Both"). A model page returns that model's live auctions; https://bringatrailer.com/auctions/ returns every live auction on the site (usually 1,000+), and a search query filters them. Live items have status: "live", the current highBid and endsAt. With details on you also get the bid history so far.

Which URLs does it accept?

Make pages (/porsche/), model pages (/porsche/911/, /bmw/e30-m3/), category and origin pages (/german/), the results page with any filters from the browser (/auctions/results/?search=...&result=sold&yearFrom=...&timeFrame=1Y), BaT's search URLs (/search/?s=..., followed to the matching model page), the live auctions page, and single listing URLs (/listing/...), which always return a fully detailed item.

Does it work without a Bring a Trailer account?

Yes. Everything comes from public pages that anyone can open without logging in. No account, cookies or API key are needed, and bidder names are never collected. The seller's public BaT handle is included because it is shown on the listing.

Pricing

Pay per result: $0.003 per auction saved, plus $0.004 per listing page opened when Include listing details is on (and for single listing URLs). 1,000 results (price, status, end date, year, make, model) cost $3; with full vehicle details (VIN, mileage, specs, bids, photos) $7. No start fee, no subscription.

Integrations and API

Run it from Python or Node with the Apify client, schedule it weekly to track a model's prices, or connect the dataset to Google Sheets, Zapier, Make or n8n. See the API tab for ready-made snippets.

This Actor collects only publicly visible auction data: vehicle details, prices, dates and the listing's public seller handle. It does not log in, does not collect bidder or commenter identities, and does not collect contact details. You are responsible for how you use the data and for complying with Bring a Trailer's terms and applicable law.

Support

Missing a field or found a URL that does not work? Open an issue in the Issues tab; it is usually answered within a day.