Bring a Trailer
Bring a Trailer
/bringatrailer/v1/search1 creditSearch Bring a Trailer's CLOSED-auction archive — every lot the site has run, 265,000+ of them, with what each one actually made. Read `outcome` on every row before you read the money: 'sold' means the car changed hands at `sold_price`; 'reserve_not_met' means it did NOT sell and the figure is only the high bid (55,000+ lots of the archive). Every filter is optional. For auctions running right now use `live_auctions` instead.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | optional | — | Free-text search over the make, model, year, origin, country and VIN Bring a Trailer indexes per lot (e.g. 'porsche 911', '1990 miata', 'air-cooled'). Leave it out to browse everything. |
| exclude | optional | — | Free-text terms a lot must NOT match, applied on top of `query` (e.g. query='porsche', exclude='911' drops the 911s). |
| outcome | optional | sold · reserve_not_met | Keep only lots that sold, or only lots whose reserve was not met. Left out, you get both and each row says which it was. |
| category_id | optional | 1– | Restrict to one Bring a Trailer category by id (70 = Motorcycles, 11 = Race Cars, 383 = Boats …). Call the `taxonomies` action for the full list with names. An unknown id is rejected here rather than returning an empty page. |
| origin_id | optional | 1– | Restrict to one country of ORIGIN of the vehicle by id (7 = German, 9 = Japanese, 3 = American …) — this is where the car was built, not where it sits. Call `taxonomies` for the list. |
| era | optional | 2020 · 2010 · 2000 · 1990 · 1980 · 1970 · 1960 · 1950 · 1940 · 1930 · 1920 · 1910 · 1900 · pre-1900 | Restrict to one decade of manufacture, as Bring a Trailer groups them. |
| country | optional | US · CA · GB · DE · FR · IT · NL · PT · CH · JP · ZA | Restrict to lots physically located in one country. BaT's own region groups (EU, NA) are NOT accepted by the site and return nothing, so only these country codes are published. |
| max_bid | optional | 1– | Only lots whose final/current amount is below this figure, in the lot's own currency. Bring a Trailer offers this as a ceiling only; there is no floor. |
| min_year | optional | 1885–2100 | Earliest model year, inclusive. |
| max_year | optional | 1885–2100 | Latest model year, inclusive. |
| closed_within | optional | 7d · 30d · 1y · 2y · 5y | Only auctions that closed inside this window. |
| sort = recently_closed | optional | recently_closed · oldest_first · highest_bid · most_popular | Row order. |
| page = 1 | optional | 1–1000 | 1-based page. Bring a Trailer serves at most 10,000 archive lots per query, so page x max_results must stay at or below 10,000 — narrow the query to go deeper. The live catalogue is not paged at all. |
| max_results = 24 | optional | 10–60 | Rows per page, 10-60 (Bring a Trailer rejects anything outside that range). On `live_auctions` it only trims the page; the count in `total_available` is always the whole live catalogue. |
/bringatrailer/v1/live_auctions1 creditEvery Bring a Trailer auction open for bidding right now — the site publishes the whole live catalogue in one payload, so `total_available` is an exact count, not an estimate. A lot nobody has bid on yet has `current_bid` null and `has_bids` false: BaT prints 0 there, and 0 is not a price. `ends_at` is the site's own absolute closing stamp.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | optional | — | Free-text search over the make, model, year, origin, country and VIN Bring a Trailer indexes per lot (e.g. 'porsche 911', '1990 miata', 'air-cooled'). Leave it out to browse everything. |
| category_id | optional | 1– | Restrict to one Bring a Trailer category by id (70 = Motorcycles, 11 = Race Cars, 383 = Boats …). Call the `taxonomies` action for the full list with names. An unknown id is rejected here rather than returning an empty page. |
| origin_id | optional | 1– | Restrict to one country of ORIGIN of the vehicle by id (7 = German, 9 = Japanese, 3 = American …) — this is where the car was built, not where it sits. Call `taxonomies` for the list. |
| era | optional | 2020 · 2010 · 2000 · 1990 · 1980 · 1970 · 1960 · 1950 · 1940 · 1930 · 1920 · 1910 · 1900 · pre-1900 | Restrict to one decade of manufacture, as Bring a Trailer groups them. |
| country | optional | US · CA · GB · DE · FR · IT · NL · PT · CH · JP · ZA | Restrict to lots physically located in one country. BaT's own region groups (EU, NA) are NOT accepted by the site and return nothing, so only these country codes are published. |
| max_bid | optional | 1– | Only lots whose final/current amount is below this figure, in the lot's own currency. Bring a Trailer offers this as a ceiling only; there is no floor. |
| min_year | optional | 1885–2100 | Earliest model year, inclusive. |
| max_year | optional | 1885–2100 | Latest model year, inclusive. |
| no_reserve | optional | — | true = only no-reserve lots (they always sell). Left out, you get both kinds. |
| ending_within_hours | optional | 1–744 | Only lots closing inside this many hours, measured against the site's own closing stamp. |
| sort = ending_soonest | optional | ending_soonest · ending_latest · bid_high_first · bid_low_first · newest_listed | Row order. |
| page = 1 | optional | 1–1000 | 1-based page. Bring a Trailer serves at most 10,000 archive lots per query, so page x max_results must stay at or below 10,000 — narrow the query to go deeper. The live catalogue is not paged at all. |
| max_results = 24 | optional | 10–60 | Rows per page, 10-60 (Bring a Trailer rejects anything outside that range). On `live_auctions` it only trims the page; the count in `total_available` is always the whole live catalogue. |
/bringatrailer/v1/detail1 creditOne Bring a Trailer lot in full, live or closed: the outcome in the site's own words, the amount, the closing stamp, the seller's BaT handle, where the car is, the chassis/VIN, the whole BaT Essentials spec list, the lot number, and the view/watcher/comment counts the lot page publishes. Takes the numeric listing id, the listing slug, or any bringatrailer.com listing URL.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| listing | required | — | The numeric listing id (as `listing_id` in search results), the listing slug, or a full URL such as https://bringatrailer.com/listing/1991-dodge-stealth-65/ |
/bringatrailer/v1/market_stats1 creditWhat a car actually makes on Bring a Trailer. Runs an archive query and returns the site's own sold and unsold amount series collapsed into figures: how many sold, how many missed reserve, the sell-through rate, and the low / median / mean / high of the SOLD lots only. Unsold lots are counted but never mixed into the price figures — their number is a high bid, not a sale. Bring a Trailer caps the series it ships, which `series_capped` reports.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | optional | — | Free-text search over the make, model, year, origin, country and VIN Bring a Trailer indexes per lot (e.g. 'porsche 911', '1990 miata', 'air-cooled'). Leave it out to browse everything. |
| exclude | optional | — | Free-text terms a lot must NOT match, applied on top of `query` (e.g. query='porsche', exclude='911' drops the 911s). |
| category_id | optional | 1– | Restrict to one Bring a Trailer category by id (70 = Motorcycles, 11 = Race Cars, 383 = Boats …). Call the `taxonomies` action for the full list with names. An unknown id is rejected here rather than returning an empty page. |
| origin_id | optional | 1– | Restrict to one country of ORIGIN of the vehicle by id (7 = German, 9 = Japanese, 3 = American …) — this is where the car was built, not where it sits. Call `taxonomies` for the list. |
| era | optional | 2020 · 2010 · 2000 · 1990 · 1980 · 1970 · 1960 · 1950 · 1940 · 1930 · 1920 · 1910 · 1900 · pre-1900 | Restrict to one decade of manufacture, as Bring a Trailer groups them. |
| country | optional | US · CA · GB · DE · FR · IT · NL · PT · CH · JP · ZA | Restrict to lots physically located in one country. BaT's own region groups (EU, NA) are NOT accepted by the site and return nothing, so only these country codes are published. |
| min_year | optional | 1885–2100 | Earliest model year, inclusive. |
| max_year | optional | 1885–2100 | Latest model year, inclusive. |
| closed_within | optional | 7d · 30d · 1y · 2y · 5y | Only auctions that closed inside this window. |
/bringatrailer/v1/taxonomies1 creditThe ids the `category_id`, `origin_id`, `era` and `country` filters take, with the names Bring a Trailer shows for them. Read straight off the site's own filter toolbar, so it never drifts from what the filters accept.
Try in playground →curl -X POST https://api.reefapi.com/bringatrailer/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"porsche 911","max_results":12}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.