apiauto-mcp
apiauto.space: Encar, Che168, Copart, IAAI
Documentation
API docs: your first request in five minutes
apiauto.space is a JSON REST API: used-car catalogs of Korea (Encar), China (Che168) and US auctions (Copart, IAAI) in one record format.
South Korea (Encar) — more than 140,000 active cars; China (Che168) — more than 230,000; USA (Copart and IAAI) — more than 80,000. How the markets differ: data boundaries.
Base URL and schema
| What | Value |
|---|---|
| Base URL | https://api.apiauto.space/v1 |
| Format | JSON, UTF-8; times in ISO 8601 UTC |
| Key | X-API-Key — key and headers |
| Pagination | by cursor: next_cursor of the previous page |
| Schema | openapi.json · Swagger UI · Redoc |
The integration cycle
- Import Copy a market to your side:
GET /v1/carswith the cursor, up to 100 cars per request. - Poll the changes Once an hour ask
GET /v1/changes?since=…: new cars, removed cars and price changes. - Update Fetch new ones by
GET /v1/cars/{id}, mark removed ones as sold. In detail: keeping a catalog in sync.
Quick start
- Open the bot and take a demo key: one day, 100 data requests, up to 20 cars per request, all three markets.
- Save the key in the APIAUTO_KEY environment variable: it is shown once.
- Send a request:
curl -s "https://api.apiauto.space/v1/cars?market=kr&brand=Kia&limit=20" \
-H "X-API-Key: $APIAUTO_KEY"
Ready clients exist: pip install apiauto-space — the Python library, npm i apiauto — the JavaScript and TypeScript library. Their code and Encar examples are on GitHub.
The answer is a page of cars and the cursor of the next page. One record looks like this (shortened: two photo links and the first raw fields):
{
"id": "encar:43086820",
"market": "kr",
"source": "encar",
"source_id": "43086820",
"title": "2023 Kia Sportage 5 Gen 2.0 4WD Trendy",
"brand": "Kia",
"model": "Sportage",
"generation": "Sportage 5 Gen",
"trim": "2.0 4WD Trendy",
"year": 2023,
"mileage_km": 27608,
"fuel": "diesel",
"transmission": null,
"engine_cc": null,
"body_type": null,
"color": null,
"vin": null,
"price": {
"amount": "19200000.00",
"currency": "KRW"
},
"price_usd": "14297.38",
"location": {
"country": "KR",
"region": "Gyeonggi",
"city": null
},
"photo_count": 4,
"listing_url": "https://fem.encar.com/cars/detail/43086820",
"is_active": true,
"first_seen_at": "2026-11-03T14:27:05.313790Z",
"last_seen_at": "2026-11-03T14:27:05.313790Z",
"disappeared_at": null,
"updated_at": "2026-11-03T14:27:05.313790Z",
"source_mode": "replica",
"photos": [
"https://api.apiauto.space/img/encar:43086820/1.jpg?exp=…&sig=…",
"https://api.apiauto.space/img/encar:43086820/2.jpg?exp=…&sig=…"
],
"raw": {
"badge": "디젤 2.0 4WD",
"has_vin": false,
"form_year": "202209",
"sell_type": "normal",
"body_class": null,
"office_city": "경기",
"badge_detail": "트렌디",
"has_accident": false
}
}
Keep the key on your server. The API does not allow browser requests (CORS is off), and a key in page code is visible to every visitor.
Guides
Key and headers How to send the API key in the X-API-Key header, where to keep it, how to rotate it and what the quota and rate-limit response headers mean.
Keeping a catalog in sync How to import the Encar, Che168 or Copart and IAAI catalog with a cursor and keep it fresh from the change feed: new and removed cars and prices.
The car record and photos The car record's fields, the same for Encar, Che168, Copart and IAAI: make, model, price, mileage, place, photos and raw; how the signed photo links work.
Quota and limits What the quota counts — cars and events, not requests; the limits of the four plans, the monthly reset and the key after the paid period.
Errors The error response body and HTTP codes from 400 to 503 with the error field: what each one means, what to do on 402, 429 and 503 and when to retry.
Data boundaries How the Korea, China and USA data differ in the API: size, refresh, VIN, photos, what each source lacks and how to learn the age of a market copy.
Versions and changelog Compatibility rules within /v1: fields are only added, breaking changes will ship under /v2. What changed in the API, month by month.
Endpoints
GET /v1/cars Car catalog The GET /v1/cars endpoint: filters by make, model, year, price and mileage, sorting, the cursor and sample answers with real Encar, Che168, Copart and IAAI cars.
GET /v1/cars/{id} Car by id The GET /v1/cars/{id} endpoint: the full record of one Encar, Che168, Copart or IAAI car by an id like encar:…, including cars taken off sale within 14 days.
GET /v1/changes Change feed The GET /v1/changes endpoint: new cars, cars taken off sale, price drops and rises with a percentage threshold — since a moment, with a cursor.
GET /v1/us/live Live US search The GET /v1/us/live endpoint: search Copart and IAAI lots at the auction data provider when a car is not in the copy. Pro and Max plans, a separate counter.
GET /v1/references/… References Free references: a market's makes and models with car counts, the allowed values of fuel, gearbox and body, and market freshness. They spend no quota.
GET /v1/usage Quota usage The GET /v1/usage endpoint: the plan, its term, the period quota and how much of it is spent — in total and per market, live US search included. Free.
| More | What it does | Quota |
|---|---|---|
GET /img/{id}/{n}.jpg | A car photo by the signed link from the record. | free |
GET /healthz | Health: 503 when any market is past its freshness threshold. | free |