Source API · Copart and IAAI · USA
Copart and IAAI API — US auction lots as JSON
Copart and IAAI are the two largest US auctions of damaged, insurance and used cars. apiauto.space returns lots of both auctions with sales ahead in one record: VIN, damage, title type, bid and buy-now price, sale date, yard and photos. Lots that are not in our copy of the catalog are found by live search: it asks the auction data provider at request time — on the Pro and Max plans.
- Source
- copart.com · iaai.com · market=us
- Region
- USA
- Data
- Lots, bids, damage, photos
- Status
- Running · refreshed hourly
What a lot record holds
The same keys in every market; on the right, the values of two real lots from the catalog: Copart above, IAAI below. What the auction does not give comes as null, never a guess.
Lot
titleYear, make and model in one line"2024 Hyundai Elantra""2024 Volkswagen Jetta"vinThe lot's VIN"KMHLM4DG9RU821664""3VW5M7BU9RM071756"yearModel year20242024mileage_kmMileage in kilometres8482381022raw.odometer_miMileage in miles, as the auction gives it5270750345raw.lot_numberLot number"74451256""45857360"
Sale and price
raw.sale_dateSale date and time, UTC"2026-11-04T17:00:00+00:00""2026-11-03T15:30:00+00:00"raw.bidCurrent bid, when the auction gave onenull25raw.buy_nowBuy-now price140004750priceBuy-now, or the final bid once sold; otherwise null. A bid is not a price14000.00 USD4750.00 USD
Condition
raw.damage_mainMain damage"front""front"raw.damage_secondSecondary damagenull"front"raw.title_docTitle type"clean""salvage"raw.keys_availableWhether the keys are theretruetrueraw.source_values.damage_mainThe auction's own wording"Front end""Right front"
Car
fuelFuel, a canonical value"gasoline""gasoline"transmissionGearbox"automatic""automatic"engine_ccEngine size, cc20001500raw.source_values.engineThe auction's engine line"2.0L 4""1.5L I-4 DI, DOHC, VVT, turbo, r…colorColour"Gray""Gray"raw.driveDrive"fwd""fwd"
Yard and photos
location.regionState"IL""TX"location.cityThe yard's city"Chicago Heights""Fort Worth North"raw.location_branchThe auction yard"IL - CHICAGO SOUTH""Fort Worth North"photo_countPhotos of the lot1116photos.0A signed link, valid for about a day"api.apiauto.space/img/copart:744…"api.apiauto.space/img/iaai:45857…
Not from the auction
listing_urlNo link to the lotnullnullraw.final_bidNo final price: only sales aheadnullnullraw.estimate_repair_priceA repair estimate only when the auction gave onenullnull
copart:74451256 2024 Hyundai Elantra · 84,823 km
iaai:45857360 2024 Volkswagen Jetta · 81,022 km
Request and response
The four requests people usually start with. The key goes in the X-API-Key header; the answer is JSON.
A page of cars by filters and the next page's cursor
curl -s "https://api.apiauto.space/v1/cars?market=us&limit=2" \
-H "X-API-Key: $APIAUTO_KEY"const response = await fetch(
"https://api.apiauto.space/v1/cars?market=us&limit=2",
{ headers: { "X-API-Key": process.env.APIAUTO_KEY } },
);
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
const data = await response.json();import os
import httpx
data = httpx.get(
"https://api.apiauto.space/v1/cars?market=us&limit=2",
headers={"X-API-Key": os.environ["APIAUTO_KEY"]},
timeout=30,
).raise_for_status().json()<?php
$ch = curl_init("https://api.apiauto.space/v1/cars?market=us&limit=2");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("APIAUTO_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);{
"items": [
{
"id": "copart:74451256",
"market": "us",
"source": "copart",
"source_id": "74451256",
"title": "2024 Hyundai Elantra",
"brand": "Hyundai",
"model": "Elantra",
"generation": null,
"trim": null,
"year": 2024,
"mileage_km": 84823,
"fuel": "gasoline",
"transmission": "automatic",
"engine_cc": 2000,
"body_type": "sedan",
"color": "Gray",
"vin": "KMHLM4DG9RU821664",
"price": {
"amount": "14000.00",
"currency": "USD"
},
"price_usd": "14000.00",
"location": {
"country": "US",
"region": "IL",
"city": "Chicago Heights"
},
"photos": [
"https://api.apiauto.space/img/copart:74451256/1.jpg?exp=…&sig=…",
"https://api.apiauto.space/img/copart:74451256/2.jpg?exp=…&sig=…"
],
"photo_count": 11,
"listing_url": null,
"is_active": true,
"first_seen_at": "2026-11-03T00:15:49.819982Z",
"last_seen_at": "2026-11-03T00:15:49.819982Z",
"disappeared_at": null,
"updated_at": "2026-11-03T00:15:49.819982Z",
"raw": {
"fx": {
"date": "2026-11-02",
"source": "ECB",
"currency": "USD",
"usd_per_unit": "1"
},
"bid": null,
"drive": "fwd",
"status": 3,
"airbags": null,
"buy_now": 14000,
"latitude": 41.5070957,
"condition": null,
"cylinders": 4,
"final_bid": null,
"longitude": -87.6159798,
"sale_date": "2026-11-04T17:00:00+00:00",
"title_doc": "clean",
"video_url": null,
"grade_iaai": null,
"lot_number": "74451256",
"damage_main": "front",
"odometer_mi": 52707,
"damage_second": null,
"source_values": {
"fuel": "4",
"trim": null,
"brand": "HYUNDAI",
"drive": "2",
"model": "ELANTRA",
"engine": "2.0L 4",
"body_type": "Sedan",
"title_doc": "CERTIFICATE OF TITLE",
"damage_main": "Front end",
"transmission": "1",
"damage_second": null
},
"keys_available": true,
"location_branch": "IL - CHICAGO SOUTH",
"odometer_status": null,
"pre_accident_price": null,
"clean_wholesale_price": null,
"estimate_repair_price": null
},
"source_mode": "replica"
},
{
"id": "iaai:45857360",
"market": "us",
"source": "iaai",
"source_id": "45857360",
"title": "2024 Volkswagen Jetta",
"brand": "Volkswagen",
"model": "Jetta",
"generation": null,
"trim": null,
"year": 2024,
"mileage_km": 81022,
"fuel": "gasoline",
"transmission": "automatic",
"engine_cc": 1500,
"body_type": "sedan",
"color": "Gray",
"vin": "3VW5M7BU9RM071756",
"price": {
"amount": "4750.00",
"currency": "USD"
},
"price_usd": "4750.00",
"location": {
"country": "US",
"region": "TX",
"city": "Fort Worth North"
},
"photos": [
"https://api.apiauto.space/img/iaai:45857360/1.jpg?exp=…&sig=…",
"https://api.apiauto.space/img/iaai:45857360/2.jpg?exp=…&sig=…"
],
"photo_count": 16,
"listing_url": null,
"is_active": true,
"first_seen_at": "2026-11-03T00:14:40.726647Z",
"last_seen_at": "2026-11-03T00:14:40.726647Z",
"disappeared_at": null,
"updated_at": "2026-11-03T00:14:40.726647Z",
"raw": {
"fx": {
"date": "2026-11-02",
"source": "ECB",
"currency": "USD",
"usd_per_unit": "1"
},
"bid": 25,
"drive": "fwd",
"status": 3,
"airbags": 2,
"buy_now": 4750,
"latitude": 33.05421,
"condition": 0,
"cylinders": 4,
"final_bid": null,
"longitude": -97.26846,
"sale_date": "2026-11-03T15:30:00+00:00",
"title_doc": "salvage",
"video_url": null,
"grade_iaai": null,
"lot_number": "45857360",
"damage_main": "front",
"odometer_mi": 50345,
"damage_second": "front",
"source_values": {
"fuel": "4",
"trim": null,
"brand": "VOLKSWAGEN",
"drive": "2",
"model": "JETTA",
"engine": "1.5L I-4 DI, DOHC, VVT, turbo, regular , 158HP",
"body_type": "Sedan",
"title_doc": "SALVAGE",
"damage_main": "Right front",
"transmission": "1",
"damage_second": "Front End"
},
"keys_available": true,
"location_branch": "Fort Worth North",
"odometer_status": null,
"pre_accident_price": null,
"clean_wholesale_price": null,
"estimate_repair_price": null
},
"source_mode": "replica"
}
],
"next_cursor": "…",
"count": null
}The cars in the responses are real, from the catalog when the site was built; photos are cut to two and event ids are made up.
Build a request
Pick filters and the address and code build themselves. The market is fixed: market=us returns Copart and IAAI lots together; the auction is in the source field.
curl -s "https://api.apiauto.space/v1/cars?market=us&brand=Toyota&limit=20" \
-H "X-API-Key: $APIAUTO_KEY"const response = await fetch(
"https://api.apiauto.space/v1/cars?market=us&brand=Toyota&limit=20",
{ headers: { "X-API-Key": process.env.APIAUTO_KEY } },
);
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
const data = await response.json();import os
import httpx
data = httpx.get(
"https://api.apiauto.space/v1/cars?market=us&brand=Toyota&limit=20",
headers={"X-API-Key": os.environ["APIAUTO_KEY"]},
timeout=30,
).raise_for_status().json()<?php
$ch = curl_init("https://api.apiauto.space/v1/cars?market=us&brand=Toyota&limit=20");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("APIAUTO_KEY")],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);Use cases
- 01
Finding a US car for a client
A manager searches lots by make, year and budget and sends the client the VIN, damage, sale date and photos.
Method
GET /v1/cars?market=us&brand=… - 02
A landed-cost calculator
Bid, buy-now price, state and yard of the lot — all you need to count shipping and customs on your side.
Method
GET /v1/cars/{id} - 03
New lots in a Telegram channel
The added feed brings fresh lots with sales ahead — the bot posts them with photos.
Method
GET /v1/changes?market=us&type=added - 04
Search beyond the copy
When a lot is not in the copy, live search looks for it right at the auction data provider — on the Pro and Max plans.
Method
GET /v1/us/live?make=…
About the source
The auctions' fields, the makes in the catalog, live search, the feed and the limits of the US data.
Auction fields in raw
| Field | Meaning |
|---|---|
sale_date | Auction date and time, UTC. |
bid, buy_now | The current bid and the buy-now price. |
damage_main, damage_second | Primary and secondary damage: front, rear, normal_wear… |
title_doc | Title type: clean and others; the original line is in source_values. |
odometer_mi, odometer_status | Mileage in miles as the auction gives it, and its status. |
keys_available | Whether keys are present. |
lot_number, location_branch | Lot number and auction yard. |
drive, cylinders | Drive and cylinder count. |
pre_accident_price, clean_wholesale_price, estimate_repair_price | Value and repair estimates, when the auction gives them. |
video_url | The lot's video, if any. |
Auction makes in the catalog
The most frequent makes:
| Make | Cars in the catalog |
|---|---|
| Toyota | 8,289 |
| Ford | 7,141 |
| Honda | 6,559 |
| Chevrolet | 6,391 |
| Nissan | 5,749 |
| Hyundai | 4,652 |
| Kia | 3,780 |
| Jeep | 3,198 |
| Mercedes-Benz | 2,843 |
| BMW | 2,563 |
| Subaru | 2,382 |
| Dodge | 2,087 |
The full list is GET /v1/references/brands?market=us, free.
Live search beyond the copy
GET /v1/us/live searches lots straight at the auction data provider — for cars that are not in the copy. Parameters: make, model, year_min, year_max, price_max, page. Live search has its own monthly counter: Pro — 2,000 requests, Max — 10,000. When the provider is down, the answer is 503 with retry_after.
New lots and finished auctions
The feed GET /v1/changes?market=us returns new lots (added), lots whose auction has passed (disappeared) and price changes. After the auction a lot gets is_active=false and stays in the API for 14 more days.
US data boundaries
- Only lots with auctions ahead. No archive of past auctions, final prices or sale history.
- The API only reads data: bids are placed at the auction, through a member or broker account.
- Body type is missing on some lots, and there is no lot link.
- The age of the copy comes in the
X-Data-Age-Secondsheader of every answer.
Frequently asked questions
01Is this the official Copart or IAAI API?
No. apiauto.space is not affiliated with Copart or IAAI. We serve a copy of upcoming lots in our own single format — the same as for Encar and Che168.
02Is there sale history or final prices?
No. The copy holds only lots whose auctions are still ahead; after the auction a lot turns inactive and leaves after 14 days. We do not sell the sales archive.
03Can I bid through the API?
No, the API is read-only. Bids are placed at the auction, through a member or broker account.
04Does it fit a Telegram bot with US lots?
Yes: the bot's server queries /v1/cars?market=us with filters and learns about new lots from the /v1/changes feed. Keep the key on the bot's server.
05How much does the Copart and IAAI API cost?
The Start plan is $59 a month for one market, e.g. the USA only: 100,000 cars a month. Live search comes with Pro ($149, 2,000 requests) and Max ($299, 10,000). The demo is one day and 100 requests, free.
Other APIs and guides
Get a Copart and IAAI test key
- One day and 100 requests free, no card
- All three markets and the change feed: compare the USA with Korea and China
- The key arrives in Telegram within a minute — no forms, no calls

100 data requests, up to 20 cars per page, all three markets and the feed of changes. References, usage and photos are free.
The key comes in the next message. It is shown once: save it.
au_live_••••••••••••••••••••••••••••••••