# CFPB & NHTSA Consumer Complaints & Safety Defect Leads Scraper (`apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads`) Actor

Scrapes public consumer complaints, regulatory disputes, manufacturer safety defects, and recalls from CFPB and NHTSA registries. Extracts complaint narratives, company responses, crash/fire indicators, and litigation risk scores.

- **URL**: https://apify.com/apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads.md
- **Developed by:** [George Barnes](https://apify.com/apex-b2b-data) (community)
- **Categories:** Business, Lead generation, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.05 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## CFPB & NHTSA Consumer Complaints & Safety Defect Leads Scraper (`$1.50 / 1K`)

**Extract verified consumer financial complaints, regulatory disputes, automotive safety defects, crashes, fires, and manufacturer response timelines across two federal agencies: the Consumer Financial Protection Bureau (CFPB) and National Highway Traffic Safety Administration (NHTSA).**

Designed specifically for **class action litigation firms, product liability attorneys, risk analysts, compliance directors, automotive researchers, and brand reputation monitors**, this Actor eliminates manual government portal lookups and expensive data aggregators by querying official public endpoints directly:

1. **CFPB Consumer Complaint Database API** — Over 18.8 million public financial dispute records against banks, fintechs, credit bureaus, lenders, and debt collectors. Built-in 6-header browser emulation completely bypasses Akamai GHost WAF restrictions with zero proxy costs.
2. **NHTSA Vehicle Complaints API** — Federal safety defect investigations, crash flags, vehicle fire indicators, injury/death counts, VINs, and defective components across vehicle makes and models.
3. **Consumer Risk & Litigation Scoring (0–100)** — Automatically scores complaints based on bodily harm, crash/fire presence, regulatory untimeliness, monetary relief, and severe consumer fraud narratives.

***

### Why Choose This Complaint & Defect Scraper? (Comparison)

| Feature / Capability | This Actor | Manual Agency Search Portals | Generic Web Scrapers |
| :--- | :--- | :--- | :--- |
| **Price per 1,000 Records** | **`$1.50 / 1K` (`$0.0015`/record)** | Free (Manual copy-paste) | `$5.00 – $20.00 / 1K` + Proxies |
| **Unified Cross-Agency Schema** | ✅ Both CFPB & NHTSA in 1 normalized feed | ❌ 2 disparate federal websites | ❌ Fragmented & breaks frequently |
| **Akamai WAF Bypass (CFPB)** | ✅ Native browser header bundle (No 403s) | ⚠️ CAPTCHA / rate-limited | ❌ 403 Forbidden without proxies |
| **Litigation & Risk Scoring (0–100)**| ✅ Automated severity & segment scoring | ❌ None | ❌ None |
| **Crash, Fire & Fatality Flags** | ✅ Structured booleans & injury counts | ⚠️ Hidden inside unstructured text | ❌ Raw text only |
| **Timely Regulatory Response Tracking**| ✅ Structured `timely_response` boolean | ⚠️ Manual review | ❌ Not normalized |
| **Zero-Input Out-of-the-Box Run**| ✅ Instant 20 live records with zero config | ❌ Requires form inputs | ❌ Errors out on empty input |
| **Proxy Cost & Failure Rate** | **`$0.00` (0% proxy cost, unthrottled)** | N/A | High residential proxy fees |

***

### Transparent Pricing (`$1.50` per 1,000 Records)

Billed exclusively via Pay-Per-Event on records actually delivered (`$0.0015` per record). Zero recurring monthly fees:

| Workflow Use Case | Records Delivered | Total Cost |
| :--- | :--- | :--- |
| **Quick Validation / Test Run** | `20` records | **`$0.03` (3 cents)** |
| **Daily Class Action Lead Alert** | `~200` records/day | **`$0.30 / day` (`~$9/month`)** |
| **Targeted Make/Model Defect Investigation** | `1,000` records | **`$1.50`** |
| **Enterprise Financial Compliance Audit** | `10,000` records | **`$15.00`** |

***

### High-Intent B2B Playbooks (Copy-Paste Inputs)

#### 1. Class Action & Product Liability: Critical Automotive Safety Hazards

Filter NHTSA vehicle complaints for severe safety defects involving crashes, fires, or injuries. Ideal for class action intake, recall monitoring, and expert witness research:

```json
{
  "source": "NHTSA",
  "nhtsaMake": "toyota",
  "nhtsaModel": "camry",
  "nhtsaModelYear": 2021,
  "minRiskScore": 60,
  "size": 100
}
```

#### 2. Banking Compliance & Fintech Risk: Untimely Responses & High-Severity Disputes

Filter CFPB financial complaints against major banking institutions or credit bureaus to uncover regulatory delinquency, deceptive practices, or monetary relief settlements:

```json
{
  "source": "CFPB",
  "company": "Wells Fargo",
  "minRiskScore": 50,
  "size": 50
}
```

#### 3. Debt Collection & Consumer Protection Litigation

Identify debt collection harassment, unauthorized reporting, or identity theft disputes with full consumer narratives:

```json
{
  "source": "CFPB",
  "product": "Debt collection",
  "hasNarrativeOnly": true,
  "size": 50
}
```

#### 4. Cross-Agency Enterprise Risk Feed (CFPB Financial + NHTSA Automotive)

Combine both federal registries in a single scheduled pipeline to monitor total consumer dispute exposure:

```json
{
  "source": "BOTH",
  "searchTerm": "defect",
  "size": 100
}
```

***

### Sample Output Record (Normalized Schema)

```json
{
  "complaint_id": "9999997",
  "source": "CFPB",
  "company_name": "TRANSUNION INTERMEDIATE HOLDINGS, INC.",
  "product_or_make": "Credit reporting or other personal consumer reports",
  "sub_product_or_model": "Credit reporting",
  "issue": "Improper use of your report",
  "consumer_complaint_narrative": "Reporting company used my credit report improperly without authorization.",
  "company_response": "Closed with non-monetary relief",
  "timely_response": true,
  "date_received": "2024-09-03",
  "consumer_risk_score": 65,
  "extracted_at": "2026-11-04T00:24:17.871987+00:00",
  "sub_issue": "Reporting company used your report improperly",
  "state": "FL",
  "zip_code": "33060",
  "company_public_response": "Company has responded to the consumer and the CFPB and confirms resolution.",
  "submitted_via": "Web",
  "crash_flag": false,
  "fire_flag": false,
  "injuries_count": 0,
  "deaths_count": 0,
  "vin": null,
  "lead_segments": [
    "FINANCIAL_DISPUTE",
    "HIGH_SEVERITY_DISPUTE",
    "NON_MONETARY_RELIEF",
    "ELEVATED_RISK"
  ]
}
```

***

### Automation & API Integrations (Clay, n8n, Make, Python, MCP)

#### Call via Synchronous REST API (Clay.com / n8n / Make HTTP Module)

Trigger a run synchronously and receive the JSON results array directly in the HTTP response:

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~consumer-complaints-cfpb-nhtsa-leads/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "CFPB",
    "company": "Wells Fargo",
    "size": 25
  }'
```

#### Call via Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("YOUR_USERNAME/consumer-complaints-cfpb-nhtsa-leads").call(
    run_input={
        "source": "NHTSA",
        "nhtsaMake": "tesla",
        "nhtsaModel": "model 3",
        "nhtsaModelYear": 2022,
        "size": 50,
    }
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Extracted {len(items)} defect complaint records")
```

#### AI Agents & Model Context Protocol (MCP)

Compatible with Apify's MCP server (`mcp.apify.com`). AI agents can invoke this Actor as a live tool to:

- Research class action litigation potential against financial institutions or car manufacturers.
- Check vehicle safety history, component failure trends, and crash risks for specific makes and models.
- Verify whether a company has a history of untimely responses or unresolved consumer fraud allegations.

***

### Frequently Asked Questions (FAQ)

**1. Where does the complaint data originate?**
All data is sourced directly from official US government public portals:

- Consumer Financial Protection Bureau (CFPB) Consumer Complaint Database (`consumerfinance.gov`)
- National Highway Traffic Safety Administration (NHTSA) Office of Defects Investigation (`api.nhtsa.gov`)

**2. How does this Actor bypass the CFPB Akamai 403 Forbidden block?**
The CFPB API sits behind Akamai GHost web application firewall rules that block raw cURL requests. This Actor automatically injects the verified 6-header browser bundle (`User-Agent`, `Accept`, `Referer`, `Sec-Fetch-Dest`, `Sec-Fetch-Mode`, `Sec-Fetch-Site`), allowing full API access without residential proxies.

**3. How is the Consumer Risk Score (0–100) calculated?**
The score starts at a baseline of 40 and adds weighted risk points:

- **NHTSA:** Crash involvement (+25), vehicle fire (+25), fatalities (+35), injuries (+20), critical safety components like steering/brakes/airbags (+10).
- **CFPB:** Untimely company response (+25), monetary relief (+15), severe disputes like fraud/identity theft/repossession (+15), consumer narrative submitted (+10).
- Scores 80+ are tagged `HIGH_LITIGATION_RISK`, 60–79 are `ELEVATED_RISK`, and below 60 are `STANDARD_MONITORING`.

**4. Can I run this Actor with zero inputs?**
Yes. Default execution runs with `"source": "CFPB"` and `"size": 20`, returning 20 real live complaints immediately without requiring any API keys or proxy configurations.

# Actor input Schema

## `source` (type: `string`):

Target regulatory registry: 'CFPB' for Consumer Financial Protection Bureau complaints, 'NHTSA' for National Highway Traffic Safety Administration vehicle defects, or 'BOTH' to combine both sources.

## `size` (type: `integer`):

Total maximum number of complaint records to retrieve and enrich (1 to 5,000).

## `searchTerm` (type: `string`):

Free-text search query across complaint narratives, issues, and company names.

## `company` (type: `string`):

Filter CFPB complaints by target institution (e.g. 'Wells Fargo', 'Bank of America', 'JPMorgan Chase', 'Equifax', 'TransUnion').

## `product` (type: `string`):

Filter CFPB complaints by financial product (e.g. 'Credit reporting', 'Debt collection', 'Mortgage', 'Checking or savings account').

## `state` (type: `string`):

Filter complaints by 2-letter US State postal code (e.g. 'CA', 'TX', 'FL', 'NY').

## `hasNarrativeOnly` (type: `boolean`):

Only return complaints containing consumer-written dispute descriptions.

## `nhtsaMake` (type: `string`):

Vehicle make for NHTSA queries (e.g. 'toyota', 'ford', 'chevrolet', 'tesla', 'honda'). Used when source is NHTSA or BOTH.

## `nhtsaModel` (type: `string`):

Vehicle model for NHTSA queries (e.g. 'camry', 'f-150', 'silverado', 'model 3'). Used when source is NHTSA or BOTH.

## `nhtsaModelYear` (type: `integer`):

4-digit model year for NHTSA queries (e.g. 2021, 2022, 2023). Used when source is NHTSA or BOTH.

## `minRiskScore` (type: `integer`):

Filter out complaints with risk score below this threshold.

## `includeRawData` (type: `boolean`):

Attach the original unmodified upstream API response under `raw_data` for downstream compliance or deep auditing.

## Actor input object example

```json
{
  "source": "CFPB",
  "size": 20,
  "searchTerm": "",
  "company": "",
  "product": "",
  "state": "",
  "hasNarrativeOnly": false,
  "nhtsaMake": "toyota",
  "nhtsaModel": "camry",
  "nhtsaModelYear": 2021,
  "minRiskScore": 0,
  "includeRawData": false
}
```

# Actor output Schema

## `results` (type: `string`):

Structured JSON records produced by CFPB & NHTSA Consumer Complaints & Safety Defect Leads Scraper in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apex-b2b-data/consumer-complaints-cfpb-nhtsa-leads"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Wc8LOgRvlEdHLXRU2/builds/T8lhjGUo1uRdBeHL8/openapi.json
