Recalls
Look up U.S. recall records for a given make, model, and model year
GET Request
~300ms response (cached)
1 credit per request
Endpoint
GET https://api.carapi.dev/v1/recallsQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| make | string | Required | Vehicle manufacturer (e.g. TOYOTA). Case-insensitive, URL-encoded. |
| model | string | Required | Vehicle model (e.g. RAV4). Case-insensitive, URL-encoded. |
| modelYear | string | Required | 4-digit year as a string (e.g. 2020). |
| token | string | Required | API authentication token |
Request Examples
cURL
curl -X GET \
"https://api.carapi.dev/v1/recalls?make=TOYOTA&model=RAV4&modelYear=2020&token=YOUR_API_KEY"JavaScript
const params = new URLSearchParams({
token: 'YOUR_API_KEY',
make: 'TOYOTA',
model: 'RAV4',
modelYear: '2020'
});
const response = await fetch(
`https://api.carapi.dev/v1/recalls?${params.toString()}`
);
const data = await response.json();
console.log(data);Python
import requests
response = requests.get(
"https://api.carapi.dev/v1/recalls",
params={
"token": "YOUR_API_KEY",
"make": "TOYOTA",
"model": "RAV4",
"modelYear": "2020",
},
)
print(response.json())Response Examples
Recalls found (200)
{
"count": 2,
"hasRecalls": true,
"recalls": [
{
"manufacturer": "Toyota Motor Engineering & Manufacturing",
"reportReceivedDate": "23/01/2020",
"component": "FUEL SYSTEM, GASOLINE",
"summary": "Affected vehicles may have a fuel pump that fails ...",
"consequence": "A fuel pump failure can cause an engine stall ...",
"remedy": "Dealers will replace the low-pressure fuel pump, free of charge.",
"modelYear": "2020",
"make": "TOYOTA",
"model": "RAV4",
"parkIt": false,
"parkOutside": false,
"overTheAirUpdate": false
}
]
}No recalls (200)
{
"count": 0,
"hasRecalls": false,
"recalls": []
}Error Response (400)
{
"error": "make, model, and modelYear query params are required"
}Response Fields
| Field | Type | Description |
|---|---|---|
| count | number | Number of recall records (upstream-reported, falls back to recalls.length) |
| hasRecalls | boolean | True when at least one recall was found for the given make/model/year |
| recalls | Recall[] | Array of recall records |
| recalls[].manufacturer | string | Manufacturer that issued the recall |
| recalls[].reportReceivedDate | string | Date the recall report was received (upstream-formatted, e.g. "23/01/2020") |
| recalls[].component | string | Affected vehicle component (e.g. "AIR BAGS") |
| recalls[].summary | string | Free-text summary of the defect |
| recalls[].consequence | string | Safety consequence of the defect |
| recalls[].remedy | string | Remedy / fix description |
| recalls[].modelYear | string | Model year |
| recalls[].make | string | Vehicle make |
| recalls[].model | string | Vehicle model |
| recalls[].parkIt | boolean | "Park it" advisory - vehicle should not be driven until repaired |
| recalls[].parkOutside | boolean | "Park outside" advisory - vehicle should be parked outside due to fire risk |
| recalls[].overTheAirUpdate | boolean | True when the remedy is delivered as an OTA software update |
Error Codes
400
Bad Request
Missing make, model, or modelYear
403
Forbidden
Invalid or missing API token
502
Bad Gateway
Failed to fetch recalls upstream
500
Internal Server Error
Server encountered an error processing the request
Important Notes
- •An empty array with
hasRecalls: falseis the expected "all clear" response - it is not an error. - •The
parkItandparkOutsideflags signal severe defects (do-not-drive, fire risk) - surface them prominently to end users. - •Each request consumes 1 API credit from your monthly allowance.