API Documentation
Welcome to RecallAPI.
Get familiar with the endpoints and their data.
Or click here to view information on batch processing.
Recall Report API
The Recall Report API provides access to a library of vehicle and recall data.
HTTPS calls are made to RecallAPI using the GET
method with the endpoint listed in this section. Please see below for the complete documentation and access details.
GET https://www.recallapi.com/api/v1/vehicle/
Authentication
Before being able to use this API, you must register. Authentication is done via the API key which you can find in your account settings.
You can see your account’s API keys, and refresh them if necessary, in the user dashboard.
Quick Start
Once you are registered and have your API key, you are ready to begin checking for recalls!
The API is organized around REST. All request and response bodies, including errors, are encoded in JSON.
You will not need any specific language bindings to use this API. But for your convenience, we've provided quick start code snippets to get you on your way.
You can switch the programming language of the examples with the tabs at the top.
# nethttp2.rb
require 'uri'
require 'net/http'
uri = URI('https://www.recallapi.com/api/v1/vehicle/recallReport')
params = { :token => YOUR_API_KEY, :vin => VIN }
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
puts res.body if res.is_a?(Net::HTTPSuccess)
import requests
url = "https://www.recallapi.com/api/v1/vehicle/recallReport"
params = {
"token":YOUR_API_KEY,
"vin":VIN
}
response = requests.request("GET", url, params=params)
print(response.text)
$ch = curl_init();
$url = "https://www.recallapi.com/api/v1/vehicle/recallReport";
$dataArray = [
'token' => YOUR_API_KEY,
'vin' => VIN
];
$data = http_build_query($dataArray);
$getUrl = $url."?".$data;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $getUrl);
$response = curl_exec($ch);
curl_close($ch);
const http = require('http');
const querystring = require('querystring');
const parameters = {
token: YOUR_API_KEY,
vin: VIN
}
const get_request_args = querystring.stringify(parameters);
const options = {
url: "https://www.recallapi.com/api/v1/vehicle/recallReport",
path: "?" + get_request_args,
headers : {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
const request = http.request(options, (response) => {
let all_chunks = [];
response.on('data', (chunk) => {
all_chunks.push(chunk);
});
response.on('end', () => {
let response_body = Buffer.concat(all_chunks);
console.log(response_body.toString());
});
response.on('error', (error) => {
console.log(error.message);
});
});
request.on('error', (error) => {
console.log(error.message);
});
request.end();
curl --request GET
--url 'https://www.recallapi.com/api/v1/vehicle/recallReport'
--header 'accept: application/json'
--header 'content-type: application/json'
--data '{"token": YOUR_API_KEY}'
--data '{"vin": VIN}'
Errors
Our API uses conventional HTTP response codes to indicate the success or failure of an API request.
In general: Codes in the 2xx
range indicate success. Codes in the 4xx
range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx
range indicate an error with our servers (these are rare).
Some 4xx
errors that could be handled programmatically (e.g., invalid VIN, modelYear outside of datarange, etc.) include an error code that briefly explains the error reported.
HTTP Status Code Summary | ||
---|---|---|
200 | Okay | Everything worked as expected. |
400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |
401 | Unauthorized | No valid API key provided. |
402 | Request Failed | The parameters were valid but the request failed. |
403 | Forbidden | The API key doesn't have permissions to perform the request. |
404 | Not Found | The requested resource doesn't exist. |
422 | Validation Error | A validation error occurred. |
429 | Too Many Requests | Too many requests hit the API too quickly. |
500, 502, 503, 504 | Internal Server Error | Something went wrong on our end. |
Recall Report Attributes
Recall Reports are returned in JSON format, containing the following list of data fields, as applicable.
uuid
string
A 128-bit label used to uniquely identify the recall report and its data.
vin
string
Alphanumeric 17-digit vehicle identification number (VIN).
manufacturer
string
Name of the vehicle manufacturer.
modelYear
int
Model year of the vehicle conveyed as a four-digit integer in format YYYY
.
make
string
Per 49 CFR 565, Make is a name that a manufacturer applies to a group of vehicles or engines.
model
string
Per 49 CFR 565, Model means a name that a manufacturer applies to a family of vehicles of the same type, make, line, series and body type.
vehicleType
string
Defines the type of the vehicle based on the World Manufacturer Identifier (WMI). Common types include Passenger Car
, Multipurpose Passenger Vehicle (MPV)
, Truck
, and Motorcycle
.
reportDate
datetime
The date and time the report was generated conveyed in ISO 8601 format YYYY-MM-DDTHH:mm:ssZ
.
hasRecalls
boolean
Indicates if a vehicle has open recalls at the time the report is generation. A vehicle with open recalls will return true
, a vehicle without open recalls will return false
.
recallCount
int
An integer representation of the number of open recalls for the queried vehicle.
recalls
array
Returns an array with campaign-specific details on open recalls. If there are no open recalls associated with the vehicle, an empty array will be returned.
{ "uuid": "8a1caec6-e120-4360-abd1-b888298a9ea4", "vin": "1FM5K8HT1HGD03221", "manufacturer": "FORD MOTOR COMPANY, USA", "modelYear": "2017", "make": "FORD", "model": "Explorer", "vehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)", "reportDate": "2021-11-29 13:32:56", "hasRecalls": TRUE, "recallCount": 1, "recalls": [] }
Recall Campaign Attributes
If a vehicle has open recalls, the details of the specific recall campaign will be appended to the recalls
array in the Recall Report.
Any missing values should be interpreted as RecallAPI does not have data on the specific attribute or variable. Missing values should NOT be interpreted as an indication that an attribute or variable does not apply.
recallDate
date
The date the recall was issued conveyed in ISO 8601 format YYYY-MM-DD
.
expirationDate
date
If applicable, the date of expiration for the issued recall conveyed in ISO 8601 format YYYY-MM-DD
. If not applicable, this field will be blank.
nhtsaId
string
Six character alphanumeric code indicating the NHTSA campaign ID. If campaign type is not NHTSA, this field will be blank.
manufacturerId
string
Identifier the manufacturer assigns to the campaign. The ID format depends on the manufacturer.
recallCampaignType
string
Campaign type will be listed as either NHTSA
or VOLUNTARY/SERVICE
.
recallName
string
Common name of the recall campaign.
component
string
Specific component(s) affected by the recall.
recallDescription
string
Description of the conditions of the recall campaign.
riskDescription
string
Description of the risks and potential safety consequences of the defect.
stopSale
boolean
Indicates if a stop-sale order is in place at the time the report is generated.
dontDrive
boolean
Indicates if don't drive directive is in place at the time the report is generated.
remedyAvailable
boolean
Indicates if a remedy has been issued for the stated recall at the time the report is generated.
recallRemedy
string
Description of the approved recall remedy or corrective action.
partsAvailable
boolean
Indicates if parts are available for the stated remedy at the time the report is generated.
laborHoursMin
float
Indicates minimum number of labor hours for service.
laborHoursMax
float
Indicates maximum number of labor hours for service.
recallStatus
string
Indicates the status of the recall on the 17-digit specific VIN at the time the report is generated. Values will be listed as Incomplete
or Complete
.
{ "recallDate": "2021-09-24", "expirationDate": "", "nhtsaId": "21V537", "manufacturerId": "21S32", "recallCampaignType": "NHTSA", "recallName": "REAR TOE LINK REPLACEMENT", "component": "SUSPENSION:REAR", "recallDescription": "VEHICLES EXPOSED TO A CORROSIVE ENVIRONMENT WHERE ROAD SALT IS USED EXTENSIVELY DURING WINTER MONTHS COULD EXPERIENCE A SEIZED REAR SUSPENSION TOE LINK BALL JOINT RESULTING IN A FRACTURED REAR SUSPENSION TOE LINK.", "riskDescription": "A REAR TOE LINK FRACTURE MAY CAUSE A LOSS OF STEERING CONTROL, INCREASING THE RISK OF A CRASH.", "stopSale" : TRUE, "dontDrive" : FALSE, "remedyAvailable": TRUE, "recallRemedy": "AN INTERIM INSPECTION WAS PREVIOUSLY COMPLETED ON YOUR VEHICLE RECALL 20S62. HOWEVER, ITS REQUIRED THAT YOU BRING YOUR VEHICLE IN FOR A SECOND INSPECTION TO ENSURE CONTINUED SAFE OPERATION OF YOUR VEHICLE UNTIL THE FINAL REPAIR CAN BE COMPLETED. WHEN PARTS ARE AVAILABLE FOR THE FINAL REPAIR, FORD MOTOR COMPANY WILL NOTIFY YOU VIA MAIL TO SCHEDULE A SERVICE APPOINTMENT WITH YOUR DEALER FOR REPAIRS TO BE COMPLETED FREE OF CHARGE PARTS AND LABOR. DEALERS WILL INSPECT AND REPLACE AS NECESSARY THE REAR SUSPENSION TOE LINK BALL JOINTS AND KNUCKLES, WILL INSTALL UPGRADED REAR SUSPENSION TOE LINKS, AND ADJUST REAR WHEEL ALIGNMENT FREE OF CHARGE. FORD MOTOR COMPANY IS WORKING CLOSELY WITH ITS SUPPLIERS TO PRODUCE PARTS FOR THIS REPAIR.", "partsAvailable": FALSE, "laborHoursMin" : 0.6, "laborHoursMax" : 1.2, "recallStatus": "Incomplete" }
Batch Processing
Need to operate at scale? RecallAPI offers batch recall report processing to enterprise accounts, allowing for bulk VIN checks via SFTP handoffs.
Simply upload a list of VINs in a .csv file to your organization's authorized account, and RecallAPI will process the records and place the outfile directly in your secure file for retrieval.
Batch data output contains the same recall report attributes and recall campaign attributes as the single-call API, but returns the information in a consolidated .csv outfile.
Need to track your VIN records for accounting or client identification? RecallAPI's batch processing allows you to include unique IDs for the batch and/or the VINs it contains, which are preserved throughout data processing.