MarketCheck has been tracking vehicle listings since 2015, providing a rich historical dataset for analysis. The History API allows you to access this data by Vehicle Identification Number (VIN), enabling you to retrieve detailed historical information about any vehicle.
Read Understanding MarketCheck Data to learn more about what data is available and how to interpret it.
GET https://api.marketcheck.com/v2/history/car/{vin}
Path Parameters:
vin
: The 17-character full Vehicle Identification Number for which you want to retrieve history. Case-insensitive.The following example demonstrates how to use the History API to get historical data for a specific VIN.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/history/car/1FTEW1EP1MFA57388',
params: {api_key: 'YOUR_API_KEY'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Your MarketCheck API authentication key. Required for every request, unless OAuth is used.
Comma-separated list of fields to include in History API response.
Page number for paginated History API results. Default — 1.
Specifies result sort order for historical data. Allowed values — asc
or desc
. Default — desc
.
Parameter | Default Value | Description |
---|---|---|
fields | Default fields | Comma-separated list of fields to include in the response. If not specified, defaults to a standard set of fields. |
page | 1 | Page number for paginated results |
sort_order | desc | Sort order for the results can be asc (ascending) or desc (descending). |
You can specify which fields to include in the history response using the fields
parameter. If not specified, the API returns a default set of fields. The available fields include:
Field | Is Default? | Description |
---|---|---|
id | Yes | Unique identifier for the listing |
price | Yes | Price of the vehicle |
miles | Yes | Mileage of the vehicle |
data_source | Yes | Source of the listing data |
vdp_url | Yes | Vehicle Detail Page URL |
seller_type | Yes | Type of seller (e.g., dealer, fsbo, auction) |
inventory_type | Yes | Type of inventory (e.g., new, used) |
status_date | Yes | Timestamp when the listing was last seen |
last_seen_at | Yes | Timestamp when the listing was last seen |
last_seen_at_date | Yes | Date when the listing was last seen |
scraped_at | Yes | Timestamp when the listing was first seen |
scraped_at_date | Yes | Date when the listing was first seen |
first_seen_at | Yes | Timestamp when the listing was first seen |
first_seen_at_date | Yes | Date when the listing was first seen |
source | Yes | Source website of the listing |
seller_name | Yes | Name of the seller |
city | Yes | City of the seller |
state | Yes | State of the seller |
zip | Yes | ZIP code of the seller |
vin | No | Vehicle Identification Number |
msrp | No | Manufacturer's Suggested Retail Price |
is_certified | No | Whether the vehicle is certified |
exterior_color | No | Exterior color of the vehicle |
interior_color | No | Interior color of the vehicle |
base_int_color | No | Base interior color |
base_ext_color | No | Base exterior color |
dom | No | Days on market |
dom_180 | No | Days on market in the last 180 days |
dom_active | No | Active days on market |
stock_no | No | Stock number of the vehicle |
is_searchable | No | Whether the listing is searchable |
dealer_id | No | Dealer identifier |
street | No | Street address of the seller |
country | No | Country of the seller |
latitude | No | Latitude of the seller's location |
longitude | No | Longitude of the seller's location |
dos_active | No | Days on site actively listed |
You can not specify the sort by field, but you can control the sort order using the sort_order
parameter.
The results are sorted by status_date
in descending order by default, meaning the most recent listings appear first. You can change this to ascending order by setting sort_order=asc
.
page
parameter.page
parameter to retrieve subsequent pages of results. Increase the page
value by 1 to get the next set of results.You can expect the History API response schema to vary based on the fields
parameter. The default response schema is as follows:
interface Response {
history: History[];
}
interface History {
id: string;
price: number;
miles: number;
data_source: string;
vdp_url: string;
seller_type: string;
inventory_type: string;
last_seen_at: number;
last_seen_at_date: string;
scraped_at: number;
scraped_at_date: string;
first_seen_at: number;
first_seen_at_date: string;
source: string;
seller_name: string;
city: string;
state: string;
zip: string;
status_date: number;
}
200 OK
200 OK
200 OK
Status Code | Description | Common Causes |
---|---|---|
400 | Bad Request | Invalid parameter values, such as vin length less than 17 characters |
401 | Unauthorized | Missing/invalid API key |
403 | Forbidden | Access denied to resource |
422 | Unprocessable Entity | Page exceeds number of records found |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Temporary server issues |
502 | Bad Gateway | Issues with upstream services |
503 | Service Unavailable | API maintenance or downtime |
Given a VIN, you can retrieve all past listings and their details. This is useful for tracking price changes, mileage history, and seller information over time.
Example:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/history/car/1FTEW1C57MKD83429',
params: {api_key: 'YOUR_API_KEY'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
If a dealer or seller had sold a vehicle in the past, they can use VIN History API to track if that VIN has reappeared in the market and with whom. This can help in understanding the vehicle's lifecycle and ownership changes.
Example:
Here in this example, we are fetching the history of a specific VIN to track its past listings and changes in price, mileage, and seller information with fields selected for detailed insights.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/history/car/5UX13EU09R9V13306',
params: {
api_key: 'YOUR_API_KEY',
fields: 'id,price,miles,seller_type,inventory_type,last_seen_at_date,first_seen_at_date,seller_name,city,state'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
You can use the VIN History API to track the price history of a specific vehicle over time. This can help evaluate depreciation in its value and trend in the price (is it increasing or decreasing).
Example:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/history/car/5TFJA5DB4PX066997',
params: {
api_key: 'YOUR_API_KEY',
fields: 'id,price,last_seen_at_date,seller_name,seller_type',
sort_order: 'asc'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
The VIN History API is a powerful tool for vehicle research. You can analyze the history of a specific vehicle, including its past listings, price changes, miles changes, and seller information. By analyzing miles changes over time, you can also infer the vehicle's usage patterns and potential wear and tear.
Example:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/history/car/5GTEN63L888227488',
params: {
api_key: 'YOUR_API_KEY',
fields: 'id,price,miles,exterior_color,interior_color,dom,dom_180,dom_active,last_seen_at_date,first_seen_at_date,seller_name,city,state,inventory_type'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}