NHTSA Vehicle Complaints Scraper avatar

NHTSA Vehicle Complaints Scraper

Pricing

Pay per event

Go to Apify Store
NHTSA Vehicle Complaints Scraper

NHTSA Vehicle Complaints Scraper

Extract official NHTSA vehicle safety complaints by make, model, and model year for defect monitoring and automotive analytics.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract public NHTSA vehicle safety complaints by make, model, and model year.

Use this actor to monitor consumer defect complaints, crash/fire flags, injury/death counts, incident dates, complaint filing dates, components, summaries, VIN values when provided, and product metadata from the official National Highway Traffic Safety Administration complaints API.

What does NHTSA Vehicle Complaints Scraper do?

NHTSA Vehicle Complaints Scraper queries the public NHTSA complaints endpoint and saves normalized complaint records to an Apify dataset.

It is built for repeat monitoring and bulk automotive analysis.

Typical use cases include:

  • 🚗 Track complaint volume for a specific make/model/year.
  • 🧯 Find fire-related or crash-related consumer complaints.
  • 🛠️ Monitor components mentioned in defect reports.
  • 📈 Build time-series complaint datasets for risk models.
  • ✅ Export official-source complaint summaries for compliance workflows.

Who is it for?

Auto dealers

Dealers can review complaint patterns before buying, pricing, or certifying used vehicles.

Fleet and compliance teams

Fleet teams can monitor safety complaints across makes and model years used in their fleet.

Insurers

Insurance analysts can enrich vehicle-risk models with public complaint signals.

Warranty and repair analytics teams

Warranty teams can compare complaint components against claim patterns.

Used-car data providers

Vehicle data products can add complaint counts and summaries to model-year intelligence.

Why use this actor?

The NHTSA API is public, but raw API responses are not always convenient for recurring data pipelines.

This actor adds:

  • Clean Apify dataset output.
  • Multi-vehicle input support.
  • Normalized booleans, numbers, dates, and components.
  • PPE billing that scales with saved complaint rows.
  • Ready-to-use API, webhook, scheduling, and export integrations.

Data source

The actor uses the official public NHTSA complaints endpoint:

https://api.nhtsa.gov/complaints/complaintsByVehicle

Required source parameters are:

  • make
  • model
  • modelYear

The actor does not require a login, API key, browser session, or proxy.

What data can I extract?

FieldDescription
queryMakeMake submitted in your input
queryModelModel submitted in your input
queryModelYearModel year submitted in your input
odiNumberNHTSA ODI complaint identifier
manufacturerManufacturer provided by NHTSA
crashWhether crash was reported
fireWhether fire was reported
numberOfInjuriesInjury count in the complaint
numberOfDeathsDeath count in the complaint
dateOfIncidentIncident date when available
dateComplaintFiledComplaint filing date when available
vinVIN or partial VIN if NHTSA provides it
componentsParsed component list
componentTextOriginal component text
summaryConsumer complaint summary
productsNested product metadata
sourceUrlNHTSA API URL used for the query
scrapedAtExtraction timestamp

How much does it cost to scrape NHTSA vehicle complaints?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-complaint fee for each saved dataset item.

The default input is intentionally small enough for testing, while realistic monitoring jobs can request hundreds or thousands of complaints.

Apify shows the exact price before you start a run.

Input options

The main input is vehicles, an array of vehicle combinations.

Example:

{
"vehicles": [
{ "make": "Honda", "model": "Accord", "modelYear": 2020 },
{ "make": "Ford", "model": "F-150", "modelYear": 2021 }
],
"maxComplaintsPerVehicle": 150,
"maxItems": 500,
"sortBy": "dateComplaintFiledDesc",
"includeProducts": true
}

You can also use single-vehicle shortcut fields:

{
"make": "Toyota",
"model": "Camry",
"modelYear": 2022,
"maxComplaintsPerVehicle": 100
}

Output example

{
"queryMake": "Honda",
"queryModel": "Accord",
"queryModelYear": 2020,
"odiNumber": "11747287",
"manufacturer": "Honda (American Honda Motor Co.)",
"crash": false,
"fire": false,
"numberOfInjuries": 0,
"numberOfDeaths": 0,
"dateOfIncident": "2026-05-05",
"dateComplaintFiled": "2026-06-29",
"vin": "1HGCV1F35LA",
"components": ["UNKNOWN OR OTHER"],
"componentText": "UNKNOWN OR OTHER",
"summary": "All of the lights on my dash board is on",
"sourceUrl": "https://api.nhtsa.gov/complaints/complaintsByVehicle?make=Honda&model=Accord&modelYear=2020",
"scrapedAt": "2026-07-02T00:00:00.000Z"
}

How to scrape NHTSA vehicle complaints

  1. Open the actor on Apify.
  2. Add one or more vehicle make/model/year combinations.
  3. Set the maximum complaints per vehicle.
  4. Choose the sort order.
  5. Run the actor.
  6. Download the dataset as JSON, CSV, Excel, XML, or via API.

Tips for better results

Use exact NHTSA-style make and model names.

If a query returns no records, try common model spelling variants.

For monitoring, schedule the same input weekly or monthly and compare new ODI numbers.

For large portfolios, split vehicle groups by brand or model year to simplify downstream analysis.

Integrations

You can connect the dataset to:

  • Google Sheets for analyst review.
  • BigQuery or Snowflake for automotive data warehouses.
  • Webhooks for complaint monitoring alerts.
  • Make, Zapier, or n8n for no-code workflows.
  • Apify API clients for backend enrichment.

API usage: Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/nhtsa-vehicle-complaints-scraper').call({
vehicles: [{ make: 'Honda', model: 'Accord', modelYear: 2020 }],
maxComplaintsPerVehicle: 150,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length);

API usage: Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/nhtsa-vehicle-complaints-scraper').call(run_input={
'vehicles': [{'make': 'Honda', 'model': 'Accord', 'modelYear': 2020}],
'maxComplaintsPerVehicle': 150,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(len(items))

API usage: cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~nhtsa-vehicle-complaints-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"vehicles":[{"make":"Honda","model":"Accord","modelYear":2020}],"maxComplaintsPerVehicle":150}'

MCP integration

Use Apify MCP with Claude Desktop or Claude Code to run this actor from natural language.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/nhtsa-vehicle-complaints-scraper

Claude Code command:

$claude mcp add apify-nhtsa-complaints https://mcp.apify.com/?tools=automation-lab/nhtsa-vehicle-complaints-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-nhtsa-complaints": {
"url": "https://mcp.apify.com/?tools=automation-lab/nhtsa-vehicle-complaints-scraper"
}
}
}

Example prompts:

  • "Run the NHTSA vehicle complaints scraper for Honda Accord 2020 and summarize crash complaints."
  • "Extract complaints for Honda Civic 2020 and show the top components."
  • "Monitor Toyota Camry 2022 complaints and tell me if new fire-related reports appear."

Scheduling monitoring jobs

For recurring monitoring:

  1. Create an Apify task with your target vehicles.
  2. Schedule it weekly or monthly.
  3. Export each run's dataset.
  4. Deduplicate by odiNumber.
  5. Alert when new complaints match your risk criteria.

Common workflows

Complaint volume comparison

Run several vehicles and group rows by make, model, and year.

Component monitoring

Filter components for brakes, electrical, airbags, steering, power train, or unknown/other.

Safety severity review

Filter rows where crash, fire, numberOfInjuries, or numberOfDeaths is non-zero.

Warranty signal enrichment

Join odiNumber, component data, and summaries with internal claims or repair orders.

Limitations

The actor returns public complaint data exposed by NHTSA.

It does not verify allegations, decode full VIN histories, or retrieve private owner contact information.

NHTSA may redact or omit fields in source responses.

Legality and privacy

This actor queries a public government API.

Use the output responsibly and comply with applicable privacy, consumer protection, and data-retention rules.

Do not attempt to identify private individuals from complaint text.

FAQ

Why did my vehicle return zero complaints?

The make/model/year combination may not exist in the NHTSA complaint API, or the model spelling may differ from your input.

Try a known query such as Honda Accord 2020 to confirm the actor is running correctly.

Why are some VIN values missing or partial?

NHTSA source data may omit or redact VINs. The actor preserves what the API returns.

Why are dates formatted differently than the website?

The source returns dates as strings. The actor normalizes standard MM/DD/YYYY values to YYYY-MM-DD for easier sorting.

Explore other Automation Lab actors for automotive, compliance, review, and public-record workflows:

Support

If you need another NHTSA endpoint, recall workflow, VIN workflow, or output field, open an issue on the Apify actor page.

Changelog

0.1

Initial private build for NHTSA vehicle complaint extraction.

Field reference

odiNumber is the best stable key for deduplication.

sourceUrl records the exact API request.

products is kept nested so downstream users can preserve the NHTSA object shape.

components is split from the source component text to make filtering easier.

Quality notes

The actor is HTTP-only and uses no browser automation.

The actor uses bounded retries for 429 and temporary 5xx API responses.

The actor charges only after each complaint record is saved.

Dataset export formats

Apify lets you export the default dataset as:

  • JSON
  • JSONL
  • CSV
  • Excel
  • XML
  • RSS

Final note

NHTSA Vehicle Complaints Scraper is designed for reliable, repeatable, official-source complaint monitoring by vehicle make, model, and model year.