Vehicle Safety & Reliability Intelligence (NHTSA) avatar

Vehicle Safety & Reliability Intelligence (NHTSA)

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Vehicle Safety & Reliability Intelligence (NHTSA)

Vehicle Safety & Reliability Intelligence (NHTSA)

Recalls, owner complaints and crash-test ratings for any vehicle or VIN — with severity scoring, complaint trends and alerts when a new recall or do-not-drive order appears.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Sasha Ebashu

Sasha Ebashu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Give it a VIN, a year/make/model, or a whole marque — get back everything the U.S. safety regulator knows about that vehicle, scored and ready to act on: recalls, owner complaints and crash-test ratings, in one row per vehicle.

Built on NHTSA's public APIs. No key, no login, no scraping of a site that might block you.

What makes this more than a data dump

  • Do-not-drive alerts surfaced. NHTSA flags its most severe recalls as Park It (stop driving now) and Park Outside (fire risk — don't park in a garage). Those become top-level hasParkItRecall / hasParkOutsideRecall fields instead of being buried in campaign text.
  • A severity score, not a complaint count. 400 complaints about a squeaky trim panel is not 400 complaints about stalling in traffic. Each complaint is weighted: 1 base + 3 if crash + 5 if fire + 10 per injury + 100 per death. The formula is published here on purpose — you can defend the number to a client or recompute it yourself.
  • Trend, not just history. complaintsLast30d, Last90d and Last365d show whether a problem is emerging. A spike here typically precedes a recall, which is the whole point of watching.
  • The failing parts, ranked. topComponents — for a 2020 Camry: electrical 39, air bags 36, engine 21.
  • VIN in, intelligence out. Paste the VINs you already have; they are decoded to year/make/model for you, 50 per request, and the body style, engine and plant come along for free.

Monitor mode

Run it on a schedule and each vehicle is labelled against the previous run:

changeTypeMeans
park_it_recallA do-not-drive recall just appeared — the alert that matters most
new_recallA new recall campaign was published (listed in newRecallCampaigns)
rating_changeThe crash-test star rating moved
complaint_spikeMore owner complaints than last run
newFirst time seen in this scope
unchangedNothing moved

park_it_recall is checked before everything else, because a human reading the output needs to see that first. Turn on Output only changed vehicles to get a pure alert feed.

Input

Mix and match — all three are optional and can be combined:

FieldWhat it does
VINsA fleet list. Decoded automatically; undecodable VINs are reported and skipped.
Vehicles{"modelYear": 2020, "make": "Toyota", "model": "Camry"}.
Whole makes + Model yearsEvery model of a make for those years. Leave the years empty and the Actor picks the newest year NHTSA actually answers for — the current model year is listed in their catalogue before the data exists, so asking for it returns nothing.
Include owner complaintsThe reliability signal, and the heaviest call. Off = fast recalls-and-ratings pass.
Include crash-test ratingsStars, rollover, driver-assist equipment, crash photo/video. Two extra requests per vehicle.
Monitor mode / Output only changedThe alert behaviour above.

Notes & limits

Properties of the source, measured rather than assumed:

  • Investigations are not available. NHTSA publishes no public investigations endpoint — the URL that looks like one answers 403 Missing Authentication Token. The crash-rating record does carry an InvestigationCount, but the underlying cases cannot be fetched, so this Actor does not pretend to have them.
  • Complaints cannot be filtered by date at the source. startDate, fromDate and dateComplaintFiled were each tested and all return the identical count, so every run pulls the full complaint history and the trend windows are computed locally. That is why complaints are the expensive part of a large monitoring job.
  • VINs decode 50 at a time. A batch of 60 comes back with zero results, so requests are chunked at 50.
  • A model year can have several rated body styles. Each has its own stars; the Actor reports the first and tells you how many exist in ratedVariantsAvailable, rather than silently picking one.
  • Body styles are collapsed to one row per vehicle. NHTSA lists a pickup once per cab and fuel type — F-150 (REGULAR CAB) GAS, (SUPER CAB) GAS, (SUPER CREW) GAS — and returns the same complaints for each. Left alone, one truck fills three rows with identical numbers and anyone summing the make triples its count, so they are merged and the source names listed in complaintModelVariants. Different powertrains stay separate: F-150, F-150 LIGHTNING BEV and F-150 HEV are three vehicles, not one, and their complaints are never mixed.
  • A clean vehicle gets a row, not silence. No recalls and no complaints is an answer — it is what "is this one safe?" is asking — so it comes back with hasKnownIssues: false. It also means monitor mode holds a baseline for that vehicle, so its first recall later arrives as new_recall rather than as a brand-new row.
  • Whole-make expansion reads both of NHTSA's model lists. The catalogue is split by issue type: one list of models with recalls, another of models with complaints. Both are merged, so a car people complain about but that was never recalled — the one an early-warning tool exists to find — is not missed.
  • Make and model spelling must match NHTSA's catalogue. An unknown name answers HTTP 400 (not an empty result), and is reported as a warning instead of becoming an empty row.
  • The API is public and effectively unthrottled — 11 of 12 rapid calls succeeded and the one miss retried clean — so failures are treated as transient and retried, never as "no data".
  • The Actor honours your Maximum cost per run and stops when the cap is reached.