FINRA BrokerCheck Scraper — Advisors, Brokers & Firms
Pricing
from $2.00 / 1,000 results
FINRA BrokerCheck Scraper — Advisors, Brokers & Firms
Scrape FINRA BrokerCheck: US financial advisors, brokers and firms with name, CRD number, broker/advisor registration scope, disclosure flag, years in industry, current firm and location. Search by name, CRD or firm. For KYC, due diligence and advisor lead gen. Not affiliated with FINRA.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
FINRA BrokerCheck Scraper — Advisors, Brokers, Firms, CRD & Disclosures
The premier FINRA BrokerCheck scraper for financial advisor lead generation, broker-dealer recruiting, and automated KYC compliance verification. Query the official BrokerCheck registry by individual advisor name, registered representative CRD number, or advisory firm name. Extract comprehensive profile records: full legal names, Central Registration Depository (CRD) numbers, broker and investment adviser registration scopes, disclosure flags, industry experience tenure, current employer firms, branch addresses, and canonical profile links.
Export thousands of records seamlessly to JSON, CSV, Excel, or direct API integration.
Designed for compliance officers, KYC & AML analysts, RIA and wealth management recruiters, fintech onboarding engineers, investment researchers, and B2B sales teams targeting licensed financial professionals across the United States.
⚡ At a glance
| Capability | Feature Details |
|---|---|
| Target Registry | FINRA BrokerCheck — official US Central Registration Depository (CRD) public database |
| Search Modes | 2-in-1: Individuals (brokers, investment advisers, wealth managers) & Firms (brokerages, RIAs) |
| Query Parameters | Search by full name, surname, firm name (e.g. "Morgan Stanley"), or specific numeric CRD identifier |
| Key Risk Signals | Flags disciplinary history, regulatory disclosures, customer disputes, civil liens, and bankruptcies (hasDisclosures) |
| Tenure & Seniority | Automatically computes industry tenure in days and years (industryYears) from initial licensing dates |
| Scale & Pagination | Unlocked deep pagination supporting 1,000+ to 25,000+ records per run with zero hard caps |
| Speed & Performance | Pure HTTP streaming engine — collects 500+ advisors in ~15-20 seconds |
| Authentication | 100% keyless, public data access; no account login, session tokens, or browser automation needed |
| Export Formats | Clean JSON, NDJSON, CSV, Excel (.xlsx), HTML tables, and Apify REST API |
🔎 Why scrape FINRA BrokerCheck?
The Financial Industry Regulatory Authority (FINRA) maintains BrokerCheck as the authoritative public record of securities firms and professionals in the United States. Over 620,000 registered representatives and 3,400 securities firms operate under FINRA jurisdiction. Every licensed broker and registered investment adviser (RIA) is assigned a unique CRD number, which tracks their complete licensing status, career mobility, employment tenure, and formal regulatory disclosures.
For compliance departments, wealth management firms, and B2B providers, accessing BrokerCheck data systematically is indispensable:
- Mandatory KYC & Counterparty Due Diligence: Institutional allocators and financial institutions must verify registration status and review disclosure records before initiating business or onboarding funds.
- Advisor Recruiting & Talent Acquisition: Registered Investment Advisers (RIAs) and independent broker-dealers continuously recruit top-producing advisors based on their years in the industry, current firm affiliation, and clean regulatory records.
- Disciplinary & Regulatory Risk Screening: The
hasDisclosuresflag surfaces customer complaints, regulatory arbitrations, suspensions, and financial liens, shielding institutions from high-risk partnerships. - B2B Sales Targeting: Software, fintech, insurance, and asset management vendors selling directly to independent wealth advisors need accurate, verified directories sorted by firm and geographic region.
However, the manual BrokerCheck interface only supports single-person lookups. Screening a book of 500 advisors or compiling regional rosters by hand takes days of manual search. This FINRA BrokerCheck scraper automates bulk retrieval: input names, corporate entities, or CRD lists, and extract clean, tabular datasets structured for instant CRM or compliance audit usage.
🎯 Key Use Cases & Business Applications
1. Automated Compliance, KYC & AML Screening
Batch-screen counterparties, investment advisors, and corporate partners against official FINRA registries. Immediately flag individuals with active customer complaints or regulatory actions.
2. Financial Advisor & RIA Recruiting
Wealth management executive recruiters can search target broker-dealers (e.g., Merrill Lynch, Edward Jones, LPL Financial) to build comprehensive candidate pipelines segmented by state, city, and industry tenure (industryYears).
3. Fintech & WealthTech Account Onboarding
Embed real-time licensing validation into digital onboarding workflows for trading apps, custodial platforms, and financial software via the Apify REST API.
4. Mergers & Acquisitions (M&A) Due Diligence
Corporate development teams evaluating wealth management acquisitions can map a target firm's branch network (branchesCount), licensed personnel headcount, and historical disciplinary record.
5. Academic & Industry Market Intelligence
Analyze geographic advisor migration patterns, industry tenure distributions, and the statistical prevalence of regulatory disclosures across regional markets.
✨ Key Features & Technical Highlights
- ✅ Two Dedicated Entity Modes:
- Individual Mode: Extracts registered brokers, investment advisers, and dual-registered wealth managers.
- Firm Mode: Extracts corporate brokerage and RIA entities, including branch counts and headquarters addresses.
- ✅ Multi-Term Query Execution: Provide dozens of search terms (individual names, broker-dealer firm names, or numeric CRDs) in a single run.
- ✅ Deep 1,000+ Results Pagination: Traverses all available 50-item search pages continuously without arbitrary page cutoffs. Setting
maxPagesPerQuery: 0allows complete multi-thousand result extraction bounded only by your requestedmaxItems. - ✅ Strict Deduplication by CRD: Normalizes every record by unique CRD identifier, guaranteeing zero duplicate entries even when searching overlapping query terms.
- ✅ Accurate Industry Tenure Calculation: Normalizes FINRA calendar entry dates into explicit numerical values (
industryDaysandindustryYears), enabling clean filtering by seniority. - ✅ Full Branch Office Geocoding: Extracts office street addresses, city, state, and postal code for firm searches.
- ✅ Direct BrokerCheck Summary Links: Provides permanent, direct URLs (
brokercheckUrl) to each representative's or firm's official FINRA summary page for manual audit verification.
🥊 FINRA BrokerCheck Scraper vs Manual Search
| Feature | FINRA BrokerCheck Scraper | Manual BrokerCheck Web UI | Generic Web Scrapers |
|---|---|---|---|
| Speed | 500+ records in ~18 seconds | 1 lookup per minute | Often breaks on JSON parsing |
| Bulk Search | Unlimited names & firms in one run | Single name per query | Difficult to configure multi-query |
| Data Export | JSON, CSV, Excel, REST API | Print-to-PDF only | Messy unformatted HTML |
| Tenure Normalization | Auto-calculated industryYears | Manual date subtraction | Raw unparsed strings |
| Deduplication | Unique CRD deduplication (0 dups) | Manual spreadsheet deduplication | Frequent duplicate entries |
| Automated Monitoring | Scheduled hourly / weekly runs | Impossible without manual work | High operational overhead |
📥 Input Parameters
All parameters are optional, but you must provide at least one search query in searchTerms.
| Parameter | Type | Default | Description |
|---|---|---|---|
entityType | String | "individual" | Target entity type: "individual" (brokers & advisors) or "firm" (brokerages & RIAs). |
searchTerms | Array | ["john smith"] | Names, CRD numbers, or firm names to query (e.g. ["john smith", "Morgan Stanley"]). |
maxItems | Integer | 0 | Total maximum results across all queries (0 = auto/unlimited, governed by available results). |
maxPagesPerQuery | Integer | 0 | Maximum pages per query at 50 results/page (0 = auto/unlimited, governed by maxItems). |
proxyConfiguration | Object | { "useApifyProxy": true } | Proxy configuration. Public FINRA API operates reliably on datacenter proxies. |
Example Input Configuration: Individual Advisors
{"entityType": "individual","searchTerms": ["David Miller", "LPL Financial", "Charles Schwab"],"maxItems": 1000,"maxPagesPerQuery": 0,"proxyConfiguration": {"useApifyProxy": true}}
Example Input Configuration: Securities Firms
{"entityType": "firm","searchTerms": ["Wealth Management", "Capital Advisors", "Securities"],"maxItems": 500,"maxPagesPerQuery": 0}
📤 Output Data Structure
The scraper produces clean, normalized JSON records tailored to the chosen entity mode.
Sample Individual Record (entityType: "individual")
{"type": "individual","crd": "2840192","firstName": "DAVID","middleName": "MICHAEL","lastName": "MILLER","nameSuffix": "JR.","fullName": "DAVID MICHAEL MILLER JR.","otherNames": ["DAVE MILLER","D. M. MILLER"],"isBroker": true,"isAdvisor": true,"brokerScope": "Active","advisorScope": "Active","hasDisclosures": false,"registrationCount": 4,"employmentsCount": 1,"industryDays": 7420,"industryYears": 20.3,"currentFirm": "MORGAN STANLEY","currentFirmCity": "NEW YORK","currentFirmState": "NY","currentFirms": ["MORGAN STANLEY"],"brokercheckUrl": "https://brokercheck.finra.org/individual/summary/2840192","scrapedAt": "2026-11-10T14:50:00.000Z"}
Sample Firm Record (entityType: "firm")
{"type": "firm","crd": "149777","name": "BEACON WEALTH ADVISORS, LLC","otherNames": ["BEACON CAPITAL MANAGEMENT"],"isAdvisor": true,"advisorScope": "Active","hasDisclosures": false,"branchesCount": 6,"street": "100 FEDERAL STREET, 18TH FLOOR","city": "BOSTON","state": "MA","postalCode": "02110","country": "United States","brokercheckUrl": "https://brokercheck.finra.org/firm/summary/149777","scrapedAt": "2026-11-10T14:50:00.000Z"}
📊 Complete Field Reference & Data Coverage
👤 Individual Advisor Fields
| Field | Type | Description | Coverage |
|---|---|---|---|
type | String | Fixed identifier ("individual") | 🟢 High (100%) |
crd | String | Central Registration Depository (CRD) identifier | 🟢 High (100%) |
fullName | String | Clean full name with middle names and suffixes | 🟢 High (100%) |
firstName / lastName | String | Normalized given and family name | 🟢 High (100%) |
otherNames | Array | Known business aliases or previous legal names | 🟡 Conditional (~40%) |
isBroker | Boolean | True if actively registered as a broker-dealer rep | 🟢 High (100%) |
isAdvisor | Boolean | True if actively registered as an investment adviser | 🟢 High (100%) |
brokerScope / advisorScope | String | Detailed scope status string ("Active", etc.) | 🟢 High (100%) |
hasDisclosures | Boolean | True if profile contains public regulatory disclosures | 🟢 High (100%) |
industryYears | Number | Calculated industry experience in years | 🟢 High (~90%) |
industryDays | Number | Cumulative days elapsed since industry licensing | 🟢 High (~90%) |
currentFirm | String | Primary currently employing brokerage or RIA | 🟡 Conditional (~60-70% active) |
currentFirmCity / State | String | Primary branch office location | 🟡 Conditional (~60-70% active) |
currentFirms | Array | All simultaneous active employer firms | 🟢 High (100%) |
brokercheckUrl | String | Permanent canonical link to FINRA summary dossier | 🟢 High (100%) |
scrapedAt | String | ISO 8601 UTC timestamp of extraction | 🟢 High (100%) |
🏢 Brokerage & RIA Firm Fields
| Field | Type | Description | Coverage |
|---|---|---|---|
type | String | Fixed identifier ("firm") | 🟢 High (100%) |
crd | String | Central Registration Depository (CRD) identifier | 🟢 High (100%) |
name | String | Registered legal or trade name of the firm | 🟢 High (100%) |
otherNames | Array | DBA (Doing Business As) names and previous names | 🟡 Conditional (~40%) |
isAdvisor | Boolean | True if registered as an investment advisory firm | 🟢 High (100%) |
hasDisclosures | Boolean | True if firm has reported formal disclosures | 🟢 High (100%) |
branchesCount | Number | Total registered branch offices across the US | 🟢 High (~85%) |
street | String | Primary corporate office street address | 🟢 High (~95%) |
city / state | String | Primary corporate city and two-letter state | 🟢 High (~95%) |
postalCode / country | String | Zip code and country identifier | 🟢 High (~95%) |
brokercheckUrl | String | Direct canonical profile link on BrokerCheck | 🟢 High (100%) |
scrapedAt | String | ISO 8601 UTC timestamp of extraction | 🟢 High (100%) |
🚀 Step-by-Step Usage Guide
1. Web Console Interface
- Navigate to FINRA BrokerCheck Scraper on the Apify Console.
- Select your
entityType(individualorfirm). - Enter one or more
searchTerms(e.g.,"Merrill Lynch","Michael Scott"). - Specify
maxItems(e.g.,500or0for all available results). - Click Start to initiate the search and monitor live results.
2. Python API Client
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")# Search for wealth advisors at Morgan Stanleyrun_input = {"entityType": "individual","searchTerms": ["Morgan Stanley Wealth"],"maxItems": 500,"maxPagesPerQuery": 0}run = client.actor("haketa/finra-brokercheck-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():status = "⚠️ Disclosures" if item["hasDisclosures"] else "✅ Clean"print(f"{item['fullName']} (CRD: {item['crd']}) | {item.get('currentFirm')} | {item.get('industryYears')} yrs | {status}")
3. Node.js API Client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: 'YOUR_APIFY_TOKEN',});const run = await client.actor('haketa/finra-brokercheck-scraper').call({entityType: 'individual',searchTerms: ['John Smith'],maxItems: 200,maxPagesPerQuery: 0,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Retrieved ${items.length} FINRA advisor profiles.`);
4. Direct cURL / REST API
curl -X POST "https://api.apify.com/v2/acts/haketa~finra-brokercheck-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"entityType": "individual","searchTerms": ["Edward Jones"],"maxItems": 250,"maxPagesPerQuery": 0}'
⚖️ FINRA Disclosure Categories & Compliance Risk Tiers
BrokerCheck aggregates disclosures across several formal regulatory categories:
| Disclosure Category | Description | Primary Impact |
|---|---|---|
| Customer Dispute | Formal arbitration, civil litigation, or written customer complaints | Product suitability & fiduciary conduct |
| Regulatory Action | Disciplinary proceedings initiated by FINRA, SEC, or state regulators | Suspension, fines, or statutory bars |
| Criminal Matter | Felony charges, misdemeanor convictions, or plea agreements | Mandatory statutory disqualification |
| Civil Judicial Event | State or federal civil court injunctions involving investment activities | Legal and fiduciary liability |
| Termination | Discharged or permitted to resign following internal firm allegations | Internal policy or regulatory violations |
| Financial / Lien | Personal bankruptcy filings, compromise with creditors, tax liens | Financial solvency and creditworthiness |
🔗 KYC & Due Diligence Integration Workflows
- Automated Watchlist Auditing: Ingest lists of thousands of financial advisors periodically to detect any newly added disclosure events (
hasDisclosures: true). - Recruiting CRM Scoring: Weight prospective broker candidates by calculating
industryYearsand filtering for zero-disclosure histories. - Fintech Onboarding API: Execute synchronous background checks during platform account creation to verify licensed broker credentials before enabling trading access.
- Institutional Allocation Diligence: Ensure all portfolio managers and managing directors at counterparty investment firms maintain clean licensing and active scopes.
- Historical Seniority Benchmarking: Measure advisor turnover and career trajectory across top wirehouses to identify team lift-out opportunities.
- Continuous Compliance Monitoring: Automate weekly delta checks against employee watchlists to flag newly opened customer arbitrations before external audits.
❓ Frequently Asked Questions (FAQ)
Do I need an account or API key to access BrokerCheck data?
No. The scraper queries public FINRA BrokerCheck endpoints directly without requiring developer registrations or API tokens.
What does the hasDisclosures flag indicate?
The hasDisclosures flag indicates whether an advisor or firm has reported customer arbitrations, regulatory disciplinary actions, criminal matters, or civil financial liens. A true value suggests that compliance teams should review the full BrokerCheck record.
Why are currentFirm and location fields empty for some individuals?
If an individual is no longer actively employed with a registered firm (e.g. retired, between firms, or inactive license status), FINRA does not list a current firm. These fields are populated on approximately 60-70% of records representing currently active practitioners.
How does deep pagination work?
Setting maxPagesPerQuery: 0 enables the scraper to paginate through all available 50-hit batches for each query term until all results are collected or your overall maxItems limit is reached.
Can I export directly to CSV for CRM import?
Yes. You can export datasets in CSV or Excel formats, or use Apify integrations to stream leads directly into Salesforce, HubSpot, or custom KYC databases.
📋 Changelog
Version 1.2.0 (2026-11)
- Deep 1,000+ Pagination: Enabled auto-unlimited deep pagination with
maxPagesPerQuery: 0governed bymaxItems. - Fast Prefill Execution: Streamlined default inputs to deliver verified discovery runs in under 15 seconds.
- Enhanced Tenure Calculations: Normalized calendar dates to ensure consistent
industryYearsandindustryDaysacross all advisor profiles. - Strict Deduplication by CRD: Hardened CRD deduplication across multiple concurrent queries.
Version 1.1.0 (2026-10)
- Added firm branch address parsing (
firm_ia_address_details). - Standardized
output_schema.jsonwith version 1 specifications.
Version 1.0.0 (2026-10)
- Initial release with individual broker search and disclosure flag extraction.