Bring a Trailer Scraper - Car Auction Sold Prices
Pricing
from $1.00 / 1,000 results
Bring a Trailer Scraper - Car Auction Sold Prices
Scrape Bring a Trailer (BaT) completed collector & enthusiast car auctions - real SOLD prices, final high bid, sold vs reserve-not-met status, end date, year/make/model, mileage, thumbnail and listing URL. Paste a BaT results, make or model URL, or search by keyword.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
James Scott
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Bring a Trailer Scraper - Collector Car Auction Results & Sold Prices
Scrape completed collector & enthusiast car auctions from Bring a Trailer (BaT) into clean, structured data - no BaT account or API key required. BaT publishes real, verified sold prices, which makes it one of the best free sources of pricing comps for collector, classic and enthusiast vehicles.
What you get (per auction)
- auctionId and the canonical BaT listing URL
- title, plus parsed year / make / model and mileage (when present in the title)
- isSold and status -
sold,reserve_not_met, orunknown - soldPrice - the winning bid when the car actually sold (null when the reserve was not met)
- currentBid - the final high bid amount (equals the sold price on sold cars)
- currency, soldDate / endDate (ISO-8601 UTC) and endTimestamp (epoch)
- location / countryCode, noReserve, isPremium
- excerpt (BaT's short description) and thumbnailUrl
- numBids / numComments - see the note below
Input
- Bring a Trailer URLs - paste the results feed (
https://bringatrailer.com/auctions/results/) to scrape everything, or a make/model page (e.g.https://bringatrailer.com/porsche/911/) to target one model. Leave empty to scrape the national completed-results feed. - Keyword (optional) - narrow by a title keyword (e.g.
911 Turbo,Ford Bronco). Applied on top of any Start URL, or against the whole feed on its own. - Max auctions caps the run.
Example input
{"startUrls": [{ "url": "https://bringatrailer.com/porsche/911/" }],"query": "Turbo","maxItems": 200,"proxyConfiguration": { "useApifyProxy": true }}
Example output record
{"auctionId": 116763574,"title": "9k-Mile 2019 Porsche 911 Carrera GTS Coupe","year": 2019,"make": "Porsche","model": "911","isSold": true,"status": "sold","soldPrice": 125500,"currentBid": 125500,"currency": "USD","soldDate": "2026-07-08T15:37:57Z","endDate": "2026-07-08T15:37:57Z","mileage": 9000,"location": "US","countryCode": "US","noReserve": false,"url": "https://bringatrailer.com/listing/2019-porsche-911-carrera-gts-coupe-32/","thumbnailUrl": "https://bringatrailer.com/wp-content/uploads/...jpg"}
How it works
BaT is a WordPress site. Every results / make / model page embeds its first page of auctions in a var auctionsCompletedInitialData = {...} object, and BaT's own "load more" button calls a public REST route to page further:
POST https://bringatrailer.com/wp-json/bringatrailer/1.0/data/listings-filter{ "page": N, "per_page": 36, "get_items": true, "sort": "td", "base_filter": { "keyword_pages": [ ... ] } }
The Actor reads the page once to grab its base_filter (the make/model keyword_pages), then walks that endpoint page-by-page. Every field is read straight from BaT's own JSON, so it is far more durable than CSS scraping and runs on Apify's default datacenter proxy (no residential proxy needed).
Why this actor
- Real sold prices. BaT auctions clear at public, no-haggle hammer prices - unlike dealer asking prices, these are what collector cars actually sold for. Ideal for pricing intelligence, appraisals and market analysis on classic, exotic and enthusiast vehicles.
- Sold vs. no-sale is explicit. Cars whose reserve was not met are labelled
reserve_not_metwithsoldPrice: null, so you never mistake a high bid for a sale. - Fast + cheap. Data comes from BaT's own load-more endpoint - no per-listing detail requests.
- Export as JSON, CSV, or Excel, or pull via the Apify API.
Notes
- numBids / numComments: BaT serves live bid, comment and view counts over websockets (Pusher). They are not included in the completed-results feed, so
numBidsis reported asnullandnumCommentsas0. All price, date and status fields are fully populated. - year / make / model / mileage are parsed from the auction title on a best-effort basis and may be
nullfor automobilia lots (signs, parts, literature) or unusual titles.
Legal
This Actor collects public auction data for research and market-analysis purposes. It is not a consumer report, is not for FCRA purposes, and must not be used to make eligibility decisions about any individual. Respect Bring a Trailer's Terms of Service and applicable law.