DEV Community

Cover image for Business Development with SEC Data: How to Build Investment Advisor Lead Lists in 2026
Truffle Pig Data
Truffle Pig Data

Posted on

Business Development with SEC Data: How to Build Investment Advisor Lead Lists in 2026

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
Email 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

  1. Open the SEC Investment Advisors Search and click Try for free.
  2. Pick a query_type (firms, contacts, or both) and set filters like firm_city or firm_state.
  3. 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 }'
Enter fullscreen mode Exit fullscreen mode

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"))
Enter fullscreen mode Exit fullscreen mode

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)