NHTSA Vehicle Safety API — Recalls, Complaints & Crash Ratings avatar

NHTSA Vehicle Safety API — Recalls, Complaints & Crash Ratings

Pricing

from $3.00 / 1,000 recall records

Go to Apify Store
NHTSA Vehicle Safety API — Recalls, Complaints & Crash Ratings

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

Moose & Raven

Maintained by Community

Actor 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 vehicles as 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, includeRatings independently.
  • 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-run event 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 (or rate-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 explicit complaints-truncated record surfaces the true total.
  • monitor-run is billed whenever the run wasn't silently/ambiguously incomplete — a disclosed complaints-truncated result 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-rating record) 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 delivered
  • monitor-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 install
npm test # recorded-fixture unit tests, no network needed
npx 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.