BrokerCheck Scraper - Financial Advisors, Brokers & Firms avatar

BrokerCheck Scraper - Financial Advisors, Brokers & Firms

Pricing

from $5.50 / 1,000 adviser / broker scrapeds

Go to Apify Store
BrokerCheck Scraper - Financial Advisors, Brokers & Firms

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 $5.50 / 1,000 adviser / broker scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Share

BrokerCheck Scraper — Financial Advisors, Brokers & Firms (CRDs, Licenses, Disclosures & Leads)

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Financial Industry Regulatory Authority (FINRA) or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "BrokerCheck" is referenced only to describe the publicly available website this Actor collects data from.

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.

DataTypical scrapersThis actor
Authoritative source (FINRA + SEC)❌ Maps / one directory✅ official registries
CRD number (the industry key)
Broker and investment-adviser statuspartial✅ 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 + phonepartial
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

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the BrokerCheck Scraper, choose Individuals or Firms, and enter search terms, CRD numbers, or a firm CRD to pull its full roster.
  3. Click Start and watch results stream into the dataset table.
  4. 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
}
  • searchTypeindividuals (brokers & advisers) or firms (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), or sec_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, or any (Individuals).
  • stateFilter — keep one US state (NY or New 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.

EntityAlways presentUsually presentPresent when it exists
IndividualCRD, name, broker/adviser status, role, report URLcurrent firm + branch location, licenses, registered states, years of experienceprevious firms, disclosures (only flagged reps), SRO categories
FirmCRD, name, type, broker-dealer/adviser status, report URLoffice address, phone, regulator, formed statedirect 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.

How much does it cost to scrape BrokerCheck?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Adviser / broker scraped - One broker or investment adviser: full FINRA/SEC report — name, CRD, current & previous firms, branch location, Series exams & licenses, registered states, SRO categories, disclosures, years of experience and lead score.
  • Firm scraped - One broker-dealer or RIA firm: name, CRD, type & size, regulator, office address & phone, registered states, disclosures, direct owners and Form ADV brochures.
  • Firm contacts enriched - Website crawl of one firm for lead contacts: emails, phone numbers and social links extracted from the firm's own public website.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

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 monitorMode to 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.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete financial & B2B intelligence stack — pair adviser/broker data with company, contract and filing intel:

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 by stateFilter and roleFilter to slice the list.
  • Fastest runs: turn includeDetails off 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 monitorMode on; you'll only get records that are new or whose disclosure count changed — perfect for watchlists.
  • Investment advisers vs brokers: roleFilter: "advisers" (or source: "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.

Data & lawful use

The source is an official public register, published so that anyone can consult it. Records can name individuals (individual brokers and advisers, with their registrations and disclosures), so the output may contain personal data even though it is public. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis, honour access and deletion requests, and respect the register's own reuse conditions, which can restrict marketing or commercial use.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Financial Industry Regulatory Authority (FINRA) or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"BrokerCheck" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official BrokerCheck product, is not authorised or certified by the Financial Industry Regulatory Authority (FINRA), and does not distribute BrokerCheck software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

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.