NHTSA Vehicle Safety API — Recalls, Complaints & Crash Ratings
Pricing
from $3.00 / 1,000 recall records
NHTSA Vehicle Safety API — Recalls, Complaints & Crash Ratings
Look up NHTSA vehicle recalls, owner complaints, and 5-Star crash-test safety ratings by make/model/year via official NHTSA and vPIC APIs. No API key required.
Pricing
from $3.00 / 1,000 recall records
Rating
0.0
(0)
Developer
Moose & Raven
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
42 minutes ago
Last modified
Categories
Share
Look up NHTSA vehicle recalls, owner complaints, and 5-Star crash-test safety ratings by make/model/year — backed entirely by the official NHTSA and vPIC APIs, no API key or account required, no scraping. Optional incremental monitor mode tracks new recalls and complaints across scheduled runs.
What makes this different
Bundles three separate NHTSA data sources nobody else bundles: recalls, owner complaints (ODI), and 5-Star crash-test safety ratings, by vehicle, in one actor with one consistent schema. Auto dealers, fleet managers, insurers, and used-car marketplaces typically care about all three signals together, not just recalls in isolation.
Zero account friction — both NHTSA's recall/complaint/rating APIs and the vPIC vehicle catalog work with no API key or account at all.
How it works
- Supply
vehiclesas an array of{ make, model, modelYear }objects. - Every vehicle is independently confirmed to exist against NHTSA's own official vehicle
catalog (vPIC's
GetModelsForMakeYear) before checking recalls/complaints/ratings. This matters because NHTSA's recall/complaint/rating APIs themselves return an identical "Results returned successfully, Count: 0" response for both a typo'd make/model AND a real vehicle with a genuinely clean record (confirmed live) — the existence check resolves that ambiguity up front. - Toggle
includeRecalls,includeComplaints,includeRatingsindependently. - Optional incremental monitor mode: remembers which recalls/complaints have already been
delivered per vehicle (by NHTSA's own stable IDs) and only reports genuinely NEW ones on later
runs. Safety ratings are re-delivered every run regardless of monitor mode — they rarely change
once published and there's no natural "new rating" event to detect. Charges one
monitor-runevent in addition to per-record events. - A failed fetch is never silently treated as "nothing new." Each stage's failure (existence
check, recalls, complaints, or ratings) pushes an explicit
fetch-failed(orrate-limited) status record — one vehicle's or one stage's problem doesn't hide results from the rest. maxComplaintsPerVehicle(default 500) is this actor's OWN cap, not NHTSA's — the real API returns every complaint in one response with no pagination (confirmed live even for a 3,600+-complaint vehicle). If a vehicle's real total exceeds the cap, an explicitcomplaints-truncatedrecord surfaces the true total.monitor-runis billed whenever the run wasn't silently/ambiguously incomplete — a disclosedcomplaints-truncatedresult still bills normally (a known, surfaced cap, not a blind spot); only a genuine fetch failure or rate-limit hit skips billing.
⚠️ Limitations
- Not every vehicle has all three data types. A confirmed-real vehicle with zero recalls, zero complaints, or no safety rating on file is a normal, legitimate result — not every trim/configuration was crash-tested by NHTSA, and a clean safety/complaint record is a real, good outcome, not an error. No status record is emitted just to say "nothing here" once existence has already been confirmed.
- Safety ratings cover crash-tested configurations only — a make/model/year can have multiple
rated body styles/drivetrains (each its own
safety-ratingrecord) or none at all. - Recall/complaint text is NHTSA's own free-text fields, not independently verified or summarized by this actor.
Pricing
Pay per event:
recall-record,complaint-record,safety-rating-record— per record deliveredmonitor-run— per scheduled monitor-mode run, in addition to per-record charges
Input
Key fields (see the Input tab for the full form): vehicles (required — array of
{make, model, modelYear}), includeRecalls, includeComplaints, includeRatings,
monitorMode, maxComplaintsPerVehicle.
Output
Each dataset item has a recordType of "recall", "complaint", "safety-rating",
"vehicle-not-found", "fetch-failed", "rate-limited", or "complaints-truncated". See the
Output tab for the full field reference.
Local development
npm installnpm test # recorded-fixture unit tests, no network needednpx apify-cli run # local end-to-end run — works immediately, no key/account needed
Support
Built and maintained by Moose & Raven. Questions or issues: support@mooseandraven.com.