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/recalls

Query Parameters

ParameterTypeRequiredDescription
makestringRequiredVehicle manufacturer (e.g. TOYOTA). Case-insensitive, URL-encoded.
modelstringRequiredVehicle model (e.g. RAV4). Case-insensitive, URL-encoded.
modelYearstringRequired4-digit year as a string (e.g. 2020).
tokenstringRequiredAPI 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

FieldTypeDescription
countnumberNumber of recall records (upstream-reported, falls back to recalls.length)
hasRecallsbooleanTrue when at least one recall was found for the given make/model/year
recallsRecall[]Array of recall records
recalls[].manufacturerstringManufacturer that issued the recall
recalls[].reportReceivedDatestringDate the recall report was received (upstream-formatted, e.g. "23/01/2020")
recalls[].componentstringAffected vehicle component (e.g. "AIR BAGS")
recalls[].summarystringFree-text summary of the defect
recalls[].consequencestringSafety consequence of the defect
recalls[].remedystringRemedy / fix description
recalls[].modelYearstringModel year
recalls[].makestringVehicle make
recalls[].modelstringVehicle model
recalls[].parkItboolean"Park it" advisory - vehicle should not be driven until repaired
recalls[].parkOutsideboolean"Park outside" advisory - vehicle should be parked outside due to fire risk
recalls[].overTheAirUpdatebooleanTrue 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: false is the expected "all clear" response - it is not an error.
  • The parkIt and parkOutside flags signal severe defects (do-not-drive, fire risk) - surface them prominently to end users.
  • Each request consumes 1 API credit from your monthly allowance.