# CFPB Enforcement Actions Monitor (`mibedk/cfpb-enforcement-monitor`) Actor

Monitor CFPB enforcement actions as normalized JSON: respondent, docket, filing date, status, product categories, civil money penalties, redress amounts, and document links. For compliance teams, regtech, and law firms.

- **URL**: https://apify.com/mibedk/cfpb-enforcement-monitor.md
- **Developed by:** [Mikkel Bech-Hansen](https://apify.com/mibedk) (community)
- **Categories:** Business, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.36 / 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Enforcement Actions Monitor

Monitor U.S. **Consumer Financial Protection Bureau (CFPB) enforcement actions** as clean, normalized JSON — respondent, docket number, filing date, case status, product categories, **civil money penalty and redress amounts (in USD)**, and direct links to consent orders, complaints, and judgment PDFs.

Built for compliance teams, regtech platforms, law firms, consultants, and investors who need same-day awareness of new CFPB enforcement activity without manually checking the CFPB website.

### What it does

1. Crawls the official CFPB enforcement actions feed (`consumerfinance.gov/enforcement/actions/`), newest-first, with bounded pagination.
2. Optionally fetches each action's detail page to extract the docket number, forum (Administrative Proceeding / Civil Action), case status, product tags (Credit Cards, Mortgages, Payments, …), penalty amounts parsed from the order text, and related document links.
3. Deduplicates by action slug and returns stable, structured records.

Fully deterministic — plain HTTP + HTML parsing, no browser, no LLM, no paid APIs. A typical 20-action run with details completes in seconds.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `max_items` | integer | 20 | Max enforcement actions to return (cap: 500), newest-first. |
| `since_date` | string | — | Only actions filed on/after this `YYYY-MM-DD` date. Pair with a schedule for incremental daily monitoring. |
| `fetch_details` | boolean | true | Fetch detail pages for docket/status/products/penalties/documents. `false` = list fields only (faster). |
| `max_pages` | integer | 5 | Max paginated list pages to scan (10 actions/page). |

### Output example

```json
{
  "slug": "synapse-financial-technologies-inc",
  "url": "https://www.consumerfinance.gov/enforcement/actions/synapse-financial-technologies-inc/",
  "respondent": "Synapse Financial Technologies, Inc.",
  "dateFiled": "2025-08-21",
  "summary": "On August 21, 2025, the Bureau commenced an adversary proceeding and filed a complaint and proposed stipulated final judgment and order against Synapse Financial Technologies, Inc.",
  "forum": "Civil Action",
  "docketNumber": "1:25-ap-01052",
  "status": "Pending Litigation",
  "products": ["Payments"],
  "civilMoneyPenaltyUsd": 1,
  "redressUsd": null,
  "documents": [
    {
      "title": "Adversary Proceeding Complaint",
      "url": "https://files.consumerfinance.gov/f/documents/cfpb_synapse-financial-technologies_complaint_2025-08.pdf"
    }
  ],
  "detailFetched": true,
  "scrapedAt": "2026-07-26T01:00:00.000Z"
}
````

### Use cases

- **Compliance alerting** — schedule daily runs with `since_date` and a webhook; get notified the day a new enforcement action drops.
- **Regtech data feeds** — normalized penalty amounts and product categories, ready for dashboards and risk models.
- **Competitive/market intelligence** — track enforcement trends by product vertical (credit cards, payments, mortgage, debt collection).
- **Legal research** — direct links to consent orders, complaints, and stipulated judgments.

### Pricing

Pay per event: **$0.001 per actor start + $0.00036 per record** ($0.36 per 1,000 records). A typical 20-record daily monitor run costs well under a cent.

### Notes

- Data source: public CFPB enforcement archive (government public records).
- Penalty/redress amounts are parsed from order text; `null` when no amount is stated. `civilMoneyPenaltyUsd` is the largest civil money penalty mentioned on the page (related-party actions may be referenced in the text).
- The actor never requires authentication and collects only public data.

# Actor input Schema

## `max_items` (type: `integer`):

Maximum number of enforcement actions to return (default: 20, hard cap: 500). Actions are returned newest-first by filing date.

## `since_date` (type: `string`):

Only include actions filed on or after this ISO date (YYYY-MM-DD), e.g. 2025-01-01. Empty = no date filter. Use with schedules for incremental monitoring.

## `fetch_details` (type: `boolean`):

If true (default), fetch each action's detail page to extract docket number, forum, status, product categories, penalty/redress amounts, and document links. If false, only list-page fields (respondent, filing date, summary, URL) are returned — faster and cheaper.

## `max_pages` (type: `integer`):

Maximum number of paginated list pages to scan (10 actions per page, default: 5). Bounds runtime for large backfills.

## Actor input object example

```json
{
  "max_items": 20,
  "fetch_details": true,
  "max_pages": 5
}
```

# 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("mibedk/cfpb-enforcement-monitor").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("mibedk/cfpb-enforcement-monitor").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 '{}' |
apify call mibedk/cfpb-enforcement-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CFPB Enforcement Actions Monitor",
        "description": "Monitor CFPB enforcement actions as normalized JSON: respondent, docket, filing date, status, product categories, civil money penalties, redress amounts, and document links. For compliance teams, regtech, and law firms.",
        "version": "0.1",
        "x-build-id": "JkUPe2bfSi1DHetcs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mibedk~cfpb-enforcement-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mibedk-cfpb-enforcement-monitor",
                "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/mibedk~cfpb-enforcement-monitor/runs": {
            "post": {
                "operationId": "runs-sync-mibedk-cfpb-enforcement-monitor",
                "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/mibedk~cfpb-enforcement-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-mibedk-cfpb-enforcement-monitor",
                "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": {
                    "max_items": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of enforcement actions to return (default: 20, hard cap: 500). Actions are returned newest-first by filing date.",
                        "default": 20
                    },
                    "since_date": {
                        "title": "Since date",
                        "type": "string",
                        "description": "Only include actions filed on or after this ISO date (YYYY-MM-DD), e.g. 2025-01-01. Empty = no date filter. Use with schedules for incremental monitoring."
                    },
                    "fetch_details": {
                        "title": "Fetch detail pages",
                        "type": "boolean",
                        "description": "If true (default), fetch each action's detail page to extract docket number, forum, status, product categories, penalty/redress amounts, and document links. If false, only list-page fields (respondent, filing date, summary, URL) are returned — faster and cheaper.",
                        "default": true
                    },
                    "max_pages": {
                        "title": "Maximum list pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of paginated list pages to scan (10 actions per page, default: 5). Bounds runtime for large backfills.",
                        "default": 5
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
