CFPB Consumer Complaint Database Scraper avatar

CFPB Consumer Complaint Database Scraper

Pricing

from $0.01 / 1,000 item extracteds

Go to Apify Store
CFPB Consumer Complaint Database Scraper

CFPB Consumer Complaint Database Scraper

Export filtered CFPB complaint records for compliance, risk, CX, and competitive-intelligence workflows from the public CFPB database.

Pricing

from $0.01 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Export filtered records from the official Consumer Financial Protection Bureau complaint database.

What does CFPB Consumer Complaint Database Scraper do?

CFPB Consumer Complaint Database Scraper searches the official CFPB Consumer Complaint Database and saves matching complaint records to an Apify dataset. Ordinary exports use the official search API for fast server-side filtering and pagination; narrative and compatibility-only requests retain the official bulk archive path.

It is built for recurring complaint monitoring, compliance reviews, market-risk research, and customer-experience intelligence.

Who is it for?

  • ๐Ÿฆ Bank compliance teams monitoring complaint patterns
  • ๐Ÿ’ณ Fintech risk teams tracking issues by product and company
  • ๐Ÿ“Š Competitive-intelligence teams comparing complaint volume
  • ๐Ÿง‘โ€โš–๏ธ Legal and regulatory researchers exporting evidence sets
  • ๐ŸŽง CX leaders looking for recurring consumer pain points

Why use this actor?

The CFPB database is public, but its bulk archive is hundreds of megabytes. This actor uses the fast official search API whenever possible, handles pagination and retries, and returns structured records without you building API, CSV, or ZIP processing code.

Data source

The actor uses two official CFPB public sources:

  • Search API: https://www.consumerfinance.gov/data-research/consumer-complaints/search/api/v1/
  • Bulk archive fallback: https://files.consumerfinance.gov/ccdb/complaints.csv.zip

No login, browser, or proxy is required.

What data can you extract?

FieldDescription
complaintIdCFPB complaint identifier
dateReceivedDate the CFPB received the complaint
productFinancial product category
subProductMore specific product category
issueComplaint issue
subIssueMore specific issue
companyCompany named in the complaint
stateConsumer state
zipCodeZIP code where available
submittedViaChannel used to submit the complaint
companyResponseCompany response status
timelyResponseWhether the company responded in time
consumerDisputedHistorical disputed flag when present
consumerComplaintNarrativeOptional public narrative text
detailUrlOfficial CFPB page for the complaint ID
sourceUrlOfficial CFPB database page

How much does it cost to scrape CFPB complaints?

This actor uses pay-per-event pricing.

  • A small start event is charged once per run.
  • A per-record event is charged for every complaint saved.
  • You control cost with maxItems and filters.

Quick start

  1. Open the actor on Apify.
  2. Set maxItems to the number of complaint records you need.
  3. Add optional keywords, company, product, issue, state, outcome, or date filters and choose newest/oldest sorting.
  4. Run the actor.
  5. Export the dataset as JSON, CSV, Excel, or via API.

Input options

Maximum complaints

Use maxItems to cap the number of saved records. Results are written incrementally, so even large exports do not retain the complete result set in memory.

Keyword and sorting

Use searchTerm for official CFPB full-text search across complaint fields. Set sortOrder to newest (default) or oldest for deterministic received-date ordering on the fast API path.

Company filters

Use companyContains for broad matching such as bank, or companyNames for exact company names.

Product filters

Use products to include exact CFPB product categories.

Issue filters

Use issues to include exact CFPB issue names.

State filters

Use states with two-letter US state abbreviations.

Date filters

Use dateReceivedFrom and dateReceivedTo in YYYY-MM-DD format.

Resolution filters

Use companyResponses, timelyResponse, and disputed to focus on handling outcomes.

Narrative option

Set includeNarrative to true if you need public complaint narrative text. Because the search API does not provide the full narrative contract, this uses the slower official bulk archive path. Very selective narrative requests may need to scan much of the archive and can approach the run timeout.

Example input

{
"maxItems": 100,
"searchTerm": "identity theft",
"companyNames": ["WELLS FARGO & COMPANY"],
"states": ["CA", "NY"],
"dateReceivedFrom": "2025-01-01",
"sortOrder": "newest",
"includeNarrative": false
}

Example output

{
"complaintId": "6779204",
"dateReceived": "2023-03-31",
"product": "Credit reporting, credit repair services, or other personal consumer reports",
"issue": "Improper use of your report",
"company": "CarMax, Inc.",
"state": "NV",
"submittedVia": "Web",
"companyResponse": "Closed with explanation",
"timelyResponse": true,
"sourceUrl": "https://www.consumerfinance.gov/data-research/consumer-complaints/",
"detailUrl": "https://www.consumerfinance.gov/data-research/consumer-complaints/search/detail/6779204",
"scrapedAt": "2026-09-20T00:00:00.000Z"
}

Tips for better results

  • Start with a small maxItems while tuning filters.
  • Use exact product names when you already know CFPB categories.
  • Leave narrative disabled unless you need text analysis.
  • Combine company and state filters for regional monitoring.
  • Use date ranges to build periodic monitoring workflows.

Compliance monitoring workflow

Run the actor weekly with your company names, save the dataset to your BI tool, and compare issue/product trends over time.

Competitive intelligence workflow

Run the actor with competitor names and compare complaint categories, response status, and state distribution.

CX research workflow

Enable narratives for focused complaint sets and feed the output into classification, clustering, or sentiment-analysis tools.

Integrations

You can connect Apify datasets to Google Sheets, Make, Zapier, webhooks, S3, BigQuery, Snowflake, or your own API client.

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/cfpb-consumer-complaint-database-scraper').call({
maxItems: 100,
companyContains: 'bank'
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('APIFY_TOKEN')
run = client.actor('automation-lab/cfpb-consumer-complaint-database-scraper').call({
'maxItems': 100,
'companyContains': 'bank',
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~cfpb-consumer-complaint-database-scraper/runs?token=APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"maxItems":100,"companyContains":"bank"}'

MCP usage

Use this actor from Claude Desktop or Claude Code through Apify MCP:

https://mcp.apify.com/?tools=automation-lab/cfpb-consumer-complaint-database-scraper

Claude Code

$claude mcp add --transport http apify-cfpb-complaints "https://mcp.apify.com/?tools=automation-lab/cfpb-consumer-complaint-database-scraper"

Claude Desktop

Add this remote server to your Claude Desktop MCP configuration:

{
"mcpServers": {
"apify-cfpb-complaints": {
"url": "https://mcp.apify.com/?tools=automation-lab/cfpb-consumer-complaint-database-scraper"
}
}
}

Cursor

Add the same URL as a remote HTTP MCP server named apify-cfpb-complaints in Cursor settings.

VS Code

Add the same URL as an HTTP MCP server in your VS Code MCP configuration.

Example prompts:

  • "Export 100 CFPB complaints mentioning bank in California."
  • "Get CFPB mortgage complaints with untimely responses."
  • "Find complaint records for a named fintech company."

Performance notes

Ordinary metadata exports use the official CFPB search API with server-side filters, bounded pagination, retries for temporary errors, complaint-ID deduplication, and incremental dataset writes. The Actor logs the selected retrieval mode and any fallback reason.

includeNarrative, companyContains, and historical disputed filtering use the streaming bulk compatibility path so existing semantics are not silently weakened. If the search API is unavailable before any rows are saved, the Actor logs the error and falls back to the bulk archive instead of returning a false empty result. A later-page failure stops non-zero rather than risking duplicate output.

Limits

  • maxItems is capped at 10,000 records per run.
  • sortOrder: "oldest" is available on the fast API path and cannot be combined with bulk-only options.
  • The public bulk source is large. Highly selective narrative or compatibility-filter runs may approach the 300-second timeout.
  • Empty matches are valid: the run succeeds with zero items and logs an explicit no-match summary.

Legality

The actor uses public government data from the CFPB. You are responsible for using exported data lawfully and respecting privacy, compliance, and data-retention requirements.

FAQ

Is CFPB complaint data public?

Yes. The actor uses the official public CFPB Consumer Complaint Database bulk feed.

Can I monitor one company every week?

Yes. Save an input with companyContains or exact companyNames, then schedule the actor on Apify.

Troubleshooting

Why did the run scan many rows?

The Actor normally uses the fast API. Narrative output, companyContains, historical disputed filtering, or an unavailable API triggers the documented bulk archive path; selective bulk filters can scan many CSV rows before enough matches are found.

Why is the dataset empty?

No complaint matched all supplied filters. Check the run log for the explicit zero-result summary, then broaden exact company/product/issue values or the date range.

Why are narratives missing?

Narratives are only returned when CFPB publishes them and includeNarrative is enabled.

Changelog

0.1

Initial version with streaming CFPB bulk CSV parsing, filters, and structured complaint output.

Support

If you need a new filter or output field, open an Apify issue on the actor page.

Disclaimer

This actor is not affiliated with or endorsed by the CFPB.

Appendix: common filter ideas

  • Complaints by company and state
  • Complaints by mortgage product
  • Untimely response monitoring
  • Public narratives for text analysis
  • Competitor complaint comparison
  • Monthly compliance exports
  • Regional branch-risk review
  • Product launch complaint monitoring
  • Complaint response quality audit
  • Complaint IDs for downstream enrichment