MarketCheck partners with VINData for the National Motor Vehicle Title Information System (NMVTIS) VIN data report. This API provides access to AAMVA VIN Data Reports for Vehicle Title information, offering both retrieval of existing reports and generation of new ones.
The VINData API leverages the NMVTIS data to provide comprehensive vehicle title history, including title information, odometer readings, brand history, and salvage records.
The VINData API offers two distinct endpoints for different use cases:
Endpoint Type | Endpoint | Features |
---|---|---|
Access Report | /v2/vindata/access-report/aamva/{vin} | Retrieve existing AAMVA report |
Generate Report | /v2/vindata/generate-report/aamva/{vin} | Create new AAMVA report |
The base path varies depending on whether you want to access an existing report or generate a new one:
Access Existing Report:
GET https://api.marketcheck.com/v2/vindata/access-report/aamva/{vin}
Generate New Report:
GET https://api.marketcheck.com/v2/vindata/generate-report/aamva/{vin}
Path Parameters:
vin
: The 17-character VIN of the vehicle for AAMVA report operations.The following example demonstrate request to access the report endpoint:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/vindata/access-report/aamva/1FAHP3F28CL148530',
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);
}
The VINData API provides access to AAMVA VIN Data Reports through both retrieval and generation endpoints. Both endpoints share the same parameter requirements for consistent API usage.
Both endpoints of VINData AAMVA reports API share the same parameter requirements:
Your MarketCheck API authentication key. Required for every request, unless OAuth is used.
The following parameters are required for both access and generation requests:
Both actions, generating a new report and accessing an existing one, return the same response format with detailed AAMVA VINdata reports.
Both endpoints return the same response structure:
interface VINDataResponse {
productName: string; // VINData product identifier (e.g., "NMVTIS")
titleInformation: {
date: string; // ISO date of title event
state: string; // State where title was issued
type: string; // Title type: "Current" or "Historical"
reportedOdometer: string; // Formatted odometer reading with commas
measure: string; // Measurement unit abbreviation
event: string; // Description of title event
source: string; // Source of title information
vin: string; // Vehicle Identification Number
vinChanged: boolean; // Whether VIN was changed
}[]; // Array of title information records
titleBrandReported: {
code: string; // Brand code
date: string; // Date brand was reported
state: string; // State where brand was reported
brand: string; // Brand type
description: string; // Brand description
color: string; // Brand severity indicator
flag: string; // Additional brand flags
}[]; // Array of title brand records (empty array if no brands)
junkSalvageTotalLoss: {
date: string; // Date of junk/salvage event
reportedEntity: string; // Entity that reported the event
reportedEntityType: string; // Type of reporting entity
disposition: string; // Disposition of the vehicle
source: string; // Source of the information
color: string; // Severity indicator
}[]; // Array of junk/salvage/total loss records (empty array if none)
odometerInformation: {
date: string; // ISO date of odometer reading
type: string; // Type of odometer reading
source: string; // Source of odometer information
reportedOdometer: number; // Odometer reading as numeric value
measure: string; // Unit of measurement
}[]; // Array of odometer information records
summary: {
make: string; // Vehicle manufacturer
model: string; // Vehicle model
year: number; // Model year
type: string; // Vehicle type
empty: boolean; // Whether summary data is empty
}; // Vehicle summary information
trimLevels: {
Default: {
General: object; // Basic vehicle information (make, model, year, VIN pattern, etc.)
"Active Safety System": object; // Safety system specifications
"Passive Safety System": object; // Passive safety features
Exterior: object; // Exterior specifications and dimensions
Engine: object; // Engine specifications and performance data
};
}; // Detailed vehicle specifications organized by category
reportSummary: {
message: string; // Summary message about vehicle history
color: string; // Color indicator for report status
}; // Overall report summary and status
}
200 OK
- Returns a JSON object containing comprehensive AAMVA VINData Report
Status Code | Description | Common Causes |
---|---|---|
400 | Bad Request | VIN is not exactly 17 characters in length |
401 | Unauthorized | Missing/invalid API key |
403 | Forbidden | API key does not have access to this endpoint |
422 | Unprocessable Entity | Report not found for the specified VIN |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Report cannot be accessed/generated for technical reasons |
502 | Bad Gateway | Issues with upstream services |
503 | Service Unavailable | API maintenance or downtime |
Error Response Format
Most error responses follow this structure, except for 502 and 503 errors
{
"code": <HTTP status code>,
"message": "<Error message describing the issue>"
}
Use this to retrieve a previously generated AAMVA title report for a specific VIN. It does not create a new report, making it a cost-effective way to access existing title data.
Use this when you need to:
If no report has been generated for the VIN before, this request will return an error. To create a new one, use the report generation action.
Example:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/vindata/access-report/aamva/1FAHP3F28CL148530',
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);
}
Use this to create a new AAMVA title report for a given VIN. A new report is generated each time, ensuring the data is always up to date—regardless of whether a report for the same VIN was generated earlier.
Use this when you need to:
Example:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/vindata/generate-report/aamva/1FAHP3F28CL148530',
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);
}
Enhanced VIN Decoder
Third-party VIN decoder service powered by EpiAnalytics providing comprehensive vehicle specifications and data.
Recreational Vehicles APIs
Access recreational vehicle listings through MarketCheck's RV API. Search dealer inventory, retrieve detailed listings, and find RV dealers across North America.