# FINRA BrokerCheck Broker & Firm Registry Scraper (`scrapers_lat/finra-brokercheck-scraper`) Actor

Scrape FINRA BrokerCheck brokers and firms: CRD numbers, employment history, exams, registered states, firm address and phone, and full disclosure details. Filter by name, CRD, firm, state and disclosures. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/finra-brokercheck-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.75 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 BrokerCheck Broker & Firm Registry Scraper

> Look up US brokers and brokerage / investment-advisory firms from the FINRA BrokerCheck registry: CRD numbers, employment history, exams and registrations, registered states, firm contact details, and full disclosure / regulatory-event history. Built for financial-sector compliance, AML/KYC screening and broker/firm lead generation.

**📥 [Input](https://apify.com/scrapers_lat/finra-brokercheck-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/finra-brokercheck-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/finra-brokercheck-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/finra-brokercheck-scraper/examples)**

### What you get

Search by person name, firm name or CRD number and get clean, flat, spreadsheet-ready records.

For **individuals (brokers / advisers)**:

- Name, other known names, and CRD number
- Broker and investment-adviser registration status (active vs. previously registered)
- Current firm (name, CRD, city, state, registration date) and count of current roles
- Full previous-employment history with firms and dates
- Qualification exams passed (Series 7, Series 66, SIE and more) with dates
- Registrations, registered US states, and self-regulatory organizations
- Disclosure flag, disclosure count, disclosure types, and full disclosure details (date, type, resolution and disposition) for compliance and AML/KYC screening

For **firms (brokerage / advisory)**:

- Firm legal name, other names, and CRD number
- Broker-dealer and investment-adviser status, firm type, size, status and formation details
- Office address, ZIP and main business phone number
- Broker-dealer and adviser SEC numbers
- Registrations, registered US states and branch count
- Disclosure flag, disclosure count and types, plus direct owners and their positions

Every record includes the public profile URL, the search query that produced it, and a collection timestamp.

### Who is it for

- Compliance, AML and KYC teams screening brokers, advisers and firms
- Financial-services recruiters and sales teams building broker / firm lead lists
- Analysts and journalists researching regulatory history and disclosures
- Fintech and RegTech products that need clean registry data at scale

### How to use it

1. Pick a **Search Type**: individuals or firms.
2. Add one or more **Search Queries** — names, firm names or CRD numbers. Each item runs as its own search.
3. Optionally narrow by **US State**, include **previously registered** individuals, return **only records with disclosures**, and set the **max records**.
4. Run it, then export the results to JSON, CSV or Excel, or pull them through the API.

### Filters

- **Search Type** — individuals (brokers/advisers) or firms.
- **Search Queries** — name, firm name or CRD number; multiple searches per run.
- **US State** — restrict to a two-letter state code.
- **Include Previously Registered** — add former brokers, not just active ones.
- **Only With Disclosures** — keep only brokers/firms with a disclosure or regulatory event.
- **Fetch Full Detail Reports** — full history and disclosures per match, or lighter summary-only mode.

### FAQ

**Do I need an account or login for the source?** No. The actor handles everything internally; you never provide cookies or credentials.

**Will I be charged for empty runs?** No. You are only billed per real broker or firm record returned. A search that matches nothing costs nothing.

**Can I search by CRD number?** Yes. Put the CRD number in the search queries and the matching broker or firm is returned.

**How current is the data?** Records reflect the registry at the time of the run; each record carries a collection timestamp.

### Related actors

- [SEC EDGAR Filings Scraper](https://apify.com/scrapers_lat/sec-edgar-filings-scraper)
- [SEC Form 4 Insider Trades Scraper](https://apify.com/scrapers_lat/sec-form4-insider-trades-scraper)
- [SEC 13F Holdings Scraper](https://apify.com/scrapers_lat/sec-13f-holdings-scraper)

***

Made by [scrapers.lat](https://scrapers.lat). This actor is not affiliated with, endorsed by, or sponsored by FINRA. It collects publicly available registry information for legitimate compliance, research and lead-generation use.

# Actor input Schema

## `searchType` (type: `string`):

Search brokers (individuals) or brokerage / investment-advisory firms.

## `searchQueries` (type: `array`):

One or more searches to run: a person or firm name (for example 'John Smith', 'Goldman'), or a CRD number (for example '1731327'). Each item runs as a separate search.

## `usState` (type: `string`):

Optional. Restrict results to a US state by its two-letter code (for example 'NY', 'CA', 'TX').

## `includePrevious` (type: `boolean`):

Include individuals who are no longer actively registered (previous / former brokers) in addition to currently active ones. Applies to individual searches.

## `onlyWithDisclosures` (type: `boolean`):

Return only brokers or firms that have at least one disclosure / regulatory event on record (useful for compliance, AML and KYC screening).

## `fetchDetails` (type: `boolean`):

Fetch the full profile for each match (employment history, exams, registered states, and full disclosure details). Turn off for faster, lighter results with only summary fields.

## `maxRecords` (type: `integer`):

Maximum number of broker or firm records to return across all searches.

## Actor input object example

```json
{
  "searchType": "individual",
  "searchQueries": [
    "John Smith"
  ],
  "includePrevious": true,
  "onlyWithDisclosures": false,
  "fetchDetails": true,
  "maxRecords": 30
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQueries": [
        "John Smith"
    ],
    "maxRecords": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/finra-brokercheck-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 = {
    "searchQueries": ["John Smith"],
    "maxRecords": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/finra-brokercheck-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 '{
  "searchQueries": [
    "John Smith"
  ],
  "maxRecords": 30
}' |
apify call scrapers_lat/finra-brokercheck-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7j1LpKRgBzRlVn8as/builds/Fkhk9DzWdVevb4gbx/openapi.json
