OCD / Developer Reference

Get Live Auctions

List currently active Bring a Trailer collector car auctions. Use this endpoint for live market discovery, ending-soon pages, watchlists, and polling workflows.

GET https://api.oldcarsdata.com/auctions/live

Beta: Live auctions are currently in beta and limited to Bring a Trailer (bringatrailer) listings.

Live auction behavior

This endpoint only returns listings where auction_status is active. No anchor parameter is required, so you can request the active BaT market or narrow by make, model, VIN, seller, source, keyword, year, price, ending window, or update time.

Responses include live-only fields such as auction_end_at, image_url, and updated_at. Responses are privately cached for 15 seconds.

Authentication

This endpoint requires authentication. Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Starter Plan Limitation: Starter plan users are limited to the latest 20 live auctions regardless of filters or pagination. Upgrade to a paid plan for full live inventory access.

Request Parameters

FieldTypeRequiredDescription
AuthorizationheaderYesBearer token with your API key: Bearer YOUR_API_KEY
makestringNoExact normalized make from Get Makes.
modelstringNoExact normalized model from Get Models.
vinstringNoExact VIN match.
seller_usernamestringNoExact seller username match.
year_minintegerNoMinimum year filter (inclusive).
year_maxintegerNoMaximum year filter (inclusive).
price_minintegerNoMinimum current bid or listed price (inclusive).
price_maxintegerNoMaximum current bid or listed price (inclusive).
sourcestringNoSource platform filter. Live auctions are currently limited to bringatrailer.
keywordstringNoSearch keyword to match in title and description (case-insensitive).
ending_afterdate-timeNoOnly include auctions ending at or after this ISO 8601 timestamp.
ending_beforedate-timeNoOnly include auctions ending at or before this ISO 8601 timestamp.
updated_sincedate-timeNoOnly include auctions updated at or after this ISO 8601 timestamp. Useful for polling.
sortenumNoSort field. Options: "ending" (default), "created", "updated", "price", "year", "bids".
directionenumNoSort direction. Options: "asc" (default), "desc".
pageintegerNoPage number for pagination. Minimum: 1, default: 1.
limitintegerNoNumber of results per page. Range: 1-100, default: 50.

Code Examples

Ending soon (cURL)

bash
curl "https://api.oldcarsdata.com/auctions/live?sort=ending&direction=asc&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Live Porsche auctions updated recently (cURL)

bash
curl "https://api.oldcarsdata.com/auctions/live?make=Porsche&updated_since=2026-05-04T00:00:00Z" \
  -H "Authorization: Bearer YOUR_API_KEY"

JavaScript

javascript
const params = new URLSearchParams({
  make: 'Porsche',
  sort: 'ending',
  direction: 'asc',
  limit: '10',
});

const response = await fetch(
  `https://api.oldcarsdata.com/auctions/live?${params}`,
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  }
);
const data = await response.json();

Python

python
import requests

response = requests.get(
    'https://api.oldcarsdata.com/auctions/live',
    params={'make': 'Porsche', 'sort': 'ending', 'direction': 'asc', 'limit': 10},
    headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()

Success Response (200)

Live auctions retrieved successfully.

json
{
  "data": [
    {
      "id": 98765,
      "source": "bringatrailer",
      "url": "https://bringatrailer.com/listing/...",
      "title": "1997 Porsche 911 Carrera Coupe",
      "auction_status": "active",
      "price": 72000,
      "currency": "USD",
      "auction_end_date": "2026-05-06",
      "auction_end_at": "2026-05-06T19:30:00Z",
      "mileage": 42000,
      "vin": "WP0AA2997VS320123",
      "title_status": "clean",
      "city": "Portland",
      "state": "OR",
      "seller_username": "aircooled-market",
      "year": 1997,
      "has_reserve": true,
      "listing_make": "Porsche",
      "listing_model": "911 Carrera",
      "ocd_make_name": "Porsche",
      "ocd_model_name": "911",
      "image_url": "https://bringatrailer.com/wp-content/uploads/2026/05/porsche-911.jpg",
      "featured_image_url": "https://bringatrailer.com/wp-content/uploads/2026/05/porsche-911-featured.jpg",
      "created_at": "2026-05-01T15:12:00Z",
      "updated_at": "2026-05-04T02:45:00Z",
      "stats": {
        "views": 14320,
        "watches": 256,
        "likes": 42,
        "bids": 18
      },
      "modifications": [],
      "known_flaws": [],
      "recent_service_history": [],
      "listing_details": []
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 10,
    "total_pages": 5
  }
}

Response Fields

Live auction responses include every field from Get Auctions, plus:

FieldTypeDescription
data[].auction_end_atstring | nullAuction ending timestamp in ISO 8601 format when available.
data[].image_urlstring | nullPrimary live listing image URL when available.
data[].updated_atstring | nullLast update timestamp in ISO 8601 format. Use with updated_since for polling.

Error Responses

FieldTypeDescription
errorstringError type identifier (e.g., "Validation Error", "HTTP Error").
messagestringHuman-readable error message.
detailsobjectValidation error details (only on 400 responses). Keys are field names, values are arrays of error messages.

400 — Validation Error:

json
{
  "error": "Validation Error",
  "message": "ending_after: Invalid ISO datetime",
  "details": {
    "ending_after": ["Invalid ISO datetime"]
  }
}

401 — Unauthorized:

json
{
  "error": "Unauthorized",
  "message": "API key is required. Provide it via Authorization: Bearer <key> header"
}

Summarize this page with:

Completed auction data
Live auction feed
Daily refresh