Bring a Trailer API endpoint
Returns the auctions currently open on Bring a Trailer (about 1,300) with current bid, end time and attributes. Filter by title text, category, decade, country, ending window, maximum current bid and the premium and no-reserve flags; sort by ending soon, highest bid or lowest bid.
/bringatrailer/liveReturns the auctions currently open on Bring a Trailer (about 1,300), read from the single page that embeds all of them, so every page and filter combination costs one upstream request.
q is case-insensitive text that must appear in the title. category, era and country take comma-separated values from bringatrailer-filters (the oldest decade bucket has the id pre-1900) (country codes are ISO 3166-1 alpha-2). no_reserve=true and premium=true keep only auctions with that flag.
ending_within keeps auctions ending within that many hours: 1, 4, 24, 120 or 168 (the live toolbar's own options, listed as live_ending_within_hours by bringatrailer-filters; any other value is rejected). max_bid keeps auctions whose current bid is at most that many USD.
sort is ending_soon (default, earliest close first), highest_bid or lowest_bid. page is 1-based and per_page is 10 to 50 (default 36).
Notable response behavior:
live_total is the number of open auctions before filtering and total the number after.status is always live; price is the current bid and ends_at the scheduled close in UTC. A few auctions with no bids yet have price: 0.year, era, categories (category ids), country and country_code.total: 0 and auctions: [].| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| id | 40 | |
| title | 40 | “Willhoit 2.2L-Powered 1958 Porsche 356A Speedster 5-Speed” and 39 other values |
| url | 40 | bringatrailer.com |
| status | 40 | live in all 40 |
| price | 40 | 1,111 to 485,000, median 14,500 |
| price_text | 40 | “USD $450,000” and 34 other values |
| currency | 40 | USD in all 40 |
| ends_at | 40 | 2026-11-05 |
| year | 37 | 1,926 to 2,024, median 1,998 |
| era | 37 | 1,920 to 2,020, median 1,990 |
| categories | 40 | median 2 entries |
| country | 40 | United States (39), Canada (1) |
| country_code | 40 | |
| no_reserve | 40 | true in 15 of 40 |
| premium | 40 | true in 5 of 40 |
| repeat | 40 | true in 4 of 40 |
| excerpt | 40 | median 346 characters |
| thumbnail_url | 40 | bringatrailer.com |
| model_ids | 40 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Case-insensitive text that must appear in the title | porsche | |
| category | string | No | Comma-separated category ids from bringatrailer_filters | ||
| era | string | No | Comma-separated decade ids from bringatrailer_filters | ||
| country | string | No | Comma-separated ISO 3166-1 alpha-2 country codes | US | |
| ending_within | integer | No | Only auctions ending within this many hours Allowed values: 1, 4, 24, 120, 168. | ||
| max_bid | integer | No | Only auctions whose current bid is at most this many USD Minimum: 0. | ||
| no_reserve | boolean | No | Only no-reserve auctions | ||
| premium | boolean | No | Only premium auctions | ||
| sort | string | No | Sort order Allowed values: ending_soon, highest_bid, lowest_bid. | ||
| page | integer | No | 1-based page Minimum: 1. | ||
| per_page | integer | No | Results per page Minimum: 10. Maximum: 50. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bringatrailer/live?q=coffee&country=us&ending_within=1&no_reserve=true&premium=true&sort=ending_soon&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"total": 1326,
"live_total": 1326,
"page": 1,
"per_page": 10,
"auctions": [
{
"id": 125172952,
"title": "1970 Ferrari 365 GT 2+2",
"url": "https://bringatrailer.com/listing/1970-ferrari-365-gt-22-9/",
"status": "live",
"price": 175000,
"price_text": "USD $175,000",
"currency": "USD",
"ends_at": "2026-11-02T18:00:00Z",
"year": 1970,
"era": "1970",
"categories": [
"8"
],
"country": "United States",
"country_code": "US",
"no_reserve": false,
"premium": true,
"repeat": false,
"excerpt": "This 1970 Ferrari 365 GT 2+2 is one of approximately 800 examples built during just over three years of production. Chassis 13095 was ordered new in Grigio Ortello over Pelle Beige Connolly leather by its original owner—collector Paul Pappalardo—and delivered through Luigi Chinetti Motors of New York.",
"thumbnail_url": "https://bringatrailer.com/wp-content/uploads/2026/10/IMG-3531-scaled-b2eb5d045955fe6fad3712e24d7dfe1b.jpg?w=470&h=318&crop=1",
"model_ids": [
48432186,
1832980,
89009061
]
}
]
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/bringatrailer.liveResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bringatrailer.LiveResponse | No | ||||
| data.auctions | array | No | ||||
| data.auctions[].categories | array | No | ||||
| data.auctions[].comments | integer | No | ||||
| data.auctions[].country | string | No | ||||
| data.auctions[].country_code | string | No | ||||
| data.auctions[].currency | string | No | ||||
| data.auctions[].ends_at | string | No | ||||
| data.auctions[].era | string | No | ||||
| data.auctions[].excerpt | string | No | ||||
| data.auctions[].id | integer | No | ||||
| data.auctions[].model_ids | array | No | ||||
| data.auctions[].no_reserve | boolean | No | ||||
| data.auctions[].premium | boolean | No | ||||
| data.auctions[].price | integer | No | ||||
| data.auctions[].price_text | string | No | ||||
| data.auctions[].repeat | boolean | No | ||||
| data.auctions[].result_text | string | No | ||||
| data.auctions[].status | string | No | ||||
| data.auctions[].thumbnail_url | string | No | ||||
| data.auctions[].title | string | No | ||||
| data.auctions[].url | string | No | ||||
| data.auctions[].views | integer | No | ||||
| data.auctions[].watchers | integer | No | ||||
| data.auctions[].year | integer | No | ||||
| data.live_total | integer | No | ||||
| data.page | integer | No | ||||
| data.per_page | integer | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bringatrailer/live?q=coffee&country=us&ending_within=1&no_reserve=true&premium=true&sort=ending_soon&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"