NHTSA Vehicle Safety Scraper — Recalls, Complaints & VIN avatar

NHTSA Vehicle Safety Scraper — Recalls, Complaints & VIN

Pricing

from $1.50 / 1,000 results

Go to Apify Store
NHTSA Vehicle Safety Scraper — Recalls, Complaints & VIN

NHTSA Vehicle Safety Scraper — Recalls, Complaints & VIN

Scrape NHTSA vehicle recalls, owner complaints, 5-star safety ratings and VIN decode data by make, model and year. Keyless official US government data. No API key, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Pull official US vehicle-safety data — recalls, consumer complaints, 5-star crash ratings, and full VIN decodes — straight from NHTSA, with no API key and no login.

What does this scraper do?

This scraper collects vehicle-safety data directly from the National Highway Traffic Safety Administration (NHTSA), the US government agency that regulates road safety. It talks to two official open-data engines — api.nhtsa.gov (recalls, complaints, and 5-star safety ratings) and vpic.nhtsa.dot.gov (VIN decoding) — and returns clean, structured records you can drop straight into a spreadsheet, database, or dashboard.

You choose one of four data types, then either list the vehicles you care about as Make|Model pairs with a model-year range, or paste in a batch of VINs. Because this is US government open data, there is no API key, no token, and no login — you just run it. And it scales: a single run routinely yields hundreds to thousands of records (for example, 340 complaints for one popular model-year), so you can build a full safety picture across a whole inventory or research set in one pass.

Who is it for?

  • Car dealers & marketplaces — flag open recalls and safety issues across your inventory before a car hits the lot or a listing goes live.
  • Insurers & actuaries — enrich policies and pricing models with real complaint counts, crash/fire flags, injury/death data, and crash-test ratings.
  • Product-liability & lemon-law attorneys — gather documented complaint and recall evidence tied to a specific make, model, year, or VIN.
  • Automotive researchers & journalists — analyze safety trends by component, manufacturer, or model year with real, citable government data.
  • Fleet & safety managers — monitor the vehicles you operate for "do-not-drive" recalls and emerging defect patterns.

Use cases

  • Recall monitoring for a dealer's inventory — cross a list of the makes/models you stock against every year in range and surface open recall campaigns, including urgent park-it (do-not-drive) alerts.
  • Complaint-trend analysis by component — pull complaints for a model line and group them by component (transmission, electrical, airbags) to spot systemic defects early.
  • Safety-rating comparison tables — build side-by-side 5-star tables (overall, front, side, rollover) to compare competing models for buyers or editorial content.
  • VIN enrichment for listings & insurance — decode VINs in bulk to fill in make, model, trim, engine, drivetrain, and plant details for marketplace listings or policy records.
  • Litigation evidence gathering — assemble complaint ODI numbers, incident dates, injury/death counts, and recall campaign numbers as documented, government-sourced evidence.

Why use this scraper?

  • Keyless official data — pulls directly from NHTSA's public endpoints. No API key, no login, no rate-limit token juggling.
  • Four datasets in one — recalls, complaints, 5-star safety ratings, and VIN decode, all behind a single dataType switch.
  • Bulk by make / model / year — list any number of vehicles and cross each one with every year in your range in a single run.
  • Real numbers and booleans — injury and death counts, crash/fire flags, and do-not-drive / park-outside flags come through as actual integers and booleans, not free text.
  • Full VIN decode — turn a 17-character VIN (or a partial VIN with *) into 20+ structured fields including engine, drivetrain, body class, and plant.
  • Export anywhere, pay per result — results export to CSV, JSON, or Excel, and you only pay for the records you actually get.

What data can you extract?

Every record shares a common core — dataType, make, model, modelYear, manufacturer, recordId, url, and scrapedAt — plus fields specific to the data type you chose. Here is what each type returns.

Recalls

FieldTypeDescription
campaignNumberstringNHTSA recall campaign ID (e.g. 23V070000)
componentstringAffected system (e.g. POWER TRAIN:AUTOMATIC TRANSMISSION)
summarystringWhat the defect is
consequencestringWhat can happen because of it
remedystringThe fix and whether it's free of charge
notesstringAdditional manufacturer notes
reportReceivedDatestringDate NHTSA received the report
parkItboolDo-not-drive warning
parkOutsideboolPark-outside (fire risk) warning
overTheAirUpdateboolRemedy delivered as an OTA software update

Complaints

FieldTypeDescription
odiNumberintNHTSA complaint ID (ODI number)
crashboolA crash was reported
fireboolA fire was reported
numberOfInjuriesintReported injuries
numberOfDeathsintReported deaths
dateOfIncidentstringWhen the incident occurred
dateComplaintFiledstringWhen the complaint was filed
vinstringPartial VIN, if provided
componentsstringAffected component(s)
summarystringThe consumer's description
productsarrayAssociated products/vehicles

Safety ratings (5-star)

FieldTypeDescription
vehicleIdintNHTSA vehicle identifier
vehicleDescriptionstringFull vehicle description
overallRatingstringOverall 5-star rating
overallFrontCrashRatingstringFront crash rating
overallSideCrashRatingstringSide crash rating
rolloverRatingstringRollover rating
sidePoleCrashRatingstringSide pole crash rating
frontCrashDriversideRatingstringDriver-side front crash rating
frontCrashPassengersideRatingstringPassenger-side front crash rating
electronicStabilityControlstringESC availability
forwardCollisionWarningstringFCW availability
laneDepartureWarningstringLDW availability

VIN decode

FieldTypeDescription
vinstringThe VIN you submitted
make / model / modelYearstring/intDecoded make, model, year
manufacturerstringManufacturer name
vehicleTypestringVehicle type
bodyClassstringBody class (e.g. SUV/MPV)
series / trimstringSeries and trim level
doorsintNumber of doors
engineCylindersintCylinder count
displacementLstringEngine displacement (liters)
fuelTypePrimarystringPrimary fuel type
driveTypestringDrivetrain (FWD/RWD/AWD)
transmissionStylestringTransmission style
engineHPstringEngine horsepower
plantCountry / plantCitystringAssembly plant location
gvwrstringGross vehicle weight rating class

Real output samples for complaints, recalls, and VIN decode are shown in the Output example section below.

How to use

Option A — Complaints or recalls by vehicle list + year range

  1. Set dataType to complaints or recalls.
  2. In vehicles, list the cars you care about using the Make|Model pipe format — for example Toyota|Camry, Ford|F-150. (Plain Make Model works too, but the pipe is more precise.)
  3. Set yearFrom and yearTo to define the model-year range. Each vehicle is crossed with every year in that range.
  4. Optionally raise maxResults if you expect a large haul.
  5. Run it.
{
"dataType": "complaints",
"vehicles": ["Honda|Accord", "Toyota|Camry", "Ford|F-150"],
"yearFrom": 2020,
"yearTo": 2024,
"maxResults": 1000
}

Option B — VIN decode

  1. Set dataType to vin-decode.
  2. In vins, paste your VINs — full 17-character VINs, or partial VINs using * as a wildcard (e.g. 5UXWX7C5*BA).
  3. Run it. Each VIN returns a full set of decoded specifications.
{
"dataType": "vin-decode",
"vins": ["1HGCV1F13MA123456", "5UXWX7C5*BA", "JTMBFREV0JD123456"]
}

Input parameters

ParameterTypeDefaultDescription
dataTypeselect (complaints, recalls, safety-ratings, vin-decode)complaintsWhich NHTSA dataset to pull
vehiclesarray of stringspopular US modelsMake|Model pairs (e.g. Toyota|Camry); plain Make Model also works. Each is crossed with every year in range. Empty = popular US models
yearFrominteger2018First model year
yearTointeger2024Last model year
vinsarray of stringsVINs for vin-decode mode (17-char or partial with *)
maxResultsinteger500Maximum records to return
proxyConfigurationobjectOptional. The API is open, so proxy is not required

Full input JSON:

{
"dataType": "complaints",
"vehicles": ["Toyota|Camry", "Ford|F-150"],
"yearFrom": 2018,
"yearTo": 2024,
"vins": [],
"maxResults": 500,
"proxyConfiguration": { "useApifyProxy": true }
}

Output example

Complaint

{
"dataType": "complaint",
"make": "Honda",
"model": "Accord",
"modelYear": 2022,
"odiNumber": 11752366,
"manufacturer": "Honda (American Honda Motor Co.)",
"crash": false,
"fire": false,
"numberOfInjuries": 0,
"numberOfDeaths": 0,
"dateOfIncident": "09/23/2024",
"dateComplaintFiled": "07/23/2026",
"vin": "1HGCV3F24NA",
"components": "UNKNOWN OR OTHER",
"summary": "Infotainment is unresponsive and also ghost touches on its own...",
"url": "https://www.nhtsa.gov/?nhtsaId=11752366",
"scrapedAt": "2026-07-26T10:36:41Z"
}

Recall

{
"dataType": "recall",
"make": "Ford",
"model": "F-150",
"modelYear": 2023,
"campaignNumber": "23V070000",
"manufacturer": "Ford Motor Company",
"component": "POWER TRAIN:AUTOMATIC TRANSMISSION",
"summary": "...loose bolt which could prevent the transmission from engaging the park gear...",
"consequence": "...can result in a rollaway, increasing the risk of a crash or injury.",
"remedy": "Dealers will inspect and, if necessary, replace the transmissions, free of charge...",
"url": "https://www.nhtsa.gov/recalls?nhtsaId=23V070000",
"scrapedAt": "2026-07-26T10:37:00Z"
}

VIN decode

{
"dataType": "vin-decode",
"vin": "5UXWX7C5*BA",
"make": "BMW",
"model": "X3",
"modelYear": 2011,
"bodyClass": "Sport Utility Vehicle [SUV]/Multipurpose Vehicle [MPV]",
"trim": "xDrive35i",
"doors": 4,
"engineCylinders": 6,
"displacementL": "3.0",
"fuelTypePrimary": "Gasoline",
"driveType": "AWD/All-Wheel Drive",
"engineHP": "300",
"plantCountry": "GERMANY",
"plantCity": "MUNICH",
"gvwr": "Class 1D: 5,001 - 6,000 lb",
"scrapedAt": "2026-07-26T10:38:12Z"
}

Tips for best results

  • Use the Make|Model pipe format for precision — it maps cleanly to NHTSA's make and model fields and avoids ambiguity in multi-word names.
  • Widen the year range (yearFrom / yearTo) to pull more volume; each extra year multiplies the records per vehicle.
  • Watch the parkIt and parkOutside flags on recalls — these mark do-not-drive and park-outside (fire-risk) campaigns that need immediate action.
  • Use crash, fire, numberOfInjuries, and numberOfDeaths to triage complaints by severity and surface the serious ones first.
  • Use * wildcards in VINs when you only have a partial or a squished VIN pattern — the decoder still returns model-level specs.
  • Combine complaints and recalls for the same vehicle list to see both what owners report and what the manufacturer has officially acknowledged.
  • Sort by dateComplaintFiled to catch the most recent complaints and spot emerging issues before they become recalls.
  • Raise maxResults when covering a big inventory or a popular model — a single model-year can produce hundreds of complaints.
  • Leave vehicles empty for a quick sample of popular US models when you're exploring the data.
  • Skip the proxy unless you're running very large batches — the NHTSA API is open and usually needs no proxy at all.

Integrations

Connect the results to the rest of your stack:

  • Google Sheets — push records into a sheet for review or reporting.
  • Slack — post recall or high-severity complaint alerts to a channel.
  • Zapier and Make — trigger downstream workflows on every new record.
  • Webhooks — send run results to your own endpoint in real time.
  • Schedule — run daily or weekly to keep a recall/complaint feed fresh for your inventory.

API usage

Run the scraper programmatically via the Apify API. Replace YOUR_API_TOKEN with your token.

cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~nhtsa-vehicle-safety-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"dataType": "recalls",
"vehicles": ["Ford|F-150", "Toyota|Camry"],
"yearFrom": 2020,
"yearTo": 2024,
"maxResults": 500
}'

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('logiover/nhtsa-vehicle-safety-scraper').call({
dataType: 'complaints',
vehicles: ['Honda|Accord', 'Toyota|Camry'],
yearFrom: 2020,
yearTo: 2024,
maxResults: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("logiover/nhtsa-vehicle-safety-scraper").call(run_input={
"dataType": "vin-decode",
"vins": ["5UXWX7C5*BA", "1HGCV1F13MA123456"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Use with AI agents (MCP)

This scraper works as a tool for AI agents through the Apify MCP (Model Context Protocol) server, so an LLM-powered assistant can call it on demand and reason over the results. Point your MCP-capable agent at the Apify MCP server, and it can invoke logiover/nhtsa-vehicle-safety-scraper directly.

Example prompt:

"Pull open NHTSA recalls for the 2021–2024 Ford F-150 and Toyota Camry, and list any do-not-drive campaigns first."

FAQ

Is it keyless — do I need an API key or login?

No. It pulls from NHTSA's public open-data endpoints, so there is no API key, token, or login required.

Which datasets does it cover?

Four: consumer complaints, safety recalls, 5-star safety ratings, and full VIN decode. You pick one per run with the dataType parameter.

Is the data US only?

Yes. NHTSA is the US federal road-safety regulator, so the data covers vehicles sold and reported in the United States.

How many records can one run return?

Hundreds to thousands. A single popular model-year can produce hundreds of complaints on its own (for example, 340 complaints for one model), and crossing multiple vehicles with a wide year range multiplies that.

What is a campaign number and an ODI number?

A campaign number (e.g. 23V070000) is NHTSA's unique ID for a recall. An ODI number is the unique ID for a consumer complaint filed with NHTSA's Office of Defects Investigation.

Are the injury, death, and crash figures real numbers?

Yes. numberOfInjuries and numberOfDeaths come through as integers, and crash, fire, parkIt, and parkOutside as booleans — not free text — so you can filter and aggregate directly.

How do I find do-not-drive recalls?

Filter recall records where parkIt is true (do-not-drive) or parkOutside is true (fire risk). These flag the most urgent campaigns.

How accurate is the VIN decode?

It uses NHTSA's official vPIC decoder, the same engine behind government VIN lookups. It accepts full 17-character VINs and partial VINs with a * wildcard, returning make, model, year, trim, engine, drivetrain, plant, and more.

Can I export the results?

Yes — CSV, JSON, or Excel, plus direct API access. You only pay for the records you actually get.

Yes. NHTSA data is US government open data in the public domain. See the Is it legal? section below.

How fresh is the data?

It's pulled live from NHTSA at run time, so you get the latest recalls and complaints on record. Schedule the run to keep a rolling, up-to-date feed.

Yes — see Related scrapers for other official-data tools like SEC EDGAR, FDA data, USASpending, and more.

Yes. All data returned by this scraper comes from the National Highway Traffic Safety Administration (NHTSA), a US federal agency, and is US government open data in the public domain. NHTSA publishes recalls, complaints, safety ratings, and VIN-decode information for public use through its open APIs. This scraper only accesses that publicly available government data and does not require login credentials or bypass any access controls. As always, review how you use and redistribute the data to ensure it fits your specific use case and jurisdiction.

Explore other official-data scrapers from logiover:

  • SEC EDGAR — US company filings, financials, and disclosures.
  • FDA Data — drug, device, and food safety records.
  • USASpending — US federal spending, contracts, and awards.
  • ClinicalTrials — registered clinical study data.
  • Grants.gov — US federal grant opportunities.