FINRA BrokerCheck Scraper
Pricing
from $2.00 / 1,000 results
FINRA BrokerCheck Scraper
[π° $2 / 1K] Search FINRA BrokerCheck for US securities brokers and firms. Get CRD numbers, registrations, license exams, employment history, and regulatory disclosures by name, CRD, or state.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pull public regulatory records for US securities brokers and brokerage firms straight from FINRA BrokerCheck β CRD numbers, license exams, full employment timelines with dates, state-by-state registrations, and every disclosure event (customer disputes, regulatory actions, criminal, financial, and judgment records). Search by name, look up a known CRD number, or filter by state, and pull both individual brokers and firms in one run. Built for compliance teams, financial recruiters, and due-diligence analysts who need verified broker histories without manually opening one BrokerCheck profile at a time.
Why This Scraper?
- CRD-anchored records β every broker and firm is keyed to its Central Registration Depository number, the same unique ID regulators use, so results join cleanly to your own systems and never collide on similar names.
- Full license-exam history β Series 7, Series 63, Series 66, the SIE, and every principal and product exam a broker has passed, each with the date taken and its scope.
- Complete employment timeline with dates β current and previous registering firms, each with firm CRD, city, state, and registration start/end dates β not just the latest employer.
- State-by-state registration coverage β registration status across all 50 states plus DC and Puerto Rico, alongside self-regulatory-organization (SRO) registrations like FINRA and the exchanges.
- Every regulatory disclosure event β customer disputes, regulatory actions, criminal, financial, and judgment/lien records, each with event date, type, and resolution β the data that matters most for vetting.
- Brokers and firms in one actor β flip a single setting to pull individual financial professionals or brokerage and investment-advisory companies, with a
recordTypefield on every row to split them downstream. - Active and formerly-registered records β include barred, suspended, and no-longer-registered individuals by toggling one switch, so you catch the people who left the industry under a cloud.
- Broker-dealer and investment-adviser scopes β separate registration-scope fields for the BD and IA sides of every record, so you can tell a dual-registrant from a pure broker or pure adviser.
Use Cases
Compliance & Due Diligence
- Vet a candidate or counterparty's full regulatory history before onboarding
- Confirm a broker holds the exams and state registrations required for a role
- Flag undisclosed customer disputes or regulatory actions during KYC reviews
- Build an audit trail of CRD-verified employment history for a hire
Recruiting & Talent
- Source licensed brokers by name, firm, or state for a specific desk
- Verify a recruit's claimed Series 7 / Series 66 licenses against the official record
- Track which firms a target candidate has registered with and for how long
- Filter to brokers currently at a named competitor to build a poaching list
Investor Protection & Research
- Screen an advisor before handing over assets β disclosures, sanctions, and bars
- Identify clusters of disclosure events tied to a single firm or branch
- Monitor formerly-registered brokers who left after regulatory trouble
- Compare registration scopes to spot advisers operating outside their license
Journalism & Regulatory Research
- Investigate a firm's roster of brokers and their collective disclosure record
- Build datasets of barred or suspended individuals for accountability reporting
- Map employment movement of high-disclosure brokers across firms over time
- Quantify disclosure rates by state, firm, or registration scope
Data Enrichment & Lead Generation
- Enrich a CRM of financial professionals with current employer and CRD numbers
- Append verified license and registration data to an existing contact list
- Power advisor-comparison and broker-lookup tools with structured records
- Feed BrokerCheck data into risk-scoring and onboarding dashboards
Getting Started
Search Brokers by Name
The simplest run β one name, up to 100 brokers, full profiles:
{"searchType": "individual","searchQueries": ["Smith"],"maxResults": 100}
Filter Brokers by State and Employer
Keep only brokers registered in California whose current firm is Edward Jones:
{"searchType": "individual","searchQueries": ["Smith"],"state": "CA","employerName": "Edward Jones","maxResults": 200}
Look Up Records by CRD Number
Pull exact records when you already know the CRD β works for brokers and firms (set searchType to match):
{"searchType": "firm","crdNumbers": ["7556", "8174"],"includeDetails": true}
Advanced β Include Inactive Brokers, Full Profiles
Search a firm name, include formerly-registered individuals, and fetch every profile in full:
{"searchType": "individual","searchQueries": ["Morgan Stanley"],"includeInactive": true,"includeDetails": true,"maxResults": 500}
Input Reference
What to Search
| Parameter | Type | Default | Description |
|---|---|---|---|
searchType | select | Brokers (individuals) | Whether to look up brokers (individual financial professionals) or firms (brokerage and advisory companies). Applies to both name searches and CRD lookups. |
searchQueries | string[] | ["Smith"] | One or more names or keywords (a broker name like "John Smith" or a firm name like "Morgan Stanley"). Each query is searched separately; results are merged and de-duplicated by CRD number. |
crdNumbers | string[] | [] | Look up specific records directly by their CRD number. Uses the same searchType to decide whether these are broker or firm CRDs. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
state | select | All states | Limit broker searches to professionals registered in one US state (all 50 states plus DC and Puerto Rico). Applies to broker name searches only. |
employerName | string | "" | Keep only brokers whose current employer name contains this text (case-insensitive). Leave blank to keep everyone. |
includeInactive | boolean | false | Include records no longer active in the industry (barred, suspended, or out of scope). Off by default β only currently or recently active records are returned. |
Output Detail & Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
includeDetails | boolean | true | Fetch each record's full profile: license exams, registrations, complete employment history, and disclosure events. Turn off for faster, lighter runs that return listing-level summary data only. |
maxResults | integer | 100 | How many records to return across all queries and CRD lookups. Set to 0 to collect as many as possible. Results are capped to exactly this number. This actor returns up to 250,000 results per run; larger requests are collected up to that ceiling. |
Output
Every row carries a recordType field β individual or firm β so you can split the two cleanly downstream. Detail arrays (exams, employment history, registrations, disclosures) appear only when includeDetails is on.
Broker (recordType: "individual")
{"recordType": "individual","crdNumber": "1056376","name": "JAMES MICHAEL SMITH","firstName": "JAMES","middleName": "MICHAEL","lastName": "SMITH","otherNames": [],"bcScope": "Active","iaScope": "NotInScope","hasDisclosures": true,"disclosureCount": 2,"registrationCount": 3,"stateRegistrationCount": 5,"industryStartDate": "1985-03-12","currentEmployerName": "EDWARD JONES","currentEmployerCrd": "250","city": "ST LOUIS","state": "MO","employmentHistory": [{"firmName": "EDWARD JONES","firmCrd": "250","city": "ST LOUIS","state": "MO","startDate": "2009-06-01","endDate": null,"current": true}],"licenseExams": [{ "examCategory": "Series 7", "examName": "General Securities Representative Examination", "examTakenDate": "1985-04-20", "scope": "product" },{ "examCategory": "SIE", "examName": "Securities Industry Essentials Examination", "examTakenDate": "2018-10-01", "scope": "state" }],"stateRegistrations": [{ "state": "MO", "regScope": "BD", "status": "APPROVED", "regDate": "2009-06-15" }],"registeredSros": [{ "sro": "FINRA", "status": "APPROVED" }],"disclosures": [{ "eventDate": "2014-08-11", "disclosureType": "Customer Dispute", "disclosureResolution": "Settled", "brokerCategory": "Customer Dispute - Settled", "adviserCategory": null, "detail": {} }],"brokercheckUrl": "https://brokercheck.finra.org/individual/summary/1056376"}
Core Identity
| Field | Type | Description |
|---|---|---|
recordType | string | Always "individual" |
crdNumber | string | CRD number β FINRA's unique broker ID |
name | string | Full legal name |
firstName / middleName / lastName | string | Name components |
otherNames | string[] | Alternate or former names |
bcScope | string | Broker-dealer registration scope (Active, InActive, NotInScope) |
iaScope | string | Investment-adviser registration scope |
currentEmployerName | string | Current registering firm's legal name |
currentEmployerCrd | string | Current firm's CRD number |
city / state | string | Current branch office location |
brokercheckUrl | string | Direct BrokerCheck profile link |
Employment & Tenure
| Field | Type | Description |
|---|---|---|
industryStartDate | string | Date the broker entered the industry |
registrationCount | number | Count of approved FINRA registrations |
employmentHistory | object[] | Current and previous firms, each with firmName, firmCrd, city, state, startDate, endDate, and a current flag |
Exams & Registrations
| Field | Type | Description |
|---|---|---|
licenseExams | object[] | Exams passed: examCategory (e.g. Series 7), examName, examTakenDate, scope |
stateRegistrations | object[] | Per-state registration: state, regScope, status, regDate |
stateRegistrationCount | number | Number of state registrations |
registeredSros | object[] | Self-regulatory-organization registrations: sro, status |
Disclosures
| Field | Type | Description |
|---|---|---|
hasDisclosures | boolean | Whether any disclosure events exist |
disclosureCount | number | Number of disclosure events |
disclosures | object[] | Each event: eventDate, disclosureType (Customer Dispute, Regulatory, Criminal, Financial, Judgment/Lien), disclosureResolution, brokerCategory, adviserCategory, detail |
Firm (recordType: "firm")
{"recordType": "firm","crdNumber": "7556","name": "MORGAN STANLEY","otherNames": ["MORGAN STANLEY DW INC."],"bcScope": "Active","iaScope": "Active","hasDisclosures": true,"disclosureCount": 2,"firmSecNumber": "8-15869","branchCount": 1421,"mainOfficeStreet": "1585 BROADWAY","city": "NEW YORK","state": "NY","zip": "10036","country": "United States","disclosures": [{ "eventDate": "2016-12-09", "disclosureType": "Regulatory", "disclosureResolution": "Final", "brokerCategory": "Regulatory - Final", "adviserCategory": null, "detail": {} }],"brokercheckUrl": "https://brokercheck.finra.org/firm/summary/7556"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "firm" |
crdNumber | string | Firm CRD number |
name | string | Firm legal name |
otherNames | string[] | Alternate or former firm names |
bcScope | string | Broker-dealer registration scope |
iaScope | string | Investment-adviser registration scope |
firmSecNumber | string | SEC file number (BD or IA). Appears only when Include full profiles is on. |
branchCount | number | Number of branch offices |
mainOfficeStreet | string | Headquarters street address |
city / state / zip / country | string | Headquarters location |
hasDisclosures | boolean | Whether any firm disclosure events exist |
disclosureCount | number | Number of firm disclosure events |
disclosures | object[] | Each event: eventDate, disclosureType, disclosureResolution, brokerCategory, adviserCategory, detail |
brokercheckUrl | string | Direct BrokerCheck profile link |
Tips for Best Results
- Use exact names to narrow large result sets. A surname like "Smith" returns thousands of brokers; searching "John Q Smith" or pairing the name with a
statefilter gets you a focused, usable set faster. - Turn off
includeDetailsfor bulk lists. When you only need names, CRD numbers, and current employers, switching details off returns lighter, cheaper rows. Turn it back on for exams, full employment history, registrations, and disclosures. - The
statefilter matches the current registered branch only. It keeps brokers whose current employment is in that state β not their full historical state-registration list. To see every state a broker is registered in, leave the filter off and read thestateRegistrationsarray instead. - Toggle
includeInactiveto catch brokers who left under a cloud. By default only active records return; flip it on to surface barred, suspended, and formerly-registered individuals β exactly the people a due-diligence review needs to find. - Look up by CRD when you know it. A CRD lookup returns the exact record with no name-matching ambiguity, and works even for inactive individuals and firms that a name search would skip.
- Set
searchTypeto match your CRD list. Broker and firm CRDs live in separate namespaces β a firm CRD searched as an individual will not resolve, so setsearchTypetofirmfor firm CRDs. - Batch many names in one run. Pass several names or keywords at once; results are merged and de-duplicated by CRD, so overlapping searches never produce the same broker twice.
Pricing
From $2.00 per 1,000 results β flat pay-per-result pricing that undercuts manual profile-by-profile lookups and bundles full exam, employment, registration, and disclosure data at no extra charge. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.24 | $0.225 | $0.215 | $0.20 |
| 1,000 | $2.40 | $2.25 | $2.15 | $2.00 |
| 10,000 | $24.00 | $22.50 | $21.50 | $20.00 |
| 100,000 | $240.00 | $225.00 | $215.00 | $200.00 |
A "result" is any broker or firm row in the output dataset. No compute or time-based charges β you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n β Workflow automation
- Google Sheets β Direct spreadsheet export
- Slack / Email β Notifications on new results
- Webhooks β Trigger custom APIs on run completion
- Apify API β Full programmatic access
Legal & Ethical Use
FINRA BrokerCheck data is public regulatory information that FINRA publishes for investor protection. This actor is designed for legitimate compliance, due diligence, recruiting, research, and investor-protection use. Users are responsible for complying with applicable laws and FINRA's terms of use, including fair-use and anti-spam rules. Do not use extracted data for harassment, discrimination, or any unlawful purpose, and handle records about individuals responsibly.