Investment Finance Professionals avatar

Investment Finance Professionals

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Investment Finance Professionals

Investment Finance Professionals

Find and filter 250,000+ investment professionals and 15,000+ financial firms by location, firm name, and more. Get structured contact data with emails, LinkedIn profiles, and firm associations for lead generation and market research.

Pricing

from $0.01 / 1,000 results

Rating

5.0

(3)

Developer

John

John

Maintained by Community

Actor stats

7

Bookmarked

37

Total users

8

Monthly active users

20 hours ago

Last modified

Share

๐Ÿ’ผ SEC Investment Advisors Search - Find RIA Firms & Finance Contacts

Find SEC-registered investment advisors. Search 250,000+ finance professionals and 15,000+ RIA firms by name, location, CRD number, or update date. Pay-per-contact pricing, structured JSON, MCP-ready - built for lead generation, market research, and CRM enrichment.

Python Quick Start Example

A complete Python example using the Apify client is available on GitHub:

github.com/johnisanerd/Apify-SEC-Investment-Advisors

Clone the repo, run uv sync, add your API key, and you are pulling SEC investment advisor data in minutes.


SEC Investment Advisors Search is an Apify Actor that turns the SEC investment advisor registry (IAPD) into a queryable contact and firm database. Search 250,000+ SEC-registered investment advisor representatives and 15,000+ Registered Investment Advisor (RIA) firms by name, location (city/state/country), organization CRD numbers, contact IDs, or recent update date.

This Actor transforms investment and finance professional data into actionable lead lists for sales outreach, market research, business development, and relationship building. Whether you're building CRM integrations, conducting market analysis, or expanding your network in the financial services industry, you'll get clean, structured JSON data ready for immediate use โšก.

โœ… Massive Database: Access over 250,000 investment professionals and 15,000+ firms - and growing! Our database is continuously updated with new contacts and firms.

๐Ÿ“Š Database Statistics & Leaderboard

  • Total Firms: 15,963
  • Total Contacts: 273,358

๐Ÿ† Top 10 Firms by Contact Count

RankFirm NameOrganization CRD#Contact Count
1MERRILL LYNCH, PIERCE, FENNER & SMITH INCORPORATED769126,550
2EDWARD JONES25024,448
3MORGAN STANLEY14977723,647
4LPL FINANCIAL LLC641323,483
5STRATEGIC ADVISERS LLC10455517,710
6WELLS FARGO ADVISORS1961615,108
7J.P. MORGAN SECURITIES LLC7913,991
8AMERIPRISE FINANCIAL SERVICES, LLC636313,283
9CETERA INVESTMENT ADVISERS LLC10564410,690
10UBS FINANCIAL SERVICES INC.81749,894

๐Ÿ“ฆ What Data Can You Extract?

๐Ÿท๏ธ Data Type๐Ÿ“‹ Description
๐Ÿข Firm InformationOrganization identifiers, primary business name, office addresses, website, and company details
๐Ÿ‘ค Contact DetailsFinance professionals and leadership with names, emails, phone numbers, LinkedIn profiles, and firm associations
๐Ÿ“ Location DataCity, state, country, postal codes, and street addresses for main offices
๐Ÿ”— RelationshipsLinks between contacts and their firms via organization identifiers
๐Ÿ“… TimestampsCreated and updated timestamps for tracking data freshness
๐Ÿ†” IdentifiersOrganization identifiers, contact IDs for deduplication and tracking

This structured finance professional dataset can be exported for analysis, CRM integration, or lead generation workflows.


โš™๏ธ Key Features

โœจ Massive Database - Access 250,000+ investment professionals and 15,000+ firms, continuously growing

๐Ÿ” Dual Query Types - Query firms only, contacts only, or both in a single run

๐ŸŽฏ Advanced Filtering - Filter by firm name, location (city/state/country), organization identifiers, contact IDs, and date updates

๐Ÿ“Š Incremental Updates - Use date_updated filter to get only new or updated contacts since your last pull

๐Ÿ’ฐ Pay-Per-Result Pricing - Transparent pricing: setup fee + per-contact charge (firms are free)

๐Ÿ”„ Include/Exclude Filters - Include specific contacts or firms, or exclude unwanted records

๐ŸŒ Location-Based Queries - Find firms and contacts by city, state, or country

๐Ÿ“ˆ Pagination Support - Automatic pagination handling for large result sets

๐Ÿ›ก๏ธ Production-Ready - Built-in error handling, retry logic, and data validation

๐Ÿ“ฆ Structured Output - Clean JSON output with query metadata and results


๐Ÿ“– Usage Examples

Example 0: Basic Contacts Query

Get finance professionals and leadership contacts from our database of 250,000+ professionals with a simple limit.

{
"query_type": "contacts",
"contacts_limit": 10
}

Example 1: Query Firms by Location

Find investment and financial firms from our database of 15,000+ firms in a specific city and state.

{
"query_type": "firms",
"firm_name": "Investment",
"firm_city": "New York",
"firm_state": "NY",
"firm_country": "US",
"firms_limit": 20
}

Example 2: Query Contacts by Firm Name

Get all contacts from firms matching a name pattern.

{
"query_type": "contacts",
"contact_firm_name": "Investment",
"contacts_limit": 50
}

Example 3: Incremental Update (Date-Based Filtering)

Get only contacts updated since your last pull. Perfect for scheduled updates.

{
"query_type": "contacts",
"date_updated": "2025-01-15",
"contacts_limit": 1000
}

Note: Use the updated_at timestamp from your previous query results to get only new or updated contacts.

Example 4: Query by Organization CRD Numbers

Get contacts from specific firms using their organization CRD numbers.

{
"query_type": "contacts",
"organization_crds": "104518,105477,105642",
"contacts_limit": 100
}

Example 5: Include/Exclude Filters

Get contacts from specific firms while excluding certain contact IDs.

{
"query_type": "contacts",
"organization_crds": "104518,105477",
"exclude_contact_ids": "123,456,789",
"contacts_limit": 50
}

Example 6: Query Both Firms and Contacts

Get both firms and their contacts in a single run.

{
"query_type": "both",
"firm_name": "Investment",
"firm_city": "New York",
"firm_state": "NY",
"firms_limit": 10,
"contact_firm_name": "Investment",
"contacts_limit": 50
}

Example 7: Comprehensive Query (All Parameters)

Use all available filters for precise data extraction.

{
"query_type": "both",
"firm_name": "Investment",
"firm_city": "New York",
"firm_state": "NY",
"firm_country": "US",
"firms_limit": 10,
"contact_ids": "123,456",
"exclude_contact_ids": "789",
"contact_firm_name": "Investment",
"organization_crds": "104518,105477",
"exclude_organization_crds": "111111",
"date_updated": "2025-01-01",
"contacts_limit": 100,
"output_file": "investment_advisors_results.json"
}

๐Ÿ” Input Parameters

ParameterTypeRequiredDefaultDescription
query_typestringโŒ"contacts"Type of data to query: "firms" for firms only, "contacts" for contacts only, or "both" for both. See Query Type Options below.
firm_namestringโŒ-Filter firms by primary business name (partial match, case-insensitive). Only applies when query_type is "firms" or "both".
firm_citystringโŒ-Filter firms by main office city (exact match, case-insensitive). Only applies when query_type is "firms" or "both".
firm_statestringโŒ-Filter firms by main office state (exact match, case-insensitive). Use standard 2-letter state codes (e.g., "CA", "NY", "TX"). Only applies when query_type is "firms" or "both".
firm_countrystringโŒ-Filter firms by main office country (exact match, case-insensitive). Use ISO 3166-1 alpha-2 country codes (e.g., "US", "CA", "GB"). Only applies when query_type is "firms" or "both".
firms_limitintegerโŒ-Maximum number of firms to return. Only applies when query_type is "firms" or "both". Set to null or omit for no limit. Minimum: 1.
contact_idsstringโŒ-Include only contacts with these contact_id values. Can be a comma-separated string (e.g., "123,456,789") or JSON array. Only applies when query_type is "contacts" or "both".
exclude_contact_idsstringโŒ-Exclude contacts with these contact_id values. Can be a comma-separated string (e.g., "123,456,789") or JSON array. Only applies when query_type is "contacts" or "both".
contact_firm_namestringโŒ-Filter contacts by their firm's primary business name (partial match, case-insensitive). Only applies when query_type is "contacts" or "both".
organization_crdsstringโŒ-Include only contacts from firms with these organization CRD numbers. Can be a comma-separated string (e.g., "123456,789012") or JSON array. Only applies when query_type is "contacts" or "both".
exclude_organization_crdsstringโŒ-Exclude contacts from firms with these organization CRD numbers. Can be a comma-separated string (e.g., "123456,789012") or JSON array. Only applies when query_type is "contacts" or "both".
date_updatedstringโŒ-Filter contacts updated on or after this date. Use for incremental updates. Format: YYYY-MM-DD (e.g., "2025-01-15") or ISO datetime YYYY-MM-DDTHH:MM:SS. Only applies when query_type is "contacts" or "both".
contacts_limitintegerโŒ-Maximum number of contacts to return. Only applies when query_type is "contacts" or "both". Set to null or omit for no limit. Minimum: 1.
output_filestringโŒ-Optional filename to save results as JSON file locally. If not provided, results are only pushed to Apify dataset.

๐Ÿ“Š Query Type Options

The query_type parameter controls what data is queried:

ValueDescriptionWhen to Use
"firms"Query only investment and financial firmsSearch through 15,000+ firms. When you need firm information only (no contacts). Firms queries are free (only setup fee applies).
"contacts"Query only finance professionals and leadership (contacts)Search through 250,000+ professionals. When you need contact information only. Each contact returned is charged separately.
"both"Query both firms and contactsWhen you need both firm and contact data in a single run. Useful for comprehensive lead generation.

Default: If query_type is not specified, it defaults to "contacts".


๐Ÿ“ค Output Format

What you get back

Each run returns one structured JSON object: a query_type, a query_timestamp, and up to two result blocks. The firms block holds RIA firm records (organization_crd, primary_business_name, the main office address fields, and website_address), and the contacts block holds finance professional records (contact_id, first_name, last_name, email, email_verified, phone, linkedin_url, and firm_name). Every record also carries created_at and updated_at timestamps so you can track freshness across runs. Full field-by-field detail and a realistic sample follow below.

Dataset Structure

Each query returns a structured JSON object with the following structure:

{
"query_type": "both",
"query_timestamp": "2025-12-05T14:26:04.739640",
"firms": {
"query_parameters": {
"name": "Investment",
"city": "New York",
"state": "NY",
"country": null,
"limit": 5,
"page_size": 1000
},
"query_metadata": {
"firms_count": 5,
"pages_processed": 1,
"limit_reached": true
},
"results": {
"firms": [
{
"organization_crd": "104518",
"primary_business_name": "DWS INVESTMENT MANAGEMENT AMERICAS, INC.",
"main_office_street_address_1": "875 THIRD AVENUE",
"main_office_street_address_2": null,
"main_office_city": "NEW YORK",
"main_office_state": "NY",
"main_office_country": "United States",
"main_office_postal_code": "10022",
"website_address": "HTTPS://WWW.LINKEDIN.COM/COMPANY/DWS-GROUP-COM",
"updated_at": "2025-12-05T08:17:31.041463+00:00",
"created_at": "2025-12-04T15:11:38.534422+00:00"
}
]
}
},
"contacts": {
"query_parameters": {
"contact_ids": null,
"exclude_contact_ids": null,
"firm_name": "Investment",
"organization_crds": null,
"exclude_organization_crds": null,
"date_updated": null,
"limit": 10,
"page_size": 1000
},
"query_metadata": {
"contacts_count": 10,
"pages_processed": 1,
"limit_reached": false
},
"results": {
"contacts": [
{
"contact_id": 12345,
"organization_crd": "104518",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"email_verified": "true",
"phone": "+1-555-123-4567",
"linkedin_url": "https://www.linkedin.com/in/johndoe",
"firm_name": "DWS INVESTMENT MANAGEMENT AMERICAS, INC.",
"updated_at": "2025-12-05T08:17:31.041463+00:00",
"created_at": "2025-12-04T15:11:38.534422+00:00",
"firms": {
"primary_business_name": "DWS INVESTMENT MANAGEMENT AMERICAS, INC."
}
}
]
}
},
"partial_failure": false
}

Output Fields

Top-Level Fields

  • query_type: The type of query executed ("firms", "contacts", or "both")
  • query_timestamp: ISO timestamp when the query was executed
  • firms: Firms query results (present when query_type is "firms" or "both", null otherwise)
  • contacts: Contacts query results (present when query_type is "contacts" or "both", null otherwise)
  • partial_failure: Boolean indicating if one query type failed but the other succeeded (only relevant when query_type is "both")

Firms Object Fields

  • query_parameters: The filters and parameters used for the firms query
  • query_metadata: Summary statistics including firms_count, pages_processed, and limit_reached
  • results.firms: Array of firm objects with complete firm information

Contacts Object Fields

  • query_parameters: The filters and parameters used for the contacts query
  • query_metadata: Summary statistics including contacts_count, pages_processed, and limit_reached
  • results.contacts: Array of contact objects with complete contact information

Firm Object Fields

  • organization_crd: Organization identifier (unique firm identifier from our database of 15,000+ firms)
  • primary_business_name: Official firm name
  • main_office_street_address_1: Primary street address
  • main_office_street_address_2: Secondary address line (if applicable)
  • main_office_city: City name
  • main_office_state: State code (2-letter)
  • main_office_country: Country name
  • main_office_postal_code: Postal/ZIP code
  • website_address: Firm website URL
  • updated_at: ISO timestamp when record was last updated
  • created_at: ISO timestamp when record was created

Contact Object Fields

  • contact_id: Unique contact identifier
  • organization_crd: Organization CRD of the firm this contact belongs to
  • first_name: Contact's first name
  • last_name: Contact's last name
  • email: Email address
  • email_verified: Email verification status ("true" or "false")
  • phone: Phone number
  • linkedin_url: LinkedIn profile URL
  • firm_name: Name of the firm this contact belongs to (convenience field)
  • updated_at: ISO timestamp when record was last updated
  • created_at: ISO timestamp when record was created
  • firms: Nested object with firm information (contains primary_business_name)

๐Ÿ’ฐ Pricing

This Actor uses a pay-per-event pricing model with transparent pricing:

  • Setup Fee: per Actor run (one-time charge for instance setup and initialization)
  • Contact Returned: per contact returned in query results
  • Firms: Free (no per-firm charge, only setup fee applies)

You only pay for contacts you actually receive, making it cost-effective for both small and large-scale queries. Firms queries are free (only the setup fee applies), making them ideal for initial research and firm discovery.

Note: The Actor performs a pre-run credit check to ensure you have sufficient funds. If insufficient funds are detected, the Actor will exit gracefully with an error message.


๐ŸŽฏ Use Cases

  • Lead Generation: Build targeted lists of finance professionals and leadership for sales outreach
  • Market Research: Analyze the distribution of investment and financial firms by location, size, or specialization
  • Business Development: Identify potential partners, clients, or acquisition targets in the financial services industry
  • CRM Integration: Sync finance professional data into your CRM system for relationship management
  • Network Analysis: Map relationships between finance professionals and their firms
  • Competitive Intelligence: Monitor competitor firms and their leadership teams
  • Incremental Updates: Use date_updated filter to get only new or updated contacts since your last pull
  • Data Enrichment: Enhance existing contact databases with investment and financial firm associations
  • Geographic Analysis: Analyze finance professional presence by city, state, or country
  • Email Verification: Access verified email addresses for finance professionals and leadership

๐Ÿš€ Getting Started

You can run this SEC investment advisor API three ways:

  1. Apify Console: open the Actor, fill in the input form (for example query_type, firm_state, and contacts_limit), and click Start. Results land in the run's dataset, ready to export as JSON, CSV, or Excel.
  2. Apify API: run the Actor and fetch its dataset over HTTP with the apify-client package for Python or Node.js. The Actor's API tab has ready-made snippets and your token.
  3. Example repo: clone github.com/johnisanerd/Apify-SEC-Investment-Advisors, run uv sync, add your API key, and you are pulling structured advisor data in minutes.

New here? Start with {"query_type": "contacts", "contacts_limit": 10} to preview the data shape before you scale up.


๐Ÿ”Œ Integrations: Automate Advisor Lead Generation and Business Development

A single run answers one question, such as which RIA firms are registered in Texas today. The real value comes from running this SEC investment advisor API on a schedule so your lead lists and business development pipelines stay current without manual work. The Actor connects to the rest of your stack through Apify integrations.

Tasks and schedules (the core recipe)

Save one task per segment you track (for example "new RIA contacts in New York this week" using contact_firm_name plus date_updated), then attach a schedule from the Actor's Actions, then Schedule menu. Useful cron strings:

  • 0 7 * * * runs every day at 7 AM
  • 0 */6 * * * runs every six hours
  • 0 9 * * 1 runs every Monday at 9 AM

One schedule can trigger many tasks at once, and the date_updated filter returns only contacts added or changed since your last pull, so each run appends fresh leads instead of re-downloading the whole registry. The Build an RIA contact list for New York City task is a ready-made starting point.

n8n

This Actor ships as an n8n community node. See the n8n integration section below for install steps. A typical workflow is Schedule Trigger, then the Actor node, then a Filter, then a Slack or email node to push new advisor contacts to your team.

Make and Zapier

Apply the same pattern in no-code tools: trigger on a schedule, run the Actor, then route the rows onward. See Make and Zapier.

Store the results in Supabase

Send accumulated contacts to a database so history builds up across runs. No-code path: chain the Apify Actor node into a Supabase node in n8n or Make. In Python, run the Actor and bulk-insert the flat contact rows:

from apify_client import ApifyClient
from supabase import create_client
apify = ApifyClient("YOUR_APIFY_TOKEN")
supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")
run = apify.actor("johnvc/SECInvestmentAdvisorContacts").call(
run_input={"query_type": "contacts", "date_updated": "2026-01-01", "contacts_limit": 1000}
)
rows = []
for item in apify.dataset(run["defaultDatasetId"]).iterate_items():
for contact in item.get("contacts", {}).get("results", {}).get("contacts", []):
rows.append({
"contact_id": contact["contact_id"],
"organization_crd": contact["organization_crd"],
"first_name": contact["first_name"],
"last_name": contact["last_name"],
"email": contact["email"],
"phone": contact["phone"],
"linkedin_url": contact["linkedin_url"],
"firm_name": contact["firm_name"],
})
supabase.table("sec_advisor_contacts").upsert(rows).execute()

MCP and AI agents

Add this API as a tool to any Apify MCP server client, including Claude Code (free trial) and Cursor, and let an agent answer questions like "list registered investment advisor firms in Boston and enrich them with contact emails". The Actor-specific MCP URL is https://mcp.apify.com/?tools=actors,docs,johnvc/SECInvestmentAdvisorContacts.

Webhooks

For anything custom, add an Apify webhook on the ACTOR.RUN.SUCCEEDED event to post the dataset to your own endpoint the moment a run finishes.


๐Ÿš€ Ready to Find Finance Professionals?

Start using Investment and Finance Professional Search today and discover investment and financial firms and their leadership teams from our database of 250,000+ professionals and 15,000+ firms. Whether you're building lead generation pipelines, conducting market research, expanding your network, or enriching CRM systems, you'll have clean, structured data in minutes!

Made with โค๏ธ

Transform your finance professional lead generation with reliable, production-ready search capabilities. Access one of the largest databases of investment and finance professionals available.


n8n integration

Available as an n8n community node, n8n-nodes-sec-investment-advisors-api. In n8n: Settings, Community Nodes, install n8n-nodes-sec-investment-advisors-api, then use it in any workflow (it also works as an AI Agent tool).


Ready-made use cases you can run in one click:


Pair this SEC investment advisor API with other tools in the same lead generation and financial research workflow:

Older alternatives exist but tend to be thin. One FINRA-focused broker-dealer lead Actor on the Store, for example, publishes a run success rate below 50 percent, carries only a couple of users, and has no reviews (see it here); this API is actively maintained, returns clean and consistent JSON, and covers 250,000+ contacts across 15,000+ firms.


FAQ

Can I schedule the SEC Investment Advisors API?

Yes. Any run can be automated on a schedule. Save a task with your input (for example a state filter plus date_updated), then open the Actor's Actions, then Schedule menu and attach a schedule. Common cron strings are 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, and 0 9 * * 1 for Mondays. One schedule can drive many tasks at once. For the full monitoring recipe, including incremental pulls with date_updated and pushing results to Slack or Supabase, see the Integrations section above.

Should I use an API or a web scraper for SEC investment advisor data?

Both give you the same registered advisor records; the difference is how you call them. An official government portal is built for one-off human lookups, not bulk export, and has no clean interface for pulling thousands of firms and contacts at once. This Actor gives you that data as a no-code web scraper you run from a form, or as a clean API endpoint you call yourself, with no quotas to manage. If the terms are new to you, here is a neutral primer on web scraping.

Can I use the SEC Investment Advisors API programmatically?

Yes. The Apify API lets you run the Actor, schedule it, and fetch datasets over HTTP, and the apify-client package is available for both Python and Node.js. Grab ready-made snippets and your token from the Actor's API tab.

Can I use this API through an MCP Server?

Yes. Add it as a tool to any MCP client, including Claude Code (free trial) and Cursor, through the hosted Apify MCP server. The Actor-specific URL is https://mcp.apify.com/?tools=actors,docs,johnvc/SECInvestmentAdvisorContacts. See the Apify MCP docs for client setup.

Can I integrate this advisor data with other apps?

Yes. The Actor connects to almost any cloud service through Apify integrations: route results into Make, Zapier, Slack, Google Sheets, and more. For custom actions the moment a run finishes, add an Apify webhook on ACTOR.RUN.SUCCEEDED.

Where does this data come from?

The records mirror the public SEC Investment Adviser Public Disclosure (IAPD) registry, the same source regulators publish at adviserinfo.sec.gov. A Registered Investment Adviser is a firm or person registered with the SEC or a state to give investment advice.

What is business development, and how does this data help?

Business development is the work of finding and growing new commercial relationships. Registered advisor firm and contact lists feed that work directly: they let sales and partnerships teams target the right RIA firms, reach decision makers, and prioritize outreach by location or firm size.

How do I generate leads with this Actor?

Filter by location, firm name, or organization CRD to build a focused list, then export the contact rows (name, email, phone, LinkedIn) into your CRM or outreach tool. Run it on a schedule with date_updated to keep a steady flow of new leads instead of a one-time list.

How much does it cost?

Pricing is pay-per-event: a small setup fee per run plus a per-contact charge, while firm-only queries are free beyond the setup fee. You only pay for contacts you actually receive. See the Pricing section for details.

How else can I build finance and investor lead lists?

Combine this Actor with related tools in the Related Tools section: use the Startup Investors Data Scraper for investor leads, the LinkedIn Company API and LinkedIn Profile API to enrich firms and contacts, and the Crunchbase Company API for funding and firmographic context.

Last Updated: 2026.07.13