OCD / Developer Reference

Getting Started

Follow these steps to start retrieving auction data from the API.

Choose Your Integration

  • REST API — For developers building applications. Continue reading below.
  • MCP Server — For AI tools like ChatGPT, Claude, Cursor. Query completed sales, live auctions, bid history, and stats with natural language.

1. Sign Up

Create an account to access the API.

Sign Up / Sign In

2. Create an API Key

After signing up and subscribing to a plan, generate an API key in your profile settings.

Go to Profile

Keep your API key secure. Include it in all requests using the Authorization header:

Authorization: Bearer YOUR_API_KEY

3. Find Available Makes

Query the /makes endpoint to get a list of all vehicle makes in the database. These names are normalized in our dataset — you need them for auction search. Calls to /makes and /models do not count toward your plan query limit. If you use MCP, call list_makes instead (also unmetered when used alone in an MCP request).

Request:

bash
curl "https://api.oldcarsdata.com/makes"

Response:

json
{
  "data": [
    "Toyota",
    "Ford",
    "Chevrolet",
    "BMW",
    "Mercedes-Benz"
  ]
}

4. Find Models for a Make

Use the /models endpoint with the exact make string from step 3. On MCP, use list_models with the same make string.

Request:

bash
curl "https://api.oldcarsdata.com/models?make=Toyota"

Response:

json
{
  "data": [
    "Land Cruiser",
    "Supra",
    "Celica",
    "Corolla"
  ]
}

5. Query Auction Data

Use the /auctions endpoint with the make and model values returned by /makes and /models — not arbitrary spellings or listing titles. Mismatched strings often return no results. On MCP, call search_auctions with the same canonical names from list_makes / list_models.

Request:

bash
curl "https://api.oldcarsdata.com/auctions?make=Toyota&model=Land+Cruiser&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

json
{
  "data": [
    {
      "id": 12345,
      "source": "bringatrailer",
      "url": "https://bringatrailer.com/listing/...",
      "title": "1970 Toyota Land Cruiser FJ40",
      "auction_status": "sold",
      "price": 45000,
      "auction_end_date": "2024-01-15",
      "mileage": 85000,
      "year": 1970,
      "listing_make": "Toyota",
      "listing_model": "Land Cruiser",
      "engine": "4.2L I6",
      "drivetrain": "4WD",
      "transmission": "Manual",
      "body_style": "SUV",
      "exterior_color": "Beige",
      "interior_color": "Brown"
    }
  ],
  "meta": {
    "total": 150,
    "page": 1,
    "limit": 10,
    "total_pages": 15
  }
}

6. Query Live Auctions

Use the /auctions/live endpoint to list currently active auctions. Live auctions are currently in beta and limited to Bring a Trailer (bringatrailer) listings. It does not require make, vin, or seller_username, so you can build ending-soon views or poll the active BaT market.

Request:

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

Response:

json
{
  "data": [
    {
      "id": 98765,
      "source": "bringatrailer",
      "title": "1997 Porsche 911 Carrera Coupe",
      "auction_status": "active",
      "price": 72000,
      "auction_end_at": "2026-05-06T19:30:00Z",
      "updated_at": "2026-05-04T02:45:00Z",
      "year": 1997,
      "listing_make": "Porsche",
      "listing_model": "911 Carrera"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 10,
    "total_pages": 5
  }
}

Next Steps

You're ready to start building. Here's where to go from here:

Summarize this page with:

Completed auction data
Live auction feed
Daily refresh