Bring a Trailer API endpoint
Returns the complete value space of every bringatrailer_results filter: vehicle categories, decades, origins, regions with their countries, sort orders, results, auction types, recency windows, maximum-bid presets and the per_page range.
/bringatrailer/filtersReturns the complete value space of every bringatrailer-results filter, so no id has to be guessed.
categories, eras and origins are read live from the results page toolbar (26 categories such as Convertibles, Motorcycles and Trucks; 14 decades; 14 origins). Pass their id values to category, era and origin.regions lists each region with its countries; pass a country id (ISO alpha-2) to country. Region ids themselves are not valid filter values.sorts, results, types and recency are closed sets pinned from live probing of the upstream: any other value is rejected, so they are returned as the exact accepted id values (sort, result, type and recency parameters).max_bid_presets are the site's own maximum-bid presets; max_bid accepts any non-negative integer.live_ending_within_hours are the accepted ending_within values of bringatrailer-live.per_page gives the accepted range and default.| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| id | 2 | |
| title | 2 | “Sold Only” and 1 other value |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bringatrailer/filters" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"categories": [
{
"id": "543",
"title": "Aircraft"
},
{
"id": "431",
"title": "All-Terrain Vehicles"
}
],
"eras": [
{
"id": "2020",
"title": "2020s"
},
{
"id": "2010",
"title": "2010s"
}
],
"origins": [
{
"id": "3",
"title": "American"
},
{
"id": "499",
"title": "Brazilian"
}
],
"regions": [
{
"id": "NA",
"title": "North America",
"countries": [
{
"id": "CA",
"title": "Canada"
},
{
"id": "US",
"title": "United States"
}
]
},
{
"id": "EU",
"title": "Europe",
"countries": [
{
"id": "AT",
"title": "Austria"
},
{
"id": "BE",
"title": "Belgium"
}
]
}
],
"sorts": [
{
"id": "recent",
"title": "Recently Closed"
},
{
"id": "oldest",
"title": "Oldest"
},
{
"id": "popular",
"title": "Popular"
},
{
"id": "highest_bid",
"title": "Highest Bid"
}
],
"results": [
{
"id": "sold",
"title": "Sold Only"
},
{
"id": "unsold",
"title": "Reserve Not Met"
}
],
"types": [
{
"id": "premium",
"title": "Premium"
},
{
"id": "noreserve",
"title": "No Reserve"
}
],
"recency": [
{
"id": "7D",
"title": "7 Days"
},
{
"id": "30D",
"title": "Last Month"
},
{
"id": "1Y",
"title": "Last Year"
},
{
"id": "2Y",
"title": "Last 2 Years"
},
{
"id": "5Y",
"title": "Last 5 Years"
}
],
"live_ending_within_hours": [
1,
4,
24,
120,
168
],
"max_bid_presets": [
10000,
25000,
50000,
100000,
250000,
500000,
750000,
1000000
],
"per_page": {
"min": 10,
"max": 50,
"default": 36
}
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/bringatrailer.filtersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bringatrailer.FiltersResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].id | string | No | ||||
| data.categories[].title | string | No | ||||
| data.eras | array | No | ||||
| data.eras[].id | string | No | ||||
| data.eras[].title | string | No | ||||
| data.live_ending_within_hours | array | No | ||||
| data.max_bid_presets | array | No | ||||
| data.origins | array | No | ||||
| data.origins[].id | string | No | ||||
| data.origins[].title | string | No | ||||
| data.per_page | object | No | ||||
| data.per_page.default | integer | No | ||||
| data.per_page.max | integer | No | ||||
| data.per_page.min | integer | No | ||||
| data.recency | array | No | ||||
| data.recency[].id | string | No | ||||
| data.recency[].title | string | No | ||||
| data.regions | array | No | ||||
| data.regions[].countries | array | No | ||||
| data.regions[].countries[].id | string | No | ||||
| data.regions[].countries[].title | string | No | ||||
| data.regions[].id | string | No | ||||
| data.regions[].title | string | No | ||||
| data.results | array | No | ||||
| data.results[].id | string | No | ||||
| data.results[].title | string | No | ||||
| data.sorts | array | No | ||||
| data.sorts[].id | string | No | ||||
| data.sorts[].title | string | No | ||||
| data.types | array | No | ||||
| data.types[].id | string | No | ||||
| data.types[].title | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 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/filters" \
-H "x-api-key: $CRAWLORA_API_KEY"