NHTSA Vehicle Recalls & Complaints avatar

NHTSA Vehicle Recalls & Complaints

Pricing

from $3.00 / 1,000 safety record returneds

Go to Apify Store
NHTSA Vehicle Recalls & Complaints

NHTSA Vehicle Recalls & Complaints

Returns every NHTSA safety recall and consumer complaint for a US vehicle, by VIN or by make, model and year. Dates normalized to ISO 8601.

Pricing

from $3.00 / 1,000 safety record returneds

Rating

0.0

(0)

Developer

Nico Poland

Nico Poland

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Returns every NHTSA safety recall and consumer complaint for a US vehicle, by VIN or by make, model and year. Dates normalised to ISO 8601 and no per-run start fee.

What it does

Give it a VIN, or a make, model and year, and get back every safety recall campaign and every consumer complaint the US National Highway Traffic Safety Administration holds for that vehicle, as one row each.

VINs are decoded through NHTSA's own vPIC service first, so "what is wrong with this car" is a single call rather than three.

Three things this does that the free API does not:

  1. Dates come out as ISO 8601. NHTSA's two endpoints disagree with each other: recalls are DD/MM/YYYY, complaints are MM/DD/YYYY. The formats are identical-looking for the first twelve days of any month, so merging them naively corrupts dates by up to eleven months while still looking plausible. 07/08/2025 is 7 August in a recall and 8 July in a complaint.
  2. An empty result explains itself. NHTSA's two endpoints do not share a model vocabulary: recalls accept F-150, complaints need F-150 SUPERCREW. Ask for an F-150 and you get its 14 recalls plus a free row telling you which model names its complaints are filed under, instead of a silent zero.
  3. No per-run start fee. Every comparable Actor charges $0.05–$0.25 just to start, which dwarfs the record cost for a single lookup. This one leaves the Actor start event at Apify's default of $0.00005.

What it does not do. It does not tell you whether a recall has been performed on a specific car, NHTSA's public API does not expose that. It covers US vehicles only.

Input

Give vins, vehicles, or both. At least one is required.

FieldTypeRequiredDefaultDescription
vinsarray of stringsone ofn/a17-character VINs. Max 200.
vehiclesarray of objectsone ofn/a{"make", "model", "modelYear"}. Max 200.
dataTypesarrayno["recalls","complaints"]Which records to return.
maxResultsintegerno1000Stop after this many records.
failOnEmptybooleannofalseOperator health check; leave off.
{
"vins": ["1HGCV1F13LA000000"],
"vehicles": [{ "make": "Honda", "model": "Civic", "modelYear": "2019" }],
"dataTypes": ["recalls", "complaints"],
"maxResults": 1000
}

Output

One row per record. A real recall row from a real run:

{
"record_type": "recall",
"make": "HONDA",
"model": "CIVIC",
"model_year": "2019",
"campaign_number": "20V314000",
"manufacturer": "Honda (American Honda Motor Co.)",
"component": "FUEL SYSTEM, GASOLINE:DELIVERY:FUEL PUMP",
"reported_on": "2020-05-28",
"summary": "The low-pressure fuel pump inside the fuel tank may fail.",
"consequence": "If the fuel pump fails, the engine can stall while driving, increasing the risk of a crash.",
"remedy": "Honda will notify owners and dealers will replace the fuel pump assembly, free of charge.",
"park_it": false,
"park_outside": false,
"over_the_air_update": false,
"record_url": "https://www.nhtsa.gov/recalls?nhtsaId=20V314000",
"source": "NHTSA (US National Highway Traffic Safety Administration)",
"license": "US Government work, public domain",
"retrieved_at": "2026-09-06T12:00:00+00:00"
}

And a complaint:

{
"record_type": "complaint",
"make": "HONDA",
"model": "CIVIC",
"model_year": "2019",
"odi_number": "11675912",
"component": "UNKNOWN OR OTHER",
"incident_on": "2025-07-01",
"reported_on": "2025-07-24",
"summary": "AIR CONDITIONING EVAPORATOR DIED AT 86,000 MILES.",
"crash": false,
"fire": false,
"injuries": 0,
"deaths": 0,
"partial_vin": "2HGFC3B30KH"
}
FieldTypeDescription
record_typestringrecall, complaint, or a free diagnostic row (below).
campaign_numberstringNHTSA recall ID, what a dealer needs. Recalls only.
odi_numberstringNHTSA complaint ID. Complaints only.
reported_onstringISO 8601. Recall: date NHTSA received it. Complaint: date filed.
incident_onstringISO 8601 date the incident happened. Complaints only.
park_itbooleantrue means NHTSA says stop driving the vehicle.
park_outsidebooleantrue means park away from buildings, fire risk.
crash, firebooleanReported by the complainant.
injuries, deathsintegerCounts. 0 is a real answer, not a missing value.
partial_vinstringThe truncated 11-character VIN NHTSA publishes. Identifies a vehicle, never a person.
record_urlstringNHTSA's page for the record, so any row can be checked by hand.

Free diagnostic rows

Three row types explain rather than deliver, and are never charged for:

record_typeMeaning
no_recordsNHTSA holds nothing under that model name, with the names it does use.
vin_errorThe VIN could not be used, and why (wrong length, contains I/O/Q, not decodable).
lookup_errorNHTSA did not respond for that vehicle. Other vehicles in the run still return.

A run of 50 VINs with two typos returns 48 answers and two explanations, not a failure.

Pricing

Pay per event. You are charged $0.003 per safety record returned, plus Apify's standard $0.00005 Actor start event, no per-run start fee.

Example: a VIN lookup returning 5 recalls costs 5 × $0.003 + $0.00005 = $0.015. A full recalls-and-complaints pull for a popular model (about 350 records) costs $1.05.

You are never charged for diagnostic rows, failed runs, or anything beyond your maxResults.

Limits and refresh cadence

  • Coverage: US vehicles only, as held by NHTSA.
  • Freshness: NHTSA adds recalls and complaints continuously. Responses are cached for 6 hours; VIN decodes for 30 days, since a VIN's make, model and year never change.
  • Throughput: up to 200 VINs and 200 vehicles per run, 2 concurrent requests to each NHTSA host.
  • Model spelling must match NHTSA's, which differs between its two endpoints, hence the no_records row. VIN lookup avoids the problem entirely and is the more reliable route.
  • Recall status is not per-vehicle. This tells you a campaign applies to that model; it cannot tell you whether a particular car has had the work done.
  • NHTSA disclaims accuracy and completeness for its own data, and so do we. This Actor reports what NHTSA holds, unmodified except for date normalisation and whitespace.

Attribution

Data from the US National Highway Traffic Safety Administration, a work of the US federal government and therefore in the public domain. Source and retrieval time are stamped on every row.

Complaint summaries are consumer-written text as published by NHTSA. This Actor passes them through unchanged and makes no attempt to identify complainants.

This Actor is not affiliated with or endorsed by NHTSA.

Changelog

See the Changelog tab.

Issues

Report problems on the Issues tab. Please include the run ID and the vehicle. Breakage is normally fixed within one working day.