Home › Funding, grants and compliance › CFPB Complaints Scraper
Search and monitor the official CFPB Consumer Complaint Database by company, product, issue, state and date. New-since-last-run alerts or per-company trend summaries with response stats. Published fields only, 3-digit ZIP. No API key.
| Field | Name | Required | What it does |
|---|---|---|---|
mode | Mode | no | Complaints = list matching complaints, newest first. New since last run = same, but never returns a complaint you already received (schedule it for monitoring). Company summary =... |
companies | Companies | no | Company names, for example Wells Fargo, Chase, Navy Federal. Matched by words, so Wells Fargo finds WELLS FARGO & COMPANY. Leave empty for all companies (in summary mode: the top... |
exactCompanyName | Exact company name | no | Match the company name exactly as CFPB spells it (for example WELLS FARGO & COMPANY) instead of by words. |
products | Products | no | CFPB product names, for example Credit card, Debt collection, Mortgage, Checking or savings account. Empty = all. |
issues | Issues | no | CFPB issue names, for example Fraud or scam. Empty = all. |
states | Consumer states | no | Two-letter state codes of the consumer, for example MI, TX. Empty = all. |
lookbackDays | Look back (days) | no | Date range start = today minus this many days. Ignored when you set a start date. |
dateFrom | Start date (optional) | no | YYYY-MM-DD, date the complaint was received. Overrides the look-back. |
dateTo | End date (optional) | no | YYYY-MM-DD. Empty = up to the latest data. |
companyResponses | Company responses | no | Keep only these outcomes, for example Closed with monetary relief, Closed with explanation, In progress. Empty = all. |
timelyResponse | Timely response | no | Filter on whether the company answered on time. |
submittedVia | Submitted via | no | Channel the complaint came in, for example Web, Phone, Referral, Postal mail. Empty = all. |
searchText | Search text | no | Free text matched against the published complaint fields. Ignored for a company when a company name is set. |
maxResults | Max results | no | Cap on rows delivered (and charged) this run, up to 5,000. In summary mode: the number of companies, up to 100. Start with 25. |
One row per result. These are the 36 fields declared in the actor's dataset schema (field list from the schema, not a sample run).
| Field | Type | Meaning |
|---|---|---|
type | string | complaint or company_summary. |
complaintId | string | CFPB complaint ID. |
dateReceived | string | Date CFPB received the complaint (YYYY-MM-DD). |
dateSentToCompany | string | Date CFPB forwarded the complaint to the company. |
complaintAgeDays | integer | Days between the date received and the run date. |
company | string | Company name as CFPB spells it. |
product | string | CFPB product category. |
subProduct | string | CFPB sub-product. |
issue | string | CFPB issue. |
subIssue | string | CFPB sub-issue. |
state | string | Two-letter state of the consumer, as published. |
zip3 | string | First 3 digits of the published ZIP code only (area level, never the full ZIP). |
companyResponse | string | How the company closed the complaint, or In progress. |
companyPublicResponse | string | Optional public statement the company chose to publish. |
timelyResponse | boolean | Whether the company answered on time. |
submittedVia | string | Channel: Web, Phone, Referral, Postal mail and so on. |
tags | string | CFPB tags such as Older American or Servicemember, when published. |
consumerDisputed | boolean | Whether the consumer disputed the response (older complaints only). |
narrative | string | Consumer narrative only when CFPB publishes one (consented and scrubbed by CFPB). Passed through verbatim; CFPB's XXXX redaction is kept. |
hasNarrative | boolean | True when a published narrative is included. |
complaintUrl | string | Public CFPB page for the complaint. |
matchedCompanyNames | array | CFPB company names matched by the query (summary rows). |
windowFrom | string | Start of the summary window. |
windowTo | string | End of the summary window. |
complaints | integer | Complaint count in the window (summary rows). |
previousWindowComplaints | integer | Complaint count in the same-length window just before. |
changePercent | number | Change vs the previous window, in percent (null when the previous window had none). |
trend | string | rising, falling, flat or new. |
monthlyTrend | array | Complaints per calendar month, oldest first. |
topProducts | array | Top 5 products by complaint count. |
topIssues | array | Top 5 issues by complaint count. |
topStates | array | Top 5 consumer states by complaint count. |
timelyResponsePercent | number | Share of complaints answered on time. |
reliefPercentOfClosed | number | Share of closed complaints closed with monetary or non-monetary relief. |
responseBreakdown | object | Complaint count per company response. |
scrapedAt | string | When this row was produced. |
Public data only, no login. Fields a source does not publish come back empty rather than guessed. Coverage and freshness follow the underlying public source.
Pay on Apify, no subscription: $0.0015 per complaint returned (pay per event). The live price is on the actor page.
Disclosure: we build and maintain this actor.