NHTSA Vehicle Safety Search avatar

NHTSA Vehicle Safety Search

Pricing

from $2.00 / 1,000 record fetcheds

Go to Apify Store
NHTSA Vehicle Safety Search

NHTSA Vehicle Safety Search

Search NHTSA vehicle recalls and safety complaints by make, model, year. Get recall campaigns, defect summaries, crash/fire/injury stats, remedies, and Park It alerts. Free government API, no key needed.

Pricing

from $2.00 / 1,000 record fetcheds

Rating

0.0

(0)

Developer

ryan clinton

ryan clinton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does NHTSA Vehicle Safety Search do?

NHTSA Vehicle Safety Search pulls vehicle recall and consumer complaint data directly from the National Highway Traffic Safety Administration (NHTSA) public API. NHTSA is the U.S. federal agency responsible for vehicle safety, and its database contains millions of records spanning decades -- from recall campaigns affecting millions of units to individual consumer complaints about crashes, fires, injuries, and deaths.

This actor lets you search by vehicle make, model, and year, or look up specific recall campaigns by NHTSA campaign number. It returns structured JSON output with all critical safety fields: recall summaries, affected components, remedies, consequence descriptions, complaint narratives, crash and fire flags, injury and death counts, and more.

Why use NHTSA Vehicle Safety Search on Apify?

  • Two data types in one actor -- Search recalls, consumer complaints, or both in a single run for a complete safety picture.
  • No API complexity -- The NHTSA API has different endpoints for recalls-by-vehicle, recalls-by-campaign, and complaints. This actor routes to the correct endpoint automatically.
  • Normalized dates -- NHTSA's raw DD/MM/YYYY dates are converted to standard YYYY-MM-DD format.
  • Automatic deduplication -- Recall results are deduplicated by campaign number + year + make + model to eliminate redundant entries.
  • Safety urgency flags -- Recall output includes "Park It" (stop driving immediately) and "Park Outside" (fire risk) urgency flags.
  • Schedule for monitoring -- Run weekly to track new recalls for your fleet or vehicles of interest, with webhook alerts.
  • No API key required -- The NHTSA API is completely free and open.

Key features

  • Search recalls by make, model, and year -- Find all open and historical recalls for any vehicle combination.
  • Search consumer complaints -- Access NHTSA's complaint database including crash, fire, injury, and fatality data.
  • Campaign number lookup -- Look up a specific recall by NHTSA campaign number for detailed information.
  • Combined search mode -- Fetch both recalls and complaints in a single run.
  • Over-the-air update flag -- See which recalls can be resolved via OTA software update.
  • Configurable result limits -- Control output from 1 to 10,000 records per run.
  1. Navigate to the NHTSA Vehicle Safety Search on the Apify Store.
  2. Click Try for free to open the actor in Apify Console.
  3. Select search mode (recalls, complaints, or both), enter vehicle make, model, and year.
  4. Click Start and wait for the run to complete.
  5. Download your results from the Dataset tab in JSON, CSV, or Excel format.

Input parameters

ParameterTypeRequiredDefaultDescription
searchModeselectNorecallsWhat to search: "recalls", "complaints", or "both"
makestringYes*--Vehicle manufacturer (e.g., "Tesla", "Toyota", "Ford"). *Required unless using campaign number.
modelstringNo--Vehicle model (e.g., "Model 3", "Camry", "F-150"). Leave empty for all models.
modelYearstringNo--Model year (e.g., "2024"). Leave empty for all years.
campaignNumberstringNo--Look up a specific recall by NHTSA campaign number (e.g., "22V844000"). Overrides make/model/year.
maxResultsintegerNo100Maximum number of results to return (1--10,000)

Input examples

Tesla Model 3 recalls in 2024:

{
"searchMode": "recalls",
"make": "Tesla",
"model": "Model 3",
"modelYear": "2024",
"maxResults": 100
}

Complete safety profile for a used car:

{
"searchMode": "both",
"make": "Ford",
"model": "F-150",
"modelYear": "2020",
"maxResults": 500
}

Look up a specific recall campaign:

{
"searchMode": "recalls",
"campaignNumber": "22V844000",
"maxResults": 50
}

All complaints for a manufacturer:

{
"searchMode": "complaints",
"make": "Toyota",
"maxResults": 5000
}

Input tips

  • Be specific with model names. Use exact names as they appear in NHTSA records (e.g., "F-150" not "F150", "Model 3" not "Model3").
  • Omit model and year for broad searches across an entire manufacturer.
  • Use "both" mode for used car due diligence -- recalls show manufacturer-acknowledged defects, complaints show consumer-reported issues.
  • Campaign number lookup is fastest and most targeted if you already have the number from a news article or dealer notice.
  • Increase maxResults for popular vehicles. Toyota and Ford can have thousands of records.

Output examples

Recall record

{
"type": "recall",
"campaignNumber": "23V579000",
"manufacturer": "Tesla, Inc.",
"make": "TESLA",
"model": "Model 3",
"modelYear": "2023",
"component": "ELECTRICAL SYSTEM:SOFTWARE",
"summary": "Tesla, Inc. (Tesla) is recalling certain 2023 Model 3 vehicles. The rearview camera image may not display after the vehicle is shifted into reverse.",
"consequence": "A rearview camera that does not display an image when in reverse can reduce rear visibility, increasing the risk of a crash.",
"remedy": "Tesla will perform an over-the-air (OTA) software update, free of charge.",
"reportDate": "2023-08-11",
"unitsAffected": 54676,
"parkIt": false,
"parkOutside": false,
"overTheAirUpdate": true,
"notes": "Owners may contact Tesla customer service at 1-877-798-3752.",
"extractedAt": "2025-01-15T12:30:00.000Z"
}

Complaint record

{
"type": "complaint",
"odiNumber": 11572893,
"manufacturer": "Tesla, Inc.",
"make": "TESLA",
"model": "Model 3",
"modelYear": "2023",
"component": "ELECTRICAL SYSTEM",
"summary": "While driving at highway speeds, the vehicle's touchscreen went blank and the car lost power steering assist. Had to pull over. Restarting restored functionality.",
"crash": false,
"fire": false,
"injuries": 0,
"deaths": 0,
"dateOfIncident": "2023-10-05",
"dateComplaintFiled": "2023-10-12",
"extractedAt": "2025-01-15T12:30:00.000Z"
}

Recall output fields

FieldTypeDescription
typestringAlways "recall"
campaignNumberstringNHTSA campaign number (e.g., "23V579000")
manufacturerstringManufacturer name
makestringVehicle make (uppercase)
modelstringVehicle model
modelYearstringModel year
componentstringAffected component (e.g., "ELECTRICAL SYSTEM:SOFTWARE")
summarystringFull description of the defect
consequencestringPotential safety consequence of the defect
remedystringHow the manufacturer will fix the defect
reportDatestringDate NHTSA received the recall report (YYYY-MM-DD)
unitsAffectednumber|nullNumber of vehicles potentially affected
parkItbooleanNHTSA recommends stop driving immediately
parkOutsidebooleanVehicle should not be parked in a garage (fire risk)
overTheAirUpdatebooleanRecall can be resolved via OTA software update
notesstringAdditional notes (contact info, owner notification dates)
extractedAtstringISO 8601 timestamp of extraction

Complaint output fields

FieldTypeDescription
typestringAlways "complaint"
odiNumbernumberNHTSA Office of Defects Investigation number
manufacturerstringVehicle manufacturer
makestringVehicle make
modelstringVehicle model
modelYearstringModel year
componentstringAffected component
summarystringConsumer's description of the safety issue
crashbooleanWhether the complaint involves a crash
firebooleanWhether the complaint involves a fire
injuriesnumberNumber of injuries reported
deathsnumberNumber of deaths reported
dateOfIncidentstringDate of the incident (YYYY-MM-DD)
dateComplaintFiledstringDate the complaint was filed (YYYY-MM-DD)
extractedAtstringISO 8601 timestamp of extraction

Use cases

  • Used car research -- Check recall and complaint history before purchasing a used vehicle.
  • Fleet management -- Monitor recalls for your fleet vehicles. Schedule weekly runs with webhook alerts.
  • Automotive journalism -- Investigate safety trends, compare manufacturers, and track emerging defect patterns.
  • Insurance risk assessment -- Analyze complaint and crash data by make/model/year for actuarial analysis.
  • Legal and litigation -- Gather recall and complaint evidence for automotive liability cases.
  • Consumer safety apps -- Build tools that alert car owners about new recalls affecting their vehicles.

Programmatic access (API)

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/nhtsa-vehicle-safety").call(run_input={
"searchMode": "both",
"make": "Tesla",
"model": "Model 3",
"maxResults": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item["type"] == "recall":
print(f"RECALL [{item['campaignNumber']}]: {item['summary'][:80]}")
if item["parkIt"]:
print(" !! PARK IT - Stop driving immediately !!")
else:
print(f"COMPLAINT [{item['odiNumber']}]: {item['summary'][:80]}")
if item["crash"]:
print(f" Crash: {item['injuries']} injuries, {item['deaths']} deaths")

JavaScript:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/nhtsa-vehicle-safety").call({
searchMode: "both",
make: "Tesla",
model: "Model 3",
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const recalls = items.filter((i) => i.type === "recall");
const complaints = items.filter((i) => i.type === "complaint");
console.log(`${recalls.length} recalls, ${complaints.length} complaints`);

cURL:

# Start a run
curl "https://api.apify.com/v2/acts/ryanclinton~nhtsa-vehicle-safety/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"searchMode": "both",
"make": "Tesla",
"model": "Model 3",
"maxResults": 200
}'
# Fetch results (after run completes)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \
-H "Authorization: Bearer YOUR_API_TOKEN"

How it works -- technical details

Input (searchMode, make, model, year, campaignNumber)
├── campaignNumber provided?
│ YES → /recalls/campaignNumber?campaignNumber=XXX
│ NO → based on searchMode:
├── mode = "recalls" or "both" ├── mode = "complaints" or "both"
│ │
▼ ▼
┌──────────────────────────┐ ┌──────────────────────────┐
│ Recalls Endpoint │ │ Complaints Endpoint │
│ /recalls/recallsByVehicle│ │ /complaints/ │
│ ?make=X&model=X │ │ complaintsByVehicle │
&modelYear=X │ │ ?make=X&model=X │
│ │ │ &modelYear=X │
│ Returns ALL results │ │ │
(no pagination needed) │ │ Returns ALL results │
└─────────┬────────────────┘ └─────────┬─────────────────┘
│ │
▼ │
┌──────────────────────────┐ │
│ Deduplication │ │
│ Key: campaignNumber + │ │
│ year + make + model │ │
│ Removes duplicate │ │
│ entries from API │ │
└─────────┬────────────────┘ │
│ │
▼ ▼
┌─────────────────────────────────────────────┐
│ Transform │
│ • Dates: DD/MM/YYYY → YYYY-MM-DD │
│ • Recalls: extract parkIt, parkOutside, │
│ overTheAirUpdate flags │
│ • Complaints: extract crash, fire, │
│ injuries, deaths from first product │
│ • Slice to maxResults │
└──────────────────┬──────────────────────────┘
┌─────────────────────────────────────────────┐
│ Output & Summary │
│ Recalls: top 5 components by frequency │
│ Complaints: crash/fire/injury/death counts │
└─────────────────────────────────────────────┘

API endpoints

ScenarioNHTSA EndpointParameters
Recalls by vehicle/recalls/recallsByVehiclemake, model, modelYear
Recalls by campaign/recalls/campaignNumbercampaignNumber
Complaints by vehicle/complaints/complaintsByVehiclemake, model, modelYear

All NHTSA endpoints return all matching results in a single response (no pagination). The actor only makes 1--2 HTTP requests per run.

Deduplication

The NHTSA recall API can return duplicate entries when a single campaign covers multiple vehicle variants. The actor deduplicates by constructing a key from ${campaignNumber}-${year}-${make}-${model} and keeping only the first occurrence.

"Both" mode budget

In "both" mode, recalls are fetched first and consume from the maxResults budget. Complaints then fill the remaining budget. For example, with maxResults: 200, if 80 recalls are found, up to 120 complaints will be included.

How much does it cost to use?

ScenarioRecordsAPI callsTimeEst. cost
Single make/model recalls~501~5 sec~$0.001
Both recalls + complaints~2002~10 sec~$0.003
Large make (all models)~2,0001-2~15 sec~$0.005
Maximum extraction10,0001-2~30 sec~$0.01

The NHTSA API is completely free. Apify's free tier includes $5 of monthly platform usage.

Limitations

  1. Single vehicle per run -- Each run searches one make/model/year combination. To search multiple vehicles, run the actor multiple times.
  2. No date range filter -- The NHTSA API does not support date range filtering. All matching records are returned and sliced by maxResults.
  3. Campaign lookup disables complaints -- When using campaignNumber, only recall data is returned. Complaints require a make/model search.
  4. Uppercase vehicle names -- NHTSA stores make/model in uppercase (e.g., "TESLA", "FORD"). Search input is case-insensitive, but output will be uppercase.
  5. Exact model names required -- Model names must match NHTSA records exactly. "F-150" works but "F150" may not.
  6. No VIN lookup -- The actor searches by make/model/year, not by VIN. For VIN-specific recall lookups, check NHTSA.gov directly.
  7. Complaint data varies -- Not all complaint fields are filled in by consumers. Some records may have sparse data.
  8. "Both" mode shares maxResults -- In "both" mode, recalls and complaints share the same budget. Increase maxResults for complete coverage.

Responsible use

  • NHTSA data is public information maintained by the U.S. government. Use it responsibly for safety research, consumer protection, and vehicle analysis.
  • Recalls do not always indicate a dangerous vehicle. Many recalls are preventive measures for minor issues. Check the classification and consequence fields for severity.
  • Consumer complaints are unverified reports. They represent individual consumer experiences and are not validated by NHTSA.
  • When publishing safety data, provide appropriate context about recall severity and complaint verification status.

FAQ

Do I need an API key? No. The NHTSA API is completely free and open.

How current is the data? The NHTSA API provides real-time data. New recalls typically appear within days of being filed.

What does "Park It" mean? The "Park It" flag indicates a recall so serious that NHTSA recommends owners stop driving the vehicle immediately until the recall repair is completed. "Park Outside" means the vehicle should not be parked in a garage due to fire risk.

Can I search multiple vehicles in one run? No. Each run searches one make/model/year combination. Use the Apify API to orchestrate batch runs for multiple vehicles.

Does this cover non-US vehicles? NHTSA covers vehicles sold in the United States, regardless of where they were manufactured.

The output dataset can be exported in JSON, CSV, or Excel format, or accessed programmatically via the Apify API. Use webhooks to trigger automated workflows when a run completes.

Related ActorDescriptionUse with
CPSC Product Recall MonitorConsumer product safety recallsComplete US product safety monitoring
FDA Food Recall MonitorFDA food safety recallsMulti-agency recall tracking
FDA Medical Device Recall SearchMedical device recallsCross-product safety monitoring
Website Change MonitorTrack web page changesMonitor NHTSA investigation pages for updates

Connect with any Apify integration including Google Sheets, Zapier, Make (Integromat), Amazon S3, and custom API endpoints to build automated vehicle safety monitoring workflows.