Listings for a VIN
Every dealer site that lists or listed the car. listing is the freshest active one, or null when the car is not on any site today. An advertised price carries what it includes (price.terms).
GEThttps://api.motorsdynamic.com/api/v2/listings/{vin}
Plan and price
| Plan | Access | Price |
|---|---|---|
| Free | Yes | included in the 1,000 monthly calls |
| Growth | Yes | $0.0015 per call |
| Scale | Yes | $0.0009 per call |
| Enterprise | Yes | contract |
A call is billed when it answers 2xx. See pricing.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
vin | path | string | yes | 17-character VIN (case-insensitive). |
Example request
curl "https://api.motorsdynamic.com/api/v2/listings/1HGCM82633A004352" \
-H "x-api-key: $MD_API_KEY"const res = await fetch("https://api.motorsdynamic.com/api/v2/listings/1HGCM82633A004352", {
headers: { "x-api-key": process.env.MD_API_KEY },
});
if (!res.ok) throw new Error(`${res.status} ${(await res.json()).error}`);
const data = await res.json();
console.log(data);import os, requests
res = requests.get(
"https://api.motorsdynamic.com/api/v2/listings/1HGCM82633A004352",
headers={"x-api-key": os.environ["MD_API_KEY"]},
timeout=10,
)
res.raise_for_status()
print(res.json())Response fields
| Field | Type | Description |
|---|---|---|
meta | object | |
meta.active_listings | integer | |
meta.total_listings | integer | |
data | object | |
data.vin | string | |
data.online | boolean | |
data.vehicle | object | |
data.listing | object or null | |
data.listings[] | array of object | |
data.listings[].domain_id | integer | |
data.listings[].status | active or removed | |
data.listings[].dealer | object | |
data.listings[].vdp_url | string or null | |
data.listings[].stock_number | string or null | |
data.listings[].condition | new or used or cpo or null | |
data.listings[].is_cpo | boolean | |
data.listings[].stock_status | string or null | |
data.listings[].price | object or null | |
data.listings[].mileage | integer or null | |
data.listings[].exterior_color | string or null | |
data.listings[].interior_color | string or null | |
data.listings[].photo_count | integer | |
data.listings[].primary_image | string or null | |
data.listings[].carfax_available | boolean or null | |
data.listings[].first_seen_at | string or null | |
data.listings[].removed_at | string or null | |
data.listings[].days_on_lot | integer or null | |
data.listings[].freshness | object | |
data.listings[].provenance | object |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_parameter | A parameter is missing or malformed. The message names it. |
| 401 | invalid_api_key | The key is missing, revoked or mistyped. |
| 403 | not_entitled | The key may not read this dealer or source. |
| 404 | not_found | Nothing matches the identifier in the path. |
| 429 | rate_limited or quota_exceeded | Slow down (see Retry-After), or the Free monthly calls are used up. |
| 504 | query_timeout | The query passed its 4 second budget. Narrow the filters. Not billed. |
Every error has the same body. Full list: errors.