Every SEC-registered investment advisor in the United States sits in a public registry, the Investment Adviser Public Disclosure database, and almost nobody in business development uses it directly because the raw data is a chore to work with. I kept rebuilding the same parsing pipeline for finance prospecting projects, so I turned it into the SEC Investment Advisors Search on Apify: 250,000+ investment professionals and 15,000+ RIA firms, queryable by name, location, or CRD number, returned as structured JSON.
Disclosure: the Apify links in this post are affiliate links. If you run the Actor, I may earn a referral commission at no extra cost to you.
Is there an API for SEC investment advisor data?
Sort of, and that "sort of" is the problem. The registry is public and the SEC does publish compiled advisor data, but as bulk snapshot files meant for downloading, not a query API you can hit with a city and a firm name. There's no endpoint for "give me the contacts at RIA firms in Texas updated since March." So the practical version of an SEC advisor API is a scraper-backed database you query like an API: filters in, contact and firm records out, with pagination and incremental updates handled for you.
What the advisor contacts API returns
The SEC Investment Advisors Search returns firms, contacts, or both as structured JSON, with each contact linked to their firm.
| Field | Example | Notes |
|---|---|---|
| Contact name | Jane Smith |
Individual advisor or representative |
jsmith@examplecapital.com |
Includes a verification status | |
| Phone | +1 212 555 0140 |
Contact-level number when present |
| Professional profile URL | linkedin.com/in/... |
Link to the person's profile |
| Firm name | Example Capital Advisors |
With firm-level identifiers like CRD |
| Office address | New York, NY, US |
Plus firm website |
Records carry timestamps and identifiers for deduplication, which matters once you start running this on a schedule and only want what changed.
Who this is for
The obvious crowd is business development and sales teams selling into financial services: fintech vendors, compliance software, custodians, anyone whose buyer is an RIA. The less obvious users are market researchers mapping how advisory firms distribute across geographies, and CRM operators who need to enrich a stale contact database with firm associations and verified emails.
The manual way, and where it breaks
The DIY path is to download the SEC's compiled advisor data, unpack a very large file, and write parsers to join individuals to firms. I've done it, and it works once. Then next month's snapshot lands and you rerun everything from scratch, because the bulk files don't tell you what changed. Filtering by geography means loading the whole country to keep one state. And the compilation gives you registrations, not an outreach-ready record; profile links and email verification are on you. None of it is hard, exactly. It's just a data-engineering project standing between you and a prospect list.
The faster way: run the SEC Investment Advisors Search
One JSON input, one filtered result set, pay per contact returned.
Apify Console
- Open the SEC Investment Advisors Search and click Try for free.
- Pick a
query_type(firms, contacts, or both) and set filters likefirm_cityorfirm_state. - Run it and download the dataset as JSON or CSV.
REST
curl -X POST "https://api.apify.com/v2/acts/johnvc~SECInvestmentAdvisorContacts/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "query_type": "both", "firm_city": "New York", "firm_state": "NY", "contacts_limit": 25 }'
Endpoint mechanics are in the Apify API docs.
Query advisor contacts in Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("johnvc/SECInvestmentAdvisorContacts").call(
run_input={
"query_type": "contacts",
"contact_firm_name": "Morgan Stanley",
"contacts_limit": 10,
}
)
for contact in client.dataset(run["defaultDatasetId"]).iterate_items():
print(contact.get("contact_id"), contact.get("name"), contact.get("email"))
Swap contact_firm_name for organization_crds when you already know the firms you're targeting; CRD numbers are exact where name matching is fuzzy.
Build an RIA list for one city
The task Build an RIA contact list for New York City shows the metro-area pattern: city plus state filters, firms and contacts together.
Turn registry data into lead lists
Build financial advisor lead lists from SEC data is the general business development recipe, going from filters to an outreach-ready sheet.
Skip the code entirely
Download SEC investment advisor data as CSV runs in the Console and ends in a spreadsheet, no Python required.
Cover a whole state
List SEC registered investment advisors in Texas demonstrates state-level coverage, useful for territory planning and market sizing.
Prospect from Claude via MCP
Because Apify exposes Actors over the Model Context Protocol, Claude, Claude Code, and Cursor can run advisor searches as a tool call. "Find me RIA firms in Austin and pull their contacts" becomes a prompt instead of a script, and the structured records land in the conversation. The task Prospect SEC investment advisors from Claude via MCP has the setup, and you can read about Claude itself at claude.ai.
FAQ about the SEC advisor scraper
What does the SEC advisor scraper cost per contact?
About a cent per contact returned, plus a couple of tenths of a cent in run setup fees. contacts_limit caps the spend before a run starts, and the free credit on a new Apify account covers a real first list.
Where does the scraper's contact data come from?
The underlying registry is the SEC's public Investment Adviser Public Disclosure data, covering registered firms and their professionals. The Actor layers structure on top: linked firm associations, profile URLs, and email verification status. It's public-record data, and your outreach still has to follow the usual email and telemarketing rules.
Can I use this scraper for CRM enrichment on a schedule?
Yes, and the date_updated filter is the key. Run it monthly with an Apify schedule, request only records updated since your last sync, and you pay for changes rather than the whole registry. Start from the SEC Investment Advisors Search and save the filter set as a task.
Does the scraper work from Claude or other MCP clients?
Yes. Connect it through Apify's MCP server and it appears as a callable tool, so an agent can pull advisor lists mid-conversation.
What won't this scraper give you?
It covers SEC-registered investment advisors, so brokers, insurance agents, and state-only registrants outside that registry won't appear. Emails carry a verification status but no guarantee of deliverability, and profile URLs exist only where a profile was found. Treat it as a strong starting list, not a finished campaign.
More from Truffle Pig Data
If you're building a finance prospecting stack, these sit next door: the LinkedIn Company API for firmographic detail, the Crunchbase Company API for funding context, and the PitchBook Company API for the private-markets view.
Wrapping up
The SEC already published the best advisor database in the country; it just didn't ship a query API for it. The SEC Investment Advisors Search fills that gap, one filtered run at a time.
Top comments (0)