# FINRA Disciplinary Actions Scraper – Sanctions, Bars & Fines (`giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines`) Actor

Scrape FINRA disciplinary actions: broker/firm sanctions, fines, bars, suspensions. Filter by date, document type, individual or firm name.

- **URL**: https://apify.com/giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines.md
- **Developed by:** [Giovanni Bianciardi](https://apify.com/giovannibiancia) (community)
- **Categories:** Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $45.00 / 1,000 sanction 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

## FINRA Disciplinary Actions Scraper

Extract disciplinary actions from [FINRA's official enforcement database](https://www.finra.org/rules-guidance/oversight-enforcement/finra-disciplinary-actions) — covering broker sanctions, permanent bars, suspensions, fines, and consent orders against registered individuals and firms.

Built for compliance teams, due diligence analysts, legal researchers, and financial data aggregators who need structured, queryable enforcement data from FINRA.

---

### What data does this actor extract?

Each record includes:

| Field             | Description                                 |
| ----------------- | ------------------------------------------- |
| `case_id`         | Official FINRA case identifier              |
| `individual_name` | Name of the sanctioned broker or individual |
| `firm_name`       | Associated broker-dealer or firm            |
| `document_type`   | AWC, Decision, Order of Acceptance, etc.    |
| `action_date`     | Date the disciplinary action was issued     |
| `sanctions`       | Fine amount, suspension length, bar type    |
| `document_url`    | Direct link to the official PDF filing      |

---

### Use cases

- **Broker background checks** — screen financial professionals before hiring or partnering
- **Compliance screening** — automated monitoring of FINRA enforcement actions for AML/KYC workflows
- **Due diligence** — verify the disciplinary history of advisors before onboarding clients
- **Legal research** — track enforcement trends across document types and date ranges
- **Financial journalism** — investigate enforcement patterns against specific firms or individuals
- **Data enrichment** — cross-reference with [CPA Leads Scraper](https://apify.com/giovannibiancia/cpa-leads-scraper-usa-emails-phones-accounting-firms) or [CFP Board Scraper](https://apify.com/giovannibiancia/cfp-board-scraper) to flag disciplined professionals in your lists

---

### Input

```json
{
  "search": "smith",
  "firms": "Morgan Stanley",
  "dateFrom": "2023-01-01",
  "dateTo": "2024-12-31",
  "documentType": "All",
  "maxItems": 500
}
````

All fields are optional. Running with no input returns the full paginated dataset.

***

### Output sample

```json
{
  "case_id": "2023078945601",
  "individual_name": "John D. Smith",
  "firm_name": "Morgan Stanley Smith Barney LLC",
  "document_type": "AWC",
  "action_date": "2024-03-15",
  "sanctions": "Fined $10,000; Suspended 30 days",
  "document_url": "https://www.finra.org/sites/default/files/fda_documents/2023078945601.pdf"
}
```

***

### Pricing

Charged per extracted disciplinary action record (`disciplinary-record` event). Minimum charge applies per run.

***

### Related actors

- 🇺🇸 [CPA Leads Scraper USA](https://apify.com/giovannibiancia/cpa-leads-scraper-usa-emails-phones-accounting-firms) — 720,000+ licensed CPAs with emails, phones, firm data
- 📋 [CFP Board Scraper](https://apify.com/giovannibiancia/cfp-board-scraper) — 71,000+ Certified Financial Planners with planning services, languages, AUM minimums
- 🔍 [GitHub Star Gazer](https://apify.com/giovannibiancia/github-star-gazer-actor) — enrich GitHub stargazers with contact data

***

### Legal & compliance

This actor accesses only publicly available data from FINRA's official website. FINRA publishes disciplinary actions as part of its investor protection mandate under FINRA Rule 8313. No authentication required. No private data is accessed.

***

### Need a ready-to-use dataset?

Don't want to run the scraper yourself? A pre-built, regularly refreshed FINRA Disciplinary Actions dataset is available for direct purchase. [Contact via Apify](https://apify.com/giovannibiancia) for bulk licensing or dataset delivery.

# Actor input Schema

## `search` (type: `string`):

General keyword search across all fields

## `firms` (type: `string`):

Filter by firm name

## `individuals` (type: `string`):

Filter by individual name

## `case_id` (type: `string`):

Filter by case ID

## `date_min` (type: `string`):

Filter actions from this date (YYYY-MM-DD)

## `date_max` (type: `string`):

Filter actions up to this date (YYYY-MM-DD)

## `document_type` (type: `string`):

Filter by document type

## `max_results` (type: `integer`):

Maximum number of results to return (0 = unlimited)

## `delay_seconds` (type: `number`):

Pause between page requests to avoid rate limiting

## Actor input object example

```json
{
  "document_type": "All",
  "max_results": 100,
  "delay_seconds": 0.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 = {
    "search": "",
    "firms": "",
    "individuals": "",
    "case_id": "",
    "date_min": "",
    "date_max": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines").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 = {
    "search": "",
    "firms": "",
    "individuals": "",
    "case_id": "",
    "date_min": "",
    "date_max": "",
}

# Run the Actor and wait for it to finish
run = client.actor("giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines").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 '{
  "search": "",
  "firms": "",
  "individuals": "",
  "case_id": "",
  "date_min": "",
  "date_max": ""
}' |
apify call giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=giovannibiancia/finra-disciplinary-actions-scraper---sanctions-bars-fines",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FINRA Disciplinary Actions Scraper – Sanctions, Bars & Fines",
        "description": "Scrape FINRA disciplinary actions: broker/firm sanctions, fines, bars, suspensions. Filter by date, document type, individual or firm name.",
        "version": "0.0",
        "x-build-id": "4oCs5gLSJsdEwKGKK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/giovannibiancia~finra-disciplinary-actions-scraper---sanctions-bars-fines/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-giovannibiancia-finra-disciplinary-actions-scraper---sanctions-bars-fines",
                "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/giovannibiancia~finra-disciplinary-actions-scraper---sanctions-bars-fines/runs": {
            "post": {
                "operationId": "runs-sync-giovannibiancia-finra-disciplinary-actions-scraper---sanctions-bars-fines",
                "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/giovannibiancia~finra-disciplinary-actions-scraper---sanctions-bars-fines/run-sync": {
            "post": {
                "operationId": "run-sync-giovannibiancia-finra-disciplinary-actions-scraper---sanctions-bars-fines",
                "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": {
                    "search": {
                        "title": "Search",
                        "type": "string",
                        "description": "General keyword search across all fields"
                    },
                    "firms": {
                        "title": "Firm Name",
                        "type": "string",
                        "description": "Filter by firm name"
                    },
                    "individuals": {
                        "title": "Individual Name",
                        "type": "string",
                        "description": "Filter by individual name"
                    },
                    "case_id": {
                        "title": "Case ID",
                        "type": "string",
                        "description": "Filter by case ID"
                    },
                    "date_min": {
                        "title": "Action Date From",
                        "type": "string",
                        "description": "Filter actions from this date (YYYY-MM-DD)"
                    },
                    "date_max": {
                        "title": "Action Date To",
                        "type": "string",
                        "description": "Filter actions up to this date (YYYY-MM-DD)"
                    },
                    "document_type": {
                        "title": "Document Type",
                        "enum": [
                            "All",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5",
                            "6",
                            "7",
                            "8"
                        ],
                        "type": "string",
                        "description": "Filter by document type",
                        "default": "All"
                    },
                    "max_results": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of results to return (0 = unlimited)",
                        "default": 100
                    },
                    "delay_seconds": {
                        "title": "Delay Between Requests (seconds)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Pause between page requests to avoid rate limiting",
                        "default": 0.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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
