auctions

Canonical auction detail

Source-aware detail for one listing. Private bidder fields and account-scoped commercial figures (our fees, our delivery quotes, our platform identity) are stripped at the response boundary — see the "Never exposed" section of docs/public-api-reference.md.

vehicle_details is the cross-source normalized condition and paperwork block. Read it instead of branching on site_name. It is omitted entirely for a listing whose details have not been fetched yet.

vault_gallery embeds the exact body of /api/auction-images/{site_slug}/{auction_id}, so a detail page is one request rather than two. Both read one cache entry and cannot disagree.

Live prices. For a running openlane or ecarstrade auction this endpoint refreshes the bid from the source while serving the request and attaches a live_price block inside auction. Nothing has to be passed to enable it. See the live_price schema for how to read the three possible states.

get/api/auction/{site_slug}/{auction_id}

Request

  • Base URL: https://api.thecarapi.com
  • URL: https://api.thecarapi.com/api/auction/{site_slug}/{auction_id}
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer
    • API key in query parameter api_key

Path parameters

site_slug'auto1' | 'openlane' | 'schadeautos' | 'copart' | 'ecarstrade' | 'encar' | 'kbchachacha' | 'japan' required

Implemented inventory sources. /api/sites returns deployed sources and counts visible to your key. Japan has stored detail only. European classifieds use separate endpoints.

Example:openlane

A source slug from /api/sites.

auction_idinteger required
Example:38112900

The integer database id of the auction.

Headers

If-None-Matchstring
Example:W/"6f1c0a9d8e"

Echo back the ETag from your last response for this URL. An unchanged page answers 304 Not Modified with no body. ETags are weak, so the tag stays valid whether or not the body came back compressed.

Response

The auction.

successboolean required
contract_versionstring

Matches info.version of this document.

request_idstring

Also returned as the X-Request-ID header.

server_timestring date-time

UTC ISO-8601 timestamp of the response.

data_updated_atstring date-time

Route-supplied data timestamp, falling back to server_time. Not a guaranteed source refresh time; inspect listing observation timestamps and live_price.fetched_at where available.

Example response

{
  "success": true,
  "contract_version": "2026-09-03",
  "auction": {
    "auction_id": 38112900,
    "site_name": "openlane",
    "clean_make": "BMW",
    "clean_model": "320d",
    "model_display": "320d M Sport",
    "registration_year": 2020,
    "production_year": 2019,
    "production_month": 11,
    "mileage": 45000,
    "fuel_group": "Diesel",
    "gearbox_group": "Automatic",
    "steering": "left",
    "public_price_eur": 21500,
    "auction_end_at": "2026-08-20T10:00:00Z",
    "country_code": "DE",
    "auction_id_str": "38112900",
    "vault_gallery": {
      "images": [
        {
          "source_section": "exterior"
        }
      ]
    },
    "live_price": {
      "price": 25900,
      "currency": "EUR",
      "source": "openlane",
      "fetched_at": 1786659750
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.