NHTSA Vehicle Data Scraper avatar

NHTSA Vehicle Data Scraper

Pricing

from $8.00 / 1,000 results

Go to Apify Store
NHTSA Vehicle Data Scraper

NHTSA Vehicle Data Scraper

Query federal NHTSA endpoints to extract accurate automotive recall feeds, component defect notices, and compliance records for any vehicle fleet.

Pricing

from $8.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

NHTSA Vehicle Recall Watch Scraper

Use this actor to monitor public NHTSA recall and vehicle complaint metadata for fleet, product, and safety-operations review. Input VINs, makes, models, manufacturers, or watch terms; get source-linked digest rows for recalls and complaint trends. Complaint records are consumer-submitted and unverified; this actor does not confirm defects or replace official safety review.

Store Quickstart

Run this actor with your target input. Results appear in the Apify Dataset and can be piped to webhooks for real-time delivery. Use dryRun to validate before committing to a schedule.

Key Features

  • 🏛️ Government-sourced — Pulls directly from official agency feeds — no third-party aggregators
  • ⏱️ Timely digests — Daily/weekly rollups of new filings, rulings, or actions
  • 🔍 Keyword watchlists — Flag items matching your compliance/legal watch terms
  • 📊 Structured metadata — Agency, date, docket, document type, link — all dataset-ready
  • 📡 Webhook alerts — Push to legal/compliance teams the moment new items match watchlist

Use Cases

WhoWhy
DevelopersAutomate recurring data fetches without building custom scrapers
Data teamsPipe structured output into analytics warehouses
Ops teamsMonitor changes via webhook alerts
Product managersTrack competitor/market signals without engineering time

Input

FieldTypeDefaultDescription
feedsarrayOne digest row per watched vehicle, VIN, or manufacturer feed.
recallLookbackDaysinteger30Default recall lookback window used when a feed-specific override is not set.
complaintLookbackDaysinteger90Default complaint lookback window used when a feed-specific override is not set.
maxRecallsPerVehicleinteger50Default cap on recall evidence rows per feed.
maxComplaintsPerVehicleinteger100Default cap on complaint evidence rows per feed.
maxDiscoveredModelsPerFeedinteger12Default cap on manufacturer model expansion before complaints and recalls are fetched.
maxEvidenceItemsinteger10Upper bound on recall or complaint items retained in each digest section.
complaintAlertThresholdinteger3Complaint-count threshold that escalates a digest to action_needed.

Input Example

{
"recallLookbackDays": 30,
"complaintLookbackDays": 90,
"maxRecallsPerVehicle": 50,
"maxComplaintsPerVehicle": 100,
"maxDiscoveredModelsPerFeed": 12,
"maxEvidenceItems": 10,
"complaintAlertThreshold": 3,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "nhtsa-vehicle-recall-digest-state",
"notifyOnNoNew": true,
"requestTimeoutSeconds": 30,
"batchDelayMs": 600,
"dryRun": false
}

Input Examples

Example: Single-target audit

{
"targets": [
"example-target-1"
],
"maxResultsPerTarget": 30
}

Example: Bulk portfolio

{
"targets": [
"target-1",
"target-2",
"target-3"
],
"maxResultsPerTarget": 50,
"snapshotKey": "nhtsa-vehicle-recall-digest-state"
}

Example: Recurring delta watch

{
"targets": [
"target-1"
],
"snapshotKey": "nhtsa-vehicle-recall-digest-state",
"emitChangedOnly": true
}

Output

FieldTypeDescription
metaobject
errorsarray
digestsarray
digests[].feedIdstring
digests[].feedNamestring
digests[].feedTypestring
digests[].checkedAttimestamp
digests[].recallWindowStarttimestamp
digests[].complaintWindowStarttimestamp
digests[].recallLookbackDaysnumber
digests[].complaintLookbackDaysnumber
digests[].statusstring
digests[].changedSinceLastRunboolean
digests[].changeSummarystring
digests[].actionNeededboolean
digests[].requestedTargetobject
digests[].resolvedCoverageobject
digests[].newRecallCountnumber
digests[].totalRecallCountnumber
digests[].newComplaintCountnumber
digests[].totalComplaintCountnumber
digests[].seriousComplaintCountnumber
digests[].newSeriousComplaintCountnumber
digests[].linkedInvestigationCountnumber
digests[].newLinkedInvestigationCountnumber
digests[].componentHotspotsarray
digests[].investigationSignalstring
digests[].recommendedActionstring
digests[].signalTagsarray
digests[].newRecallsarray
digests[].newComplaintsarray
digests[].linkedInvestigationsarray
digests[].evidenceobject
digests[].warningsarray
digests[].errornull

Output Example

{
"meta": {
"generatedAt": "2026-04-06T00:00:00.000Z",
"now": "2026-04-06T00:00:00.000Z",
"feedCount": 1,
"totalRecallsFound": 1,
"newRecallsFound": 1,
"totalComplaintsFound": 4,
"newComplaintsFound": 2,
"actionNeededCount": 1,
"changedFeedCount": 1,
"errorCount": 0,
"snapshot": {
"key": "nhtsa-f150-quickstart",
"loadedFrom": "local",
"savedTo": "local"
},
"warnings": [],
"executiveSummary": {
"overallStatus": "action_needed",
"brief": "1 new recall(s); 2 new complaint(s); 1 feed(s) require review.",
"actionItems": [
"2021 Ford F-150: Review 1 new recall campaign(s) for 2021 Ford F-150. 1 linked NHTSA action number(s) are in scope."
],
"feedStatuses": [
{
"feedId": "ford-f150-2021",
"feedName": "2021 Ford F-150",
"status": "new_recalls",
"newRecallCount": 1,
"newComplaintCount": 2,
"actionNeeded": true
}
]
},
"delivery": {
"mode": "dataset",
"status": "pending"
}
},

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~nhtsa-vehicle-recall-digest/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "recallLookbackDays": 30, "complaintLookbackDays": 90, "maxRecallsPerVehicle": 50, "maxComplaintsPerVehicle": 100, "maxDiscoveredModelsPerFeed": 12, "maxEvidenceItems": 10, "complaintAlertThreshold": 3, "delivery": "dataset", "datasetMode": "all", "snapshotKey": "nhtsa-vehicle-recall-digest-state", "notifyOnNoNew": true, "requestTimeoutSeconds": 30, "batchDelayMs": 600, "dryRun": false }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/nhtsa-vehicle-recall-digest").call(run_input={
"recallLookbackDays": 30,
"complaintLookbackDays": 90,
"maxRecallsPerVehicle": 50,
"maxComplaintsPerVehicle": 100,
"maxDiscoveredModelsPerFeed": 12,
"maxEvidenceItems": 10,
"complaintAlertThreshold": 3,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "nhtsa-vehicle-recall-digest-state",
"notifyOnNoNew": true,
"requestTimeoutSeconds": 30,
"batchDelayMs": 600,
"dryRun": false
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/nhtsa-vehicle-recall-digest').call({
"recallLookbackDays": 30,
"complaintLookbackDays": 90,
"maxRecallsPerVehicle": 50,
"maxComplaintsPerVehicle": 100,
"maxDiscoveredModelsPerFeed": 12,
"maxEvidenceItems": 10,
"complaintAlertThreshold": 3,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "nhtsa-vehicle-recall-digest-state",
"notifyOnNoNew": true,
"requestTimeoutSeconds": 30,
"batchDelayMs": 600,
"dryRun": false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Run daily for active watchlists; weekly for passive monitoring.
  • Webhook delivery works well for compliance team Slack channels — include docket URL for 1-click access.
  • Use watchKeywords generously — false positives are cheap to triage, false negatives miss filings.
  • Pair with regulatory-change-monitor for cross-agency coverage.
  • Archive Dataset rows weekly for long-term compliance evidence retention.

FAQ

How far back does history go?

This actor monitors forward-only — new items since first run. For historical data, use the agency's own search tool.

What timezones are used?

All timestamps are UTC. Use your downstream pipeline to convert to agency-local time if needed.

Does it translate non-English content?

No — original language is preserved. Use downstream translation services if needed.

Is the data official?

Yes — sourced directly from official government websites and feeds. Not a third-party aggregator.

Can I use this for legal research?

For alerting and monitoring, yes. For litigation research, cross-verify with primary sources (agency websites) — this actor is a monitoring tool, not a legal database.

Government & Regulatory cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.003 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01

No subscription required — you only pay for what you use.

⭐ Was this helpful?

If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.

Bug report or feature request? Open an issue on the Issues tab of this actor.

Compliance Guardrails

This actor is independently operated and has no source-agency affiliation, sponsorship, or approval. It uses public data from NHTSA datasets and APIs (https://www.nhtsa.gov/nhtsa-datasets-and-apis). Results are informational only and may be delayed, incomplete, amended, withdrawn, or superseded by the source. Verify all records with the linked official source before relying on them.

  • Use NHTSA public APIs/datasets only.
  • Label complaint records as consumer-submitted and unverified.
  • Do not state that a complaint confirms a defect or replaces official safety review.