NHTSA Vehicle Complaints Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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:
makemodelmodelYear
The actor does not require a login, API key, browser session, or proxy.
What data can I extract?
| Field | Description |
|---|---|
queryMake | Make submitted in your input |
queryModel | Model submitted in your input |
queryModelYear | Model year submitted in your input |
odiNumber | NHTSA ODI complaint identifier |
manufacturer | Manufacturer provided by NHTSA |
crash | Whether crash was reported |
fire | Whether fire was reported |
numberOfInjuries | Injury count in the complaint |
numberOfDeaths | Death count in the complaint |
dateOfIncident | Incident date when available |
dateComplaintFiled | Complaint filing date when available |
vin | VIN or partial VIN if NHTSA provides it |
components | Parsed component list |
componentText | Original component text |
summary | Consumer complaint summary |
products | Nested product metadata |
sourceUrl | NHTSA API URL used for the query |
scrapedAt | Extraction 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
- Open the actor on Apify.
- Add one or more vehicle make/model/year combinations.
- Set the maximum complaints per vehicle.
- Choose the sort order.
- Run the actor.
- 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 ApifyClientimport osclient = 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().itemsprint(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:
- Create an Apify task with your target vehicles.
- Schedule it weekly or monthly.
- Export each run's dataset.
- Deduplicate by
odiNumber. - 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.
Related scrapers
Explore other Automation Lab actors for automotive, compliance, review, and public-record workflows:
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/similarweb-scraper
- https://apify.com/automation-lab/website-contact-finder
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.