FINRA's BrokerCheck is the public database for verifying registered brokers and investment advisors in the US. If you're doing KYC, building a compliance workflow, or just trying to verify that the person managing someone's money is actually licensed -- BrokerCheck is the authoritative source.
The annoying part: the BrokerCheck UI is built for one-off lookups. Typing in a name, clicking through, downloading a PDF. Fine for occasional use, completely unusable if you need to verify 50 advisors before a fund closes or run weekly checks on a broker network.
FINRA does have a JSON API at api.brokercheck.finra.org -- it's just undocumented and has some quirks worth knowing about.
What the data looks like
Here's a sample record from an individual broker search:
{
"brokerName": "Jennifer A. Caldwell",
"CRDNumber": "4521890",
"type": "individual",
"registrationStatus": "ACTIVE",
"currentEmployer": "Merrill Lynch Pierce Fenner & Smith",
"employerCRD": "7691",
"licenses": ["Series 7", "Series 66"],
"statesRegistered": ["CA", "NY", "TX"],
"disclosureCount": 0,
"yearsInIndustry": 12,
"examsPassed": ["SIE", "Series 7 Top-Off", "Series 66"]
}
And for a firm:
{
"firmName": "Vanguard Marketing Corporation",
"CRDNumber": "32361",
"type": "firm",
"status": "ACTIVE",
"registeredIn": 52,
"totalBrokers": 247,
"disclosureCount": 3
}
disclosureCount is the field compliance teams care most about. Zero is clean. Anything above that warrants a deeper look at the full BrokerCheck report.
The API quirk you'll hit
FINRA's API returns a minimum of 20 results regardless of what you set as the limit parameter. So if you search for a name and get back 20 results, you don't know if there are 20 matches or if the result was capped. The actor handles pagination and deduplication -- you just get back the full result set.
Also: CRD numbers are the reliable lookup key. Names are fuzzy. If you have CRD numbers (which show up in business cards, ADV filings, etc.), use those.
Running it
{
"searchType": "individual",
"searchQuery": "Jennifer Caldwell",
"maxResults": 50
}
Or by CRD directly:
{
"searchType": "individual",
"crdNumber": "4521890",
"maxResults": 1
}
Firm search works the same way with "searchType": "firm".
Use cases that actually make sense
Compliance teams doing pre-engagement checks on advisors. RIAs verifying their broker-dealer network. Journalists or researchers mapping advisor registration across states. Anyone building a financial advisor directory who needs fresh data instead of stale exports.
One thing it won't replace: the full PDF BrokerCheck report, which has detailed disclosure narratives. The API gives you the structured data -- counts, registration status, licenses. For the actual text of a complaint, you still need to pull the PDF. For most verification workflows though, the structured data is enough to flag who needs a closer look.
Try the actor: FINRA BrokerCheck Search on Apify
Good fit for compliance teams that need regular verification runs without manual lookups.
Top comments (0)