Get Live Auctions#

List currently active Bring a Trailer, Cars & Bids, Hemmings, Hagerty, PCAR Market, All Collector Cars, Gooding & Co, RM Sotheby's, Sotheby's Motorsport, Car & Classic, The Market, MB Market, Mecum Auctions, and PistonHeads collector car auctions. Use this endpoint for live market discovery, ending-soon pages, watchlists, source-specific feeds, and polling workflows.

GEThttps://api.oldcarsdata.com/auctions/live
GET/auctions/live?sort=ending&direction=asc&limit=10
Edit request3 parameters
curl "https://api.oldcarsdata.com/auctions/live?sort=ending&direction=asc&limit=10" \
  -H "Authorization: Bearer $OCD_API_KEY"
Sends directly from your browser
Response example200
{
  "data": [
    {
      "id": 98765,
      "title": "1997 Porsche 911 Carrera Coupe",
      "auction_status": "active",
      "auction_end_at": "2026-05-06 19:30:00"
    }
  ]
}
Your key is never saved to local storage or sent through the docs server.
Beta14 live sourcesView coverage

Coverage is actively evolving. Use the source slug when filtering API or MCP requests.

  • Bring a Trailer bringatrailer
  • Cars & Bids carsandbids
  • Hemmings hemmings
  • Hagerty hagerty
  • PCAR Market pcarmarket
  • All Collector Cars acc
  • Gooding & Co gooding
  • RM Sotheby's rmsothebys
  • Sotheby's Motorsport sothebysmotorsport
  • Car & Classic carandclassic
  • The Market themarket
  • MB Market mbmarket
  • Mecum Auctions mecum
  • PistonHeads pistonheads
Live auction behavior

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

Responses include ending fields such as auction_end_at and auction_end_precision, plus the live-only updated_at field. Responses are privately cached for 15 seconds.

Timestamp output

Response fields such as auction_end_at, created_at, and updated_at preserve the stored wall-clock value and use YYYY-MM-DD HH:mm:ss[.ffffff]. They do not include a UTC offset, so do not append Z or assume UTC. For auction_end_at, check auction_end_precision: exact means the time is known, while date means only the date is known and 00:00:00 is a normalization placeholder. Timestamp filter inputs still require ISO 8601 values with an offset.

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
Authorization#headerYesBearer token with your API key: Bearer YOUR_API_KEY
make#stringNoExact normalized make from Get Makes.
model#stringNoExact normalized model from Get Models.
vin#stringNoExact VIN match.
seller_username#stringNoExact seller username match.
year_min#integerNoMinimum year filter (inclusive).
year_max#integerNoMaximum year filter (inclusive).
price_min#integerNoMinimum current bid or listed price (inclusive).
price_max#integerNoMaximum current bid or listed price (inclusive).
source#stringNoSource platform filter. Supported live values include bringatrailer, carsandbids, hemmings, hagerty, pcarmarket, acc, gooding, rmsothebys, sothebysmotorsport, carandclassic, themarket, mbmarket, mecum, and pistonheads.
keyword#stringNoSearch keyword to match in title and description (case-insensitive).
ending_after#date-timeNoOnly include auctions ending at or after this ISO 8601 timestamp.
ending_before#date-timeNoOnly include auctions ending at or before this ISO 8601 timestamp.
updated_since#date-timeNoOnly include auctions updated at or after this ISO 8601 timestamp. Useful for polling.
sort#enumNoSort field. Options: "ending" (default), "created", "updated", "price", "year", "bids".
direction#enumNoSort direction. Options: "asc" (default), "desc".
page#integerNoPage number for pagination. Minimum: 1, default: 1.
limit#integerNoNumber 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 requestsresponse = 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_at": "2026-05-06 19:30:00",      "auction_end_precision": "exact",      "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-featured.jpg",      "featured_image_url": "https://bringatrailer.com/wp-content/uploads/2026/05/porsche-911-featured.jpg",      "created_at": "2026-05-01 15:12:00",      "updated_at": "2026-05-04 02:45:00",      "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, including auction_end_at and auction_end_precision, plus:

FieldTypeDescription
data[].image_url#string | nullDeprecated alias for featured_image_url. Use featured_image_url for new integrations.
data[].updated_at#string | nullLast update wall-clock timestamp in YYYY-MM-DD HH:mm:ss[.ffffff] format. No UTC offset is included. Use with updated_since for polling.

Error Responses#

400Invalid requestCheck required values and accepted formats.
401UnauthorizedAdd a valid Bearer API key.
403Access deniedVerify your email and confirm plan access.
429Rate limit reachedWait for the reset window before retrying.
FieldTypeDescription
error#stringError type identifier (e.g., "Validation Error", "HTTP Error").
message#stringHuman-readable error message.
details#objectValidation 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: