BrokerCheck Scraper - Financial Advisors, Brokers & Firms
Pricing
from $10.00 / 1,000 adviser / broker scrapeds
BrokerCheck Scraper - Financial Advisors, Brokers & Firms
Scrape FINRA BrokerCheck & SEC IAPD: brokers, investment advisers and firms by name, CRD or firm roster. Full reports — employment history, Series exams/licenses, registered states, disclosures, firm AUM/address/phone. Monitoring + leads. No login, no API key, no browser.
Pricing
from $10.00 / 1,000 adviser / broker scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
BrokerCheck Scraper — Financial Advisors, Brokers & Firms (CRDs, Licenses, Disclosures & Leads)
Extract complete broker, investment adviser and firm data straight from the authoritative public registries — FINRA BrokerCheck and the SEC's Investment Adviser Public Disclosure (IAPD). Search by name, by CRD number, or pull every adviser and broker registered at a firm in one run. Each record ships the full report: current and previous firms, Series exams & licenses, registered states, SRO categories, disclosures (regulatory actions & customer disputes), years of experience — and for firms, type, size, office address, phone, owners and Form ADV brochures.
No login, no cookies, no browser, no API key — fast, reliable JSON extraction from the official source the whole industry trusts.
Why this BrokerCheck scraper?
Other "financial advisor" scrapers pull a subset from Google Maps or a single membership directory (CFP, NAPFA, FPA). This actor reads the complete, authoritative U.S. universe — ~630,000 brokers and ~440,000 investment-adviser reps across ~15,000+ firms — directly from FINRA and the SEC, and ships the richest dataset in the category.
| Data | Typical scrapers | This actor |
|---|---|---|
| Authoritative source (FINRA + SEC) | ❌ Maps / one directory | ✅ official registries |
| CRD number (the industry key) | ❌ | ✅ |
| Broker and investment-adviser status | partial | ✅ both |
| Series exams & licenses (7, 63, 65, 66…) | ❌ | ✅ |
| Registered states + SRO categories | ❌ | ✅ |
| Current and previous firms (work history) | ❌ | ✅ |
| Disclosures (regulatory actions, disputes) | ❌ | ✅ |
| Firm type, size, owners, Form ADV brochures | ❌ | ✅ |
| Firm office address + phone | partial | ✅ |
| Full adviser/broker roster of any firm | ❌ | ✅ by firm CRD |
| Disclosure-change monitoring | ❌ | ✅ |
| Firm contact leads (emails, socials from its site) | ❌ | ✅ opt-in |
| Lead score (0–100) | ❌ | ✅ |
Use cases
- Recruiting & competitive intelligence — pull a competitor's entire adviser/broker roster by firm CRD, complete with licenses, experience and location. The fastest way to build a recruiting list of in-market reps.
- Fintech & wealthtech sales / lead generation — target RIA firms and broker-dealers by location, type and size; score them and enrich firm websites for contact emails and socials.
- Compliance, RegTech & due diligence — screen brokers, advisers and firms for disclosures (regulatory actions, customer disputes), and monitor for new disclosure events over time.
- Market & M&A research — map firm size, ownership, registrations and adviser movement (employment history) across the industry.
- Verification & onboarding — confirm a CRD's registrations, licenses and clean/flagged status before doing business.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the BrokerCheck Scraper, choose Individuals or Firms, and enter search terms, CRD numbers, or a firm CRD to pull its full roster.
- Click Start and watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"searchType": "individuals","firmCrdNumbers": ["6413"],"maxResultsPerTerm": 100,"includeDetails": true,"stateFilter": "NJ","roleFilter": "advisers","activeOnly": true}
- searchType —
individuals(brokers & advisers) orfirms(broker-dealers & RIAs). - searchTerms — person names (
John Smith) or firm names (Edward Jones). Each is paginated up to the limit. - firmCrdNumbers — firm CRD numbers (e.g.
6413= LPL Financial) → list every broker & adviser registered there. The recruiting wedge (Individuals mode). - crdNumbers — fetch full reports for specific CRD numbers directly (individuals or firms per the mode).
- source (default
auto) —auto(BrokerCheck for individuals; BrokerCheck + SEC IAPD merged for firms),brokercheck(brokers), orsec_iapd(investment advisers). - includeDetails (default true) — fetch each record's full report (history, exams, registrations, disclosures; firms add address/phone/owners/brochures). Off = fast lightweight records.
- roleFilter (default any) —
brokers,advisers, orany(Individuals). - stateFilter — keep one US state (
NYorNew York); individuals match branch or registered states, firms match office state. - activeOnly / withDisclosuresOnly — registration-status and disclosure filters.
- enrichFirmContacts (default false) — crawl a firm's own website (home + contact/about) for emails, phones and socials.
- monitorMode (default false) — emit only records that are new, or whose disclosure count changed since the last run.
- maxResultsPerTerm — cap per search term / per firm roster (paginates automatically).
Output
One record per individual (type: "individual") or firm (type: "firm"). An individual record:
{"type": "individual","crd": "1113790","fullName": "Joseph Thomas Smith","isBroker": true,"isInvestmentAdviser": true,"role": "Broker & Investment Adviser","brokerStatus": "Active","adviserStatus": "Active","industryStartDate": "1984-01-14","yearsExperience": 42,"currentFirmName": "LPL Financial Llc","currentFirmCrd": "6413","branchCity": "Madison","branchState": "NJ","branchZip": "07940","latitude": 40.76,"longitude": -74.42,"currentFirms": [{ "firmCrd": "6413", "firmName": "LPL Financial Llc", "registrationBeginDate": "2020-05-07", "branchCity": "Madison", "branchState": "NJ" }],"previousFirms": [{ "firmCrd": "7556", "firmName": "Prudential", "branchState": "NJ" }],"licenses": ["Series 65", "Series 63", "Series 7"],"exams": [{ "category": "Series 65", "name": "Uniform Investment Adviser Law Examination", "scope": "IA", "takenDate": "2002-08-02" }],"registeredStateNames": ["California", "Colorado", "Florida", "Maryland", "New Jersey"],"registeredStatesCount": 10,"registeredSROs": [{ "sro": "FINRA", "status": "APPROVED", "categories": ["General Securities Representative", "Securities Trader"] }],"hasDisclosures": false,"disclosureCount": 0,"disclosures": [],"reportUrl": "https://brokercheck.finra.org/individual/summary/1113790","source": "brokercheck","leadScore": 86,"scrapedAt": "2026-06-15T12:00:00.000Z"}
A firm record (type: "firm") carries crd, firmName, firmType, firmSize, isBrokerDealer, isInvestmentAdviser, regulator, district, formedState, street/city/state/postalCode, phone, secNumber, hasDisclosures/disclosureCount/disclosures, directOwners, brochures (Form ADV), reportUrl, plus website/contactEmails/contactPhones/socialLinks when contact enrichment is on.
What to expect (field coverage)
This is official registry data, so the core fields are essentially always present; some are populated only when they exist for that record.
| Entity | Always present | Usually present | Present when it exists |
|---|---|---|---|
| Individual | CRD, name, broker/adviser status, role, report URL | current firm + branch location, licenses, registered states, years of experience | previous firms, disclosures (only flagged reps), SRO categories |
| Firm | CRD, name, type, broker-dealer/adviser status, report URL | office address, phone, regulator, formed state | direct owners, Form ADV brochures, disclosures, website/emails (with enrichment) |
A blank field means the registry doesn't hold that value for the record — never that scraping failed. Nothing is dropped, so you always get the richest dataset available.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/weekly with
monitorModeto catch new advisers at a firm, newly registered firms, or new disclosures as they post. - Webhooks — trigger downstream actions (CRM import, Slack alert, compliance review) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/brokercheck-scraper').call({searchType: 'individuals',firmCrdNumbers: ['6413'],maxResultsPerTerm: 200,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} brokers & advisers`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new adviser/firm leads straight into your CRM.
- Slack — get alerted when a monitored firm adds a rep or posts a new disclosure.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "list every active investment adviser at LPL Financial in New Jersey with their licenses" and let it run this scraper for you.
More scrapers from scrapesage
Build a complete financial & B2B intelligence stack — pair adviser/broker data with company, contract and filing intel:
- SEC EDGAR Scraper — filings, XBRL financials, and company profiles.
- USAspending Scraper — federal awards, contractors and leads.
- SAM.gov Scraper — federal contract opportunities and contacts.
- Companies House Scraper — UK companies, directors and PSCs.
- Healthgrades Scraper — doctors, reviews and provider leads.
- Y Combinator Scraper — startups, founders and jobs.
- Product Hunt Scraper — launches, makers and leads.
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
Tips
- Pull a firm's whole roster: put the firm's CRD in
firmCrdNumbers(find it by searching the firm name first, or from the firm's BrokerCheck URL). Then filter bystateFilterandroleFilterto slice the list. - Fastest runs: turn
includeDetailsoff for lightweight records (name, CRD, current firm, location, status) when you don't need the full report — then re-run with details on for the CRDs you keep. - Compliance monitoring: schedule with
monitorModeon; you'll only get records that are new or whose disclosure count changed — perfect for watchlists. - Investment advisers vs brokers:
roleFilter: "advisers"(orsource: "sec_iapd") for RIAs;roleFilter: "brokers"for registered reps. Many professionals are both. - Firm emails: turn on
enrichFirmContacts— FINRA/SEC never publish emails, so the actor crawls the firm's own website for them.
FAQ
Where does the data come from? FINRA BrokerCheck (brokercheck.finra.org) and the SEC's Investment Adviser Public Disclosure (adviserinfo.sec.gov) — the official, public U.S. registries for brokers and investment advisers. No API key or login is needed.
What is a CRD number? The Central Registration Depository number — FINRA's unique ID for each individual and firm. It's the reliable key for direct lookups and firm rosters.
Can I get every adviser at a specific firm? Yes — put the firm's CRD in firmCrdNumbers (Individuals mode) and the actor pages through the firm's entire roster, up to your limit.
Do records include emails or phone numbers? Firms include their official business phone and address. FINRA/SEC don't publish emails — turn on enrichFirmContacts to crawl the firm's own website for contact emails, phones and socials.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I monitor for new disclosures? Create a Schedule and turn on monitorMode. The actor remembers each CRD's disclosure count and emits a record only when something is new or has changed.
Is scraping this data legal? This actor collects publicly available regulatory data only. You are responsible for using the data in compliance with applicable laws (e.g. FCRA, GDPR/CCPA for personal data) and FINRA/SEC terms. It is not a consumer report and must not be used for FCRA-regulated decisions.
A field is empty — why? The registry simply doesn't hold that value for that record (e.g. a rep with no previous firms or no disclosures). Fields are blank only when the data doesn't exist — never because the scraper skipped them.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.