# CFPB Consumer Complaints Search (13.8M+ Complaints) (`compute-edge/cfpb-complaints-scraper`) Actor

Search the CFPB Consumer Financial Protection Bureau complaint database. Find complaints against banks, lenders, and financial companies by company name, product, state, or date range. 13.8M+ complaints with company responses.

- **URL**: https://apify.com/compute-edge/cfpb-complaints-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## CFPB Consumer Financial Complaints Scraper

Extract **consumer complaint data** from the **Consumer Financial Protection Bureau (CFPB)** database — the largest public repository of consumer financial complaints in the United States. This Actor wraps the official CFPB Complaint Database API to deliver structured data on **13.8 million+ complaints** filed against banks, lenders, debt collectors, credit bureaus, and financial companies since 2011.

CFPB complaint data is essential for **financial compliance monitoring**, **competitive intelligence**, **litigation research**, **risk analysis**, and **fintech market research**. Every complaint includes the company name, product type, issue description, company response, and geographic data. This Actor makes that data instantly accessible in JSON, CSV, or Excel format.

### Key Features

| Feature | Description |
|---------|-------------|
| **13.8M+ complaints** | Every consumer financial complaint since 2011 |
| **Multi-field search** | Search by company, product, state, date range, or free text |
| **17 fields per record** | Company, product, issue, response, narrative, location, and more |
| **Pagination built-in** | Automatically handles cursor-based pagination |
| **No authentication** | Uses the free public CFPB API — no API key needed |

### What Data Can You Extract?

| Field | Description |
|-------|-------------|
| `complaintId` | Unique CFPB complaint identifier |
| `dateReceived` | Date complaint was received |
| `product` | Financial product (mortgage, credit card, debt collection, etc.) |
| `subProduct` | Specific product subcategory |
| `issue` | Primary complaint issue |
| `subIssue` | Specific issue detail |
| `company` | Company the complaint was filed against |
| `companyResponse` | How the company responded |
| `companyPublicResponse` | Company's public-facing response |
| `state` | Consumer's state |
| `zipCode` | Consumer's ZIP code |
| `submittedVia` | How the complaint was submitted (Web, Phone, etc.) |
| `timely` | Whether company responded on time |
| `consumerDisputed` | Whether the consumer disputed the response |
| `narrative` | Full complaint narrative text (when available) |
| `tags` | Special tags (e.g., Older American, Servicemember) |
| `dateSentToCompany` | Date CFPB forwarded the complaint |
| `complaintUrl` | Direct link to the complaint on CFPB website |

### How to Scrape CFPB Complaint Data

1. **Go to this Actor's page** on the Apify Store
2. **Click "Start"** to open the input form
3. **Set your filters:**
   - Enter a **Company** name (e.g., `Wells Fargo`, `Bank of America`)
   - Select a **Product** type (e.g., `Mortgage`, `Credit card`)
   - Enter a **State** code (e.g., `CA`, `NY`) — or leave blank for all states
   - Set a **Date From** and **Date To** range (format: `YYYY-MM-DD`)
   - Enter **Search Text** for free-text search across complaint narratives
   - Set **Max Results** (default: 100)
4. **Click "Start"** to run the Actor
5. **Download your data** in JSON, CSV, or Excel format from the Dataset tab

### Input Example

```json
{
    "company": "Wells Fargo",
    "product": "Mortgage",
    "state": "CA",
    "dateFrom": "2024-01-01",
    "maxResults": 100
}
````

### Output Example

```json
{
    "complaintId": "19575864",
    "dateReceived": "2026-02-18T12:00:00-05:00",
    "product": "Checking or savings account",
    "subProduct": "Checking account",
    "issue": "Problem with a lender or other company charging your account",
    "subIssue": "Transaction was not authorized",
    "company": "WELLS FARGO & COMPANY",
    "companyResponse": "Closed with explanation",
    "companyPublicResponse": null,
    "state": "CA",
    "zipCode": "90255",
    "submittedVia": "Web",
    "timely": "Yes",
    "consumerDisputed": "N/A",
    "narrative": "I was contacted about a remote position...",
    "tags": null,
    "dateSentToCompany": "2026-02-18T12:00:00-05:00",
    "complaintUrl": "https://www.consumerfinance.gov/data-research/consumer-complaints/search/detail/19575864"
}
```

### Pricing

This Actor uses **pay-per-result** pricing:

| Event | Price |
|-------|-------|
| Actor start | $0.00005 |
| Per result | $0.002 |

The CFPB API is free and public. You only pay for Apify compute resources plus the per-result fee above. A typical run of 100 complaints costs approximately $0.20 in Actor fees plus minimal compute costs.

### Use Cases

- **Compliance Monitoring**: Track complaint trends against your company or competitors over time
- **Litigation Research**: Find complaint patterns for class-action or regulatory investigations
- **Competitive Intelligence**: Compare complaint volumes and resolution rates across banks and lenders
- **Risk Analysis**: Assess financial company risk based on complaint history and response patterns
- **Fintech Market Research**: Identify pain points in traditional banking for product development
- **Journalism & Advocacy**: Investigate consumer financial abuse patterns and corporate behavior

### Integrations

Connect this Actor to your existing workflows:

- Export to **Google Sheets** for collaborative analysis
- Send results to **Slack** or **email** for automated alerts
- Feed into **Zapier**, **Make**, or **n8n** for custom automation
- Use the Apify API to integrate directly with your application

### FAQ

#### Is it legal to scrape CFPB complaint data?

Yes. The CFPB Consumer Complaint Database is a free public service provided by the U.S. Consumer Financial Protection Bureau. The data is in the public domain and freely available for any use. This Actor uses the official public CFPB API.

#### How much does it cost to scrape the CFPB?

The Actor charges $0.002 per result plus a $0.00005 Actor start fee. A typical run of 100 complaints costs approximately $0.20 in Actor fees plus minimal compute costs. See the pricing table above for details.

#### Can I export CFPB data to Excel or CSV?

Yes. Apify supports exporting data in JSON, CSV, Excel, XML, HTML, and RSS formats. After the Actor run completes, go to the Dataset tab and choose your preferred export format.

#### How often is the CFPB data updated?

You can schedule this Actor to run at any interval — daily, weekly, or monthly. The CFPB database itself is updated daily, and complaints typically appear within 15 days of being sent to the company for response.

#### What date range does the CFPB complaint data cover?

The CFPB complaint database contains complaints dating back to 2011, with over 13.8 million complaints to date. You can filter by date range using the Date From and Date To fields.

### Other Scrapers by SeatSignal

- [SEC EDGAR Scraper](https://apify.com/seatsignal/sec-edgar-scraper) — Extract financial data and filings for 10,000+ US public companies
- [Federal Audit Clearinghouse Scraper](https://apify.com/seatsignal/federal-audit-scraper) — Extract federal audit data for organizations receiving $750K+ in federal funds
- [Treasury Fiscal Data Scraper](https://apify.com/seatsignal/treasury-fiscal-scraper) — Pull U.S. Treasury fiscal and debt data
- [FEMA Disaster Declarations Scraper](https://apify.com/seatsignal/fema-disasters-scraper) — Extract 60K+ FEMA disaster declaration records
- [HUD Fair Market Rents Scraper](https://apify.com/seatsignal/hud-fair-market-rents-scraper) — Extract HUD fair market rent data by location

### Legal Disclaimer

This Actor accesses publicly available data from the CFPB Consumer Complaint Database API, a free public service provided by the U.S. Consumer Financial Protection Bureau. The data is in the public domain and freely available for any use.

This Actor does not bypass any authentication, does not violate any terms of service, and respects rate limits. The Actor is provided as-is without warranty. Users are responsible for ensuring their use of the data complies with applicable laws and regulations.

For questions or support, please open an issue on this Actor's page.

# Actor input Schema

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

Company to search for (e.g., 'Wells Fargo', 'Bank of America', 'Equifax').

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

Financial product type.

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

US state abbreviation (e.g., CA, NY, TX).

## `dateFrom` (type: `string`):

Start date (YYYY-MM-DD format, e.g., '2024-01-01').

## `dateTo` (type: `string`):

End date (YYYY-MM-DD format, e.g., '2024-12-31').

## `searchText` (type: `string`):

Full-text search across complaint narratives and issues.

## `maxResults` (type: `integer`):

Maximum number of complaints to return.

## Actor input object example

```json
{
  "product": "",
  "maxResults": 100
}
```

# 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 = {
    "company": "",
    "state": "",
    "dateFrom": "",
    "dateTo": "",
    "searchText": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/cfpb-complaints-scraper").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 = {
    "company": "",
    "state": "",
    "dateFrom": "",
    "dateTo": "",
    "searchText": "",
}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/cfpb-complaints-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "company": "",
  "state": "",
  "dateFrom": "",
  "dateTo": "",
  "searchText": ""
}' |
apify call compute-edge/cfpb-complaints-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/cfpb-complaints-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CFPB Consumer Complaints Search (13.8M+ Complaints)",
        "description": "Search the CFPB Consumer Financial Protection Bureau complaint database. Find complaints against banks, lenders, and financial companies by company name, product, state, or date range. 13.8M+ complaints with company responses.",
        "version": "0.0",
        "x-build-id": "bfUsUQT0MR12Tn3tH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~cfpb-complaints-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-cfpb-complaints-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~cfpb-complaints-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-cfpb-complaints-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~cfpb-complaints-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-cfpb-complaints-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "company": {
                        "title": "Company Name",
                        "type": "string",
                        "description": "Company to search for (e.g., 'Wells Fargo', 'Bank of America', 'Equifax')."
                    },
                    "product": {
                        "title": "Product",
                        "enum": [
                            "",
                            "Credit reporting, credit repair services, or other personal consumer reports",
                            "Debt collection",
                            "Mortgage",
                            "Credit card or prepaid card",
                            "Checking or savings account",
                            "Student loan",
                            "Vehicle loan or lease",
                            "Money transfer, virtual currency, or money service",
                            "Payday loan, title loan, or personal loan"
                        ],
                        "type": "string",
                        "description": "Financial product type.",
                        "default": ""
                    },
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "US state abbreviation (e.g., CA, NY, TX)."
                    },
                    "dateFrom": {
                        "title": "Date From",
                        "type": "string",
                        "description": "Start date (YYYY-MM-DD format, e.g., '2024-01-01')."
                    },
                    "dateTo": {
                        "title": "Date To",
                        "type": "string",
                        "description": "End date (YYYY-MM-DD format, e.g., '2024-12-31')."
                    },
                    "searchText": {
                        "title": "Search Text",
                        "type": "string",
                        "description": "Full-text search across complaint narratives and issues."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of complaints to return.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
