apicars.auction API reference
A JSON API that serves publicly listed auction data from Copart®, IAAI® and Emirates Auction in one consistent schema. Base URL https://apiauctions.io. All v1 and v2 endpoints authenticate with an Authorization: Bearer token and return application/json.
Quickstart
Fetch a vehicle and its full cross-auction history in one call.
curl -X POST "https://apiauctions.io/api/v1/get-car-vin?vin_number=JN1EV7AR1KM551307" \ -H "Authorization: Bearer YOUR_TOKEN"
import requests resp = requests.post( "https://apiauctions.io/api/v1/get-car-vin", headers={"Authorization": "Bearer YOUR_TOKEN"}, params={ "vin_number": "JN1EV7AR1KM551307", }, ) vehicle = resp.json()
Authentication
The primary way to authenticate v1 and v2 requests is the Authorization: Bearer <token> header. As a legacy fallback for older integrations, the same token is also accepted as an ?api_token=<token> query parameter — both forms are handled by the same middleware. Keep the token server-side; never ship it in a browser bundle.
curl -X POST "https://apiauctions.io/api/v2/get-auctions" \ -H "Authorization: Bearer YOUR_TOKEN"
Endpoints overview
Open interactive API explorer (Swagger UI) →| Method | Path | Description |
|---|---|---|
| POST | /api/v1/get-car-vin | Full vehicle + cross-auction history |
| POST | /api/v2/get-active-lots | Search active lots |
| POST | /api/v2/get-original-photos | Original photo set (passthrough URLs) |
| POST | /api/v2/vin-decoding | Decode a VIN |
| POST | /api/v2/get-auctions | List indexed auction sources |
/api/v1/get-car-vin
Get vehicle by VIN
Returns vehicle attributes plus every indexed lot across Copart, IAAI and Emirates. All parameters travel on the query string.
AuthorizationrequiredheaderBearer YOUR_TOKEN. Legacy ?api_token= query also accepted.
vin_numberrequiredstring17-character Vehicle Identification Number.
only_with_colorint (0 / 1)If 1, return only history entries where color is non-null. Default 0.
{
"vin": "JN1EV7AR1KM551307",
"make": "INFINITI",
"model": "Q50 3.0T SPORT",
"year": 2019,
"history": [
{
"auction_name": "COPART",
"lot_id": "79217025",
"sale_status": "Active"
},
{
"auction_name": "IAAI",
"final_bid": 8650
}
]
}
/api/v2/get-active-lotsSearch lots
Filter active lots by make, model, year range, auction source, bid and buy-now price. Page-based pagination via page + per_page. Pass auction_names[] once per auction to query several sources at once.
curl -X POST "https://apiauctions.io/api/v2/get-active-lots?make=BMW&year_from=2018&auction_names[]=COPART&auction_names[]=IAAI&page=1&per_page=50" \ -H "Authorization: Bearer YOUR_TOKEN"
/api/v2/vin-decodingDecode VIN
Decode a single VIN into structured make/model/engine/body/year. Does not consult the auction index.
curl -X POST "https://apiauctions.io/api/v2/vin-decoding?vin=WDDGF8AB1EA960217" \ -H "Authorization: Bearer YOUR_TOKEN"
Errors
Errors follow RFC 7807 (application/problem+json).
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthenticated | Missing or invalid token |
| 402 | payment_required | Pack exhausted; top up or buy a pack |
| 404 | not_found | No record for that VIN or lot |
| 422 | validation_error | Bad parameter shape |
| 429 | rate_limited | Slow down; honor Retry-After |
Rate limits
Limits are per plan and surfaced in X-RateLimit-* headers. Free: 10 req/hour. Active Lots Pro: 3 RPS. PAYG: 5 RPS. Pack 100k: 2 RPS. Pack 1M: 3 RPS.