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

21 hours ago

Last modified

Share

PunkRecordsData

NHTSA Vehicle Safety Aggregator pulls recalls, consumer complaints, crash-test ratings, VIN decodes and safety investigations from NHTSA's own public APIs. Enter make, model and year, or a VIN, 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 or empty searches.

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, 362 consumer complaints, a 5-star crash-test rating with photo and video links, plus any matching NHTSA safety investigations. A VIN returns a spec sheet with 44 decoded fields. It is built for used-car marketplaces, insurers, fleet managers and journalists.

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

  • Looks up NHTSA recalls by make, model and model year.
  • Collects NHTSA consumer complaints filed against that vehicle.
  • Returns NHTSA crash-test safety ratings (overall, front, side, rollover) for every tested trim.
  • Decodes a VIN into engine, transmission, body class, plant and 40+ other fields.
  • Matches NHTSA safety investigations that name your make or model.
  • Mixes the record types so even a 10-row run shows every source.

Data comes from api.nhtsa.gov and vpic.nhtsa.dot.gov, the National Highway Traffic Safety Administration's own APIs. No HTML scraping, no proxy needed.

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

Every row has a recordType field. Fields with no value are left out, so rows contain no placeholder columns.

Record typeKey fields
recall-recordcampaignNumber, component, reportReceivedDate, summary, consequence, remedy, parkIt, parkOutside, overTheAirUpdate
complaint-recordodiNumber, components, summary, dateOfIncident, dateComplaintFiled, crash, fire, numberOfInjuries, numberOfDeaths, vin
safety-rating-recordvehicleDescription, overallRating, overallFrontCrashRating, overallSideCrashRating, rolloverRating, rolloverPossibility, driver-assist flags, crashTestMedia
vin-decode-recordvin, make, model, modelYear, trim, bodyClass, engineCylinders, fuelTypePrimary, plantCountry, additionalSpecs
investigation-recordnhtsaId, investigationType, subject, description, status, openDate, latestActivityDate, matchedKeyword

🧾 Sample output (real rows)

A real recall-record and safety-rating-record from a run on a 2020 Honda Accord (long text shortened here):

{
"recordType": "recall-record",
"make": "HONDA",
"model": "ACCORD",
"modelYear": "2020",
"manufacturer": "Honda (American Honda Motor Co.)",
"campaignNumber": "20V771000",
"component": "ELECTRICAL SYSTEM:BODY CONTROL MODULE:SOFTWARE",
"reportReceivedDate": "10/12/2020",
"consequence": "Various system malfunctions such as inoperative windshield wipers, defroster, rearview camera, or exterior lighting can increase the risk of a crash.",
"parkIt": "No",
"parkOutside": "No",
"overTheAirUpdate": "No"
}
{
"recordType": "safety-rating-record",
"vehicleDescription": "2020 Honda ACCORD 4 DR FWD",
"vehicleId": 14818,
"overallRating": "5",
"overallFrontCrashRating": "5",
"overallSideCrashRating": "5",
"rolloverRating": "5",
"rolloverPossibility": 0.093,
"electronicStabilityControl": "Standard",
"forwardCollisionWarning": "Standard",
"laneDepartureWarning": "Standard",
"complaintsCount": 362,
"recallsCount": 5,
"investigationCount": 1,
"crashTestMedia": {
"frontCrashPicture": "https://static.nhtsa.gov/crashTest/images/2020/v10191P080.jpg",
"frontCrashVideo": "https://static.nhtsa.gov/crashTest/videos/2020/v10191C017.wmv"
}
}

πŸ’° How much does it cost to scrape NHTSA data?

Pay per event. You pay only for a record saved to your dataset. Error rows, "VIN could not be decoded" rows and searches with no results are free. Prices below are the Free-plan tier from the live Actor; paid Apify plans get small discounts.

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 362 complaints, so a full run of those two sources costs about $0.10 + $3.62 = $3.72. Set maxItems or Apify's maximum cost per run to cap spending. Free Apify accounts are limited to 10 items per run.

πŸ› οΈ How to scrape NHTSA recalls and ratings in 3 steps

  1. Open the Actor and enter Make, Model and Model Year (for example honda, accord, 2020), or paste a VIN.
  2. Set Max Items (default 10) and click Start.
  3. Download the dataset as CSV, Excel, JSON or XML, or read it through the API.

βš™οΈ Input

FieldTypeDefaultDescription
makestringhondaVehicle make
modelstringaccordVehicle model
modelYearinteger2020Model year, 1995 to 2027
vinstringnoneOptional VIN to decode (up to 17 characters)
maxItemsinteger10Total records across all types
{ "make": "honda", "model": "accord", "modelYear": 2020, "maxItems": 10 }

If you give a VIN and leave make, model and year at their defaults, only the VIN is decoded. Make, model and year must be given together. A run with no vehicle and no VIN, or an invalid VIN, fails immediately and charges nothing.

πŸ“¦ Output

Results are saved to the Apify dataset with an "All Records" table view. Records are interleaved round-robin across the record types, so maxItems: 10 returns a mix (for the Accord: recalls, complaints, safety ratings and investigations) instead of ten rows of one type. A search with no matching records finishes as succeeded with a status message and no charge. If NHTSA's APIs are down and nothing could be fetched, the run fails with a clear message and no charge.

βš–οΈ NHTSA data scraper vs alternatives

Prices measured from the public Apify Store listings:

ActorScopePrice
This ActorRecalls, complaints, ratings, VIN decode, investigations$0.01 to $0.02 per record
mooseandraven/nhtsa-vehicle-safety-monitorRecalls, complaints, ratings$0.003 to $0.006 per record, plus $0.05 per run
Single-purpose NHTSA actors (recalls, VIN decoder, ratings)One source eachabout $0.0015 to $0.01 per record

We are more expensive per row than most single-source NHTSA actors. What the extra buys: five sources in one run with a single schema, crash-test photo and video URLs, and investigation matching. If you only need recalls or only need a VIN decode, a single-purpose actor is cheaper.

πŸ’Ό Use cases

  • Used-car marketplaces: show recall status and star ratings beside every listing.
  • Insurance and fleet management: screen VINs and models for open recalls and investigations.
  • Buying-guide apps: feed crash-test stars and driver-assist flags into comparisons.
  • Journalism and advocacy: track complaint volume and investigations per manufacturer.

πŸ”Œ Run via API, schedule and integrations

Call it with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/RecordsData~nhtsa-vehicle-safety-aggregator/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"make":"honda","model":"accord","modelYear":2020,"maxItems":10}'

Use the Apify client for Python or JavaScript, schedule weekly runs to catch new recalls, and connect results to Zapier, Make, n8n or Google Sheets. The Actor is also usable by AI agents through the Apify MCP server.

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

❓ Frequently asked questions

Does it return only recalls? No. It returns recalls, complaints, crash-test ratings, VIN decodes and safety investigations, identified by recordType.

Do I need an NHTSA API key? No. The NHTSA APIs used here need no key and the Actor needs no login.

Do I need a VIN or is make, model and year enough? Either works. Make, model and year return recalls, complaints, ratings and investigations. A VIN returns a decoded spec sheet. You can give both.

Why did I get 0 results? Usually the make, model or year does not exist in NHTSA data (try the exact model name, such as "f-150"), or NHTSA has no records for it. You are not charged for empty searches. If NHTSA's service is down, the run fails and nothing is charged.

Why do investigation results look approximate? NHTSA's investigations endpoint has no vehicle filter. The Actor scans the 500 most recent investigations and matches your make or model as a whole word in the subject and description. It is not the full historical archive.

What if NHTSA has not crash-tested my trim? You get ratings only for trims NHTSA tested. Untested trims produce no row.

Can I decode several VINs in one run? One VIN per run. Run the Actor once per VIN for batches.

Are injury and death counts verified? No. They are self-reported in the complaint and not verified by NHTSA or this Actor.

How fresh is the data? It is read live from NHTSA at run time, so it is as current as NHTSA's own APIs.

πŸ”— Want more public records data? Other PunkRecordsData scrapers

πŸ†˜ Support

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

Last updated: 2026-10-03