NHTSA Recalls, VIN Decoder, Ratings & Investigations avatar

NHTSA Recalls, VIN Decoder, Ratings & Investigations

Pricing

from $17.00 / 1,000 recall records

Go to Apify Store
NHTSA Recalls, VIN Decoder, Ratings & Investigations

NHTSA Recalls, VIN Decoder, Ratings & Investigations

Scrape NHTSA recalls, consumer complaints, crash-test safety ratings, VIN decodes and safety investigations for any US vehicle by make, model, year or VIN. Export CSV, Excel, JSON or XML. No login or API key. 2020 Honda Accord: 5 recalls, 362 complaints.

Pricing

from $17.00 / 1,000 recall records

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

RecordsData

NHTSA Vehicle Safety Aggregator pulls recalls, consumer complaints, crash-test ratings, VIN decodes and safety investigations from NHTSA's own public APIs. Search one vehicle, a list of up to 500 vehicles, a list of up to 1,000 VINs or recall campaign numbers, and export CSV, Excel, JSON or XML. No login, no API key. Priced per record: $0.01 to $0.02 per row, nothing for errors, empty searches or already-seen rows.

NHTSA Vehicle Safety Aggregator is an Apify Actor that returns up to five kinds of US vehicle safety records in one dataset. A 2020 Honda Accord query returns 5 recall campaigns, 363 consumer complaints, a 5-star crash-test rating with photo and video links, plus any matching safety investigations. A VIN returns a spec sheet with 44 decoded fields. Built for used-car marketplaces, insurers and fleet managers.

๐Ÿš— NHTSA vehicle safety scraper: what does it do?

It looks up NHTSA recalls by vehicle or campaign number (short 16V061 or full 16V061000), collects consumer complaints (filterable by severity), returns crash-test safety ratings for every tested trim, decodes VINs, and matches safety investigations that name your make or model. Lists of up to 500 vehicles and 1,000 VINs are mixed round-robin, so even a 10-row run shows every vehicle and source. Source switches, date and component filters and an only-new mode are included. Data comes from api.nhtsa.gov and vpic.nhtsa.dot.gov.

๐Ÿ“Š What data can you extract from NHTSA?

Every row has a recordType field. Fields with no value are left out. The dataset schema lists 93 columns (92 data columns plus error), with five per-type views (Recalls, Complaints, Safety Ratings, Investigations, VIN Decodes). Dates are kept as NHTSA writes them and also given as ISO YYYY-MM-DD (for example reportReceivedDateIso). An empty search succeeds with a status message and no charge.

Record typeKey fields
recall-recordcampaignNumber, component, reportReceivedDate, summary, consequence, remedy, parkIt, overTheAirUpdate, potentialUnitsAffected, affectedVehicles
complaint-recordodiNumber, components, summary, dateOfIncidentIso, crash, fire, numberOfInjuries, numberOfDeaths, vin
safety-rating-recordvehicleDescription, overallRating, front, side, side-pole and rollover ratings, driver-assist flags, crashTestMedia
vin-decode-recordvin, make, model, modelYear, trim, bodyClass, engineCylinders, engineHorsepower, electrificationLevel, additionalSpecs
investigation-recordnhtsaId, investigationTypeLabel, statusLabel, subject, description, openDate, matchedKeyword

๐Ÿงพ Sample output (real rows)

A recall-record from a run on a 2020 Honda Accord:

{
"recordType": "recall-record",
"make": "HONDA",
"modelYear": "2020",
"campaignNumber": "20V771000",
"component": "ELECTRICAL SYSTEM:BODY CONTROL MODULE:SOFTWARE",
"consequence": "Various system malfunctions can increase the risk of a crash.",
"parkIt": "No"
}

๐Ÿ’ฐ How much does it cost to scrape NHTSA data?

Pay per event, only for records saved to your dataset. Error rows, undecodable VINs, empty searches and records skipped by only-new mode are free. Prices are the Free-plan tier; Bronze, Silver and Gold get small discounts (for example recall $0.019, $0.018, $0.017).

EventPrice per recordPer 1,000 records
Recall record$0.020$20
Complaint record$0.010$10
Safety rating record$0.015$15
VIN decode record$0.0125$12.50
Investigation record$0.010$10

Example: the 2020 Honda Accord has 5 recalls and 363 complaints, so those two sources cost about $0.10 + $3.63 = $3.73. Turn complaints off or cap them with maxComplaintsPerVehicle to keep it small. For 1,000 results (Free tier): 1,000 recall records cost 1,000 x $0.02 = $20.00, and 1,000 complaint records cost 1,000 x $0.01 = $10.00. Set maxItems or a maximum cost per run to cap spending. Free accounts: 10 items per run.

๐Ÿ› ๏ธ How to scrape NHTSA recalls and ratings in 3 steps

  1. Enter Make, Model and Model Year (honda, accord, 2020), or fill the Vehicles, VINs or Campaign numbers lists.
  2. Set Max Items and click Start.
  3. Download the dataset as CSV, Excel, JSON or XML.

โš™๏ธ Input

FieldTypeDefaultDescription
make, model, modelYearstring, string, integerhonda, accord, 2020One vehicle (1995 to 2027); give all three
vehiclesarraynoneUp to 500 vehicles, as objects or "make,model,year" strings
vin, vinsstring, arraynoneOne VIN, or up to 1,000 VINs
expandVinToVehiclebooleanfalseAlso fetch each VIN vehicle's recalls, complaints, ratings and investigations
campaignNumbersarraynoneRecall campaigns, short or full; one row per campaign
enrichRecallsbooleanfalseAdd units affected to recalls found by vehicle
includeRecalls, includeComplaints, includeRatings, includeInvestigationsbooleantrueSource switches
maxComplaintsPerVehicleinteger0Complaint cap per vehicle; 0 = no cap
complaintSeveritystringanycrash, fire, injury or death
dateFrom, dateTostringemptyYYYY-MM-DD or relative: 30d, 6m, 5y, ytd
componentKeywordsarraynoneFilter by component, or investigation subject and text
investigationScanstringrecentrecent reads 500; all reads the archive of 4,182
onlyNew, stateKey, resetSeenboolean, string, booleanfalse, empty, falseOnly-new monitoring, memory label, reset
maxItemsinteger10Total records across all vehicles and types
{
"vehicles": [
{ "make": "ford", "model": "f-150", "modelYear": 2021 },
"toyota,camry,2019"
],
"includeComplaints": false,
"dateFrom": "5y",
"maxItems": 10
}

When vehicles, vins or campaignNumbers are set and Make, Model and Year are left at the defaults, the default vehicle is skipped. A run with no valid query, every source off with no VIN or campaign, an invalid date, or a single invalid vin fails immediately and charges nothing.

โš–๏ธ NHTSA data scraper vs alternatives

Read on 2026-10-10 from public Store pages:

CapabilityThis Actormooseandravendromb
SourcesRecalls, complaints, ratings, VIN, investigationsRecalls, complaints, ratingsRecalls, complaints, VIN; no ratings
Vehicle list, VIN listYes, 500 and 1,000Vehicle list; no VIN shownNot stated in their listing
Campaign number lookupYesNot stated in their listingYes, plus ODI number
Date, severity filtersYesNot stated in their listingNot stated in their listing
New-only monitoringYes, skipped rows freeYes, $0.05 per runNot stated in their listing
Output fields923815
Price per 1,000 rows$10 to $20$3 to $6from $0.20

Both are cheaper per row: our recall is $0.02 against $0.003 at mooseandraven. This Actor fits when you need VIN decodes, investigations, units affected, date or severity filters or free empty monitor runs. It cannot look up a complaint by ODI number; dromb lists it. For only recalls and complaints at the lowest price, pick mooseandraven.

๐Ÿ’ผ Use cases

Used-car marketplaces, insurance and fleet screening of VIN lists, recall monitoring with only-new mode, buying-guide apps and journalism.

๐Ÿ”Œ Run via API, schedule and integrations

Call it with the Apify API, the Python or JavaScript client, schedule weekly runs with onlyNew, and connect results to Zapier, Make, n8n or Google Sheets.

๐Ÿค– NHTSA Vehicle Safety Aggregator MCP server for AI agents

AI agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/nhtsa-vehicle-safety-aggregator, which loads only this Actor as a tool.

Config: add the URL above as an apify server url in Claude Desktop, Cursor, VS Code or any remote-MCP client.

Example agent prompt: "Use the NHTSA Vehicle Safety Aggregator for a 2021 Ford F-150 and a 2019 Toyota Camry with includeComplaints false and maxItems 10, then list the open recall campaigns and the crash-test star ratings for both."

Tool description: returns NHTSA recalls, consumer complaints, crash-test ratings, safety investigations and VIN decodes for vehicles, VIN lists or recall campaign numbers, with date, severity and source filters. Use it for US vehicle safety data; it takes the same fields as the Input table.

NHTSA publishes this data through its own public APIs for public use, with no login, and the Actor collects only those records. Complaint text is written by consumers and may include a partial VIN; follow your local privacy rules. This is an independent tool, not affiliated with NHTSA.

โ“ Frequently asked questions

Does NHTSA Vehicle Safety Aggregator return only recalls?

No. It returns five kinds of US vehicle safety records from NHTSA's public APIs: recalls, consumer complaints, crash-test ratings, VIN decodes and safety investigations. Every row carries a recordType field (for example recall-record) so you can filter the mixed dataset by source, or switch sources off.

Do I need an NHTSA API key to scrape NHTSA data?

No. The actor calls the public NHTSA APIs, which need no key, and it needs no login or proxy. You only need an Apify account to run it, and Free accounts can return up to 10 items per run, enough to test the output.

Do I need a VIN or is make, model and year enough?

Either input works. Make, model and model year return recalls, complaints, crash-test ratings and investigations for that vehicle. A VIN returns a decoded spec sheet with engine, body class, plant and 40+ other fields. You can supply both, but make, model and year must be given together.

Why did NHTSA Vehicle Safety Aggregator return 0 results?

Usually the model name is not the one NHTSA uses (try the exact name, such as "f-150"), a date or severity filter removed everything, or NHTSA has no records for that vehicle. Empty searches are not charged. If NHTSA's service is down, the run fails with a clear message and no charge.

Why do the NHTSA investigation results look approximate?

NHTSA's investigations endpoint has no vehicle filter, so the actor matches your make or model as a whole word in the subject and description of the 500 most recent investigations. For older vehicles set investigationScan to all to read the whole archive of 4,182 records.

What if NHTSA has not crash-tested my trim?

The actor returns one safety-rating-record per trim that NHTSA actually tested, with overall, front, side and rollover stars plus crash-test photo and video URLs. Untested trims produce no rating row and no charge, so a missing rating means NHTSA has no test.

Can I decode several VINs in one run?

Yes. Put up to 1,000 VINs in the vins list and each becomes a vin-decode-record. A malformed VIN in a list becomes a free error row and the others still run; a single invalid vin fails the run with no charge. Set expandVinToVehicle to also fetch recalls, complaints and ratings.

Are injury and death counts in NHTSA complaints verified?

No. The numberOfInjuries and numberOfDeaths values in a complaint-record are self-reported by the consumer and are not verified by NHTSA or by this actor. Treat them as consumer claims, and note that complaint text may include a partial VIN, so apply your local privacy rules.

How fresh is the NHTSA data?

The actor reads NHTSA's APIs live at run time, so the data is as current as NHTSA's own services. Nothing is cached between runs, so a scheduled weekly run picks up new recall campaigns and newly filed complaints as soon as NHTSA publishes them.

Can I search several vehicles at once?

Yes. The vehicles input takes up to 500 vehicles, as objects or strings like "kia,sorento,2020". Rows are delivered round-robin, so a small maxItems still covers every vehicle. A malformed entry becomes a free error row, and the default Honda Accord 2020 is skipped when you use a list.

Can I look up recalls by campaign number?

Yes. Put numbers such as 16V061 or 16V061000 in campaignNumbers. You get one recall-record per campaign with potentialUnitsAffected and affectedVehicles. An unknown number becomes a free error row. For recalls found by vehicle, switch on enrichRecalls to add the same columns at no extra charge.

Can I turn off complaints or other sources?

Yes. includeRecalls, includeComplaints, includeRatings and includeInvestigations are all on by default, and a source switched off is not fetched. maxComplaintsPerVehicle caps complaints, which can number in the hundreds, without turning them off. If every source is off and no VIN or campaign is given, the run fails with no charge.

Can I filter by date, severity or component?

Yes. dateFrom and dateTo take YYYY-MM-DD or values like 30d, 6m, 5y, ytd and today. complaintSeverity keeps complaints with a crash, fire, injury or death. componentKeywords matches components, or the text of investigations. An invalid date fails the run before any charge.

How do I get only new recalls on each run?

Switch on onlyNew. The actor remembers what it delivered in a named store, nhtsa-vehicle-safety-seen, in your own Apify account, and skips those rows on later runs. Skipped rows are not charged. Use one stateKey per search, and set resetSeen once to start over.

Why does a model like F-150 now return more results?

NHTSA files many model years under trim names such as "F-150 SUPER CREW" and answers the plain model with an empty list. The actor now reads up to 8 models of that make and year that start with your model and removes duplicates. Complaints for an F-150 2015 went from 0 to 1,425, so such runs charge more rows, capped by maxItems.

How long and how costly is a whole-archive investigation scan?

With investigationScan set to all, the actor reads about 4,200 investigation records in 42 requests. It stops at maxItems when rows match and finishes in seconds; with no match it can take about 2 minutes and charges nothing. Keep recent unless the vehicle is old.

Can I look up a complaint by ODI number?

No. NHTSA offers no endpoint for that: complaints can only be read per vehicle (make, model and year). The actor returns the odiNumber on each complaint row. Another actor on the Store lists an ODI lookup; this one does not claim it. Recall campaigns can be looked up directly.

Did the column order change from the previous version?

Yes, slightly. No column was removed and the 74 older columns keep their names and relative order, but 19 new columns sit between them, for 93 in total. If a script reads the CSV or Excel export by column position, re-map it or read by column name. JSON is unaffected.

๐Ÿ”— Want more public records data? Other RecordsData scrapers

๐Ÿ†˜ Support

Bugs or custom needs: use the Issues tab or write to contact.punkrecordsdata@gmail.com.

Last updated: 2026-10-11