# SEC Investment Adviser & RIA Firm Data Scraper (`logiover/sec-investment-adviser-data-scraper`) Actor

Export registered investment advisers and exempt reporting advisers from official SEC Form ADV roster files. Get CRD and SEC IDs, contact data, filing status, regulatory AUM, employees, accounts, custody and private fund metrics for thousands of firms.

- **URL**: https://apify.com/logiover/sec-investment-adviser-data-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEC Investment Adviser & RIA Firm Data Scraper

Export investment adviser firms from the latest official SEC Form ADV roster snapshots. The Actor supports both SEC-registered investment advisers and exempt reporting advisers, producing business-ready records with CRD and SEC identifiers, firm names, contact details, status, filing date, regulatory assets under management, accounts, employees, custody, and private-fund metrics.

The Actor discovers the newest roster links from the SEC publication page on every run and streams the official ZIP/CSV files. It does not scrape adviserinfo.sec.gov profile pages, does not need browser automation, and does not require an API key.

### What you can use it for

- Build RIA and exempt adviser lead lists for fintech, custody, compliance, audit, cybersecurity, recruiting, insurance, legal, and fund-administration services.
- Segment firms by state, country, regulatory AUM, employee count, or SEC status.
- Identify private-fund advisers and compare hedge, private-equity, venture-capital, and gross-asset metrics.
- Enrich CRM records with CRD, SEC, CIK, telephone, website, and current Form ADV filing information.
- Research the US investment-adviser market and regional firm distribution.
- Monitor monthly roster snapshots and adviser filing changes.

### Data included

Each result can include:

- registered or exempt roster type and reported firm type
- organization CRD number, SEC number, CIK, and SEC region
- primary business name, legal name, and organization form
- main-office city, state, country, postal code, phone, fax, and websites
- SEC current status, status effective date, jurisdiction notice filings, and latest ADV filing date
- umbrella-registration and relying-adviser counts
- total employees and investment-advisory employees
- discretionary, non-discretionary, and total regulatory assets under management
- discretionary, non-discretionary, and total account counts
- private-fund indicator, fund count, gross assets, and selected fund-type counts
- reported custody amount
- source snapshot filename and direct IAPD firm summary link

For records marked by the SEC as a private-residence main office, street lines are intentionally omitted while city/state/country remain available. Empty financial fields remain `null`, not zero.

### Input

The default input returns up to 1,000 firms from the latest rosters. Set `maxResults` higher to export tens of thousands.

- `adviserTypes`: registered advisers, exempt reporting advisers, or both
- `states`: main-office US state codes
- `countries`: exact SEC country labels
- `nameContains`: primary or legal-name fragment
- `secStatuses`: exact current statuses such as `Approved`
- `minimumRegulatoryAum`: Form ADV Item 5.F total regulatory AUM in USD
- `minimumEmployees`: Form ADV Item 5.A employee count
- `privateFundsOnly`: firms reporting private funds in Item 7.B

Example: California and New York firms with at least $1 billion regulatory AUM:

```json
{
  "maxResults": 10000,
  "adviserTypes": ["REGISTERED"],
  "states": ["CA", "NY"],
  "minimumRegulatoryAum": 1000000000,
  "secStatuses": ["Approved"]
}
```

Example: exempt private-fund advisers:

```json
{
  "maxResults": 5000,
  "adviserTypes": ["EXEMPT"],
  "privateFundsOnly": true
}
```

### Output example

```json
{
  "adviserType": "REGISTERED",
  "crdNumber": "123456",
  "secNumber": "801-12345",
  "primaryBusinessName": "EXAMPLE CAPITAL MANAGEMENT",
  "mainOffice": { "city": "NEW YORK", "state": "NY", "country": "United States" },
  "phone": "212-555-0100",
  "websites": ["HTTPS://WWW.EXAMPLE.COM"],
  "secCurrentStatus": "Approved",
  "regulatoryAssetsUnderManagement": 2500000000,
  "employeeCount": 42,
  "totalAccountCount": 1200,
  "privateFundCount": 3
}
```

Results are saved in the default Apify dataset for JSON, CSV, Excel, XML, API, webhook, and integration use.

### Understanding Form ADV values

The Actor maps named roster columns and selected Form ADV items; it does not estimate financial values. Regulatory AUM comes from Item 5.F(2)(c), total accounts from Item 5.F(2)(f), employees from Item 5.A, and private-fund metrics from Item 7.B-derived columns. Values represent the firm's latest included filing and may have different reporting dates.

The dataset is a discovery and research aid, not a statement that a firm is currently authorized in every jurisdiction. Always use the linked IAPD profile and relevant regulators for current registration, disciplinary, and disclosure checks.

### Performance and reliability

The latest links are discovered dynamically from the SEC page, so month-specific filenames are not hard-coded. CSV rows with hundreds of source columns are streamed and immediately reduced to a normalized record. This keeps 10,000+ result exports practical at 512 MB. Downloads and transient failures use retries; data is saved in batches.

### Data source and responsible use

The source is the US Securities and Exchange Commission's information about registered investment advisers and exempt reporting advisers. SEC publication does not constitute endorsement, and this Actor is not affiliated with the SEC or FINRA.

Use data lawfully and verify material investment, compliance, licensing, and due-diligence decisions against current official records. Respect applicable privacy and marketing requirements.

### Pricing

The Actor uses a small start event and one pay-per-result event for every saved firm. `maxResults` controls the upper bound. Scanned firms rejected by filters are not charged as results.

### Changelog

#### 2026-08-03 — 1.0.0

- Initial release.
- Verified the latest live SEC registered-adviser ZIP/CSV roster and its 448-column schema.
- Added dynamic latest-snapshot discovery, registered/exempt support, Form ADV financial mappings, private-residence protection, streaming, filters, retries, and dataset overview.

# Actor input Schema

## `maxResults` (type: `integer`):

Maximum matching adviser records to save. The latest SEC registered and exempt rosters contain tens of thousands of firms.

## `adviserTypes` (type: `array`):

Choose SEC-registered investment advisers, exempt reporting advisers, or both.

## `states` (type: `array`):

Optional US state codes such as NY, CA or TX.

## `countries` (type: `array`):

Optional exact SEC country names, for example UNITED STATES or UNITED KINGDOM.

## `nameContains` (type: `string`):

Case-insensitive fragment matched against primary business and legal names.

## `secStatuses` (type: `array`):

Optional exact statuses such as Approved. Empty means every status in the selected roster.

## `privateFundsOnly` (type: `boolean`):

Only firms reporting one or more private funds in Form ADV Item 7.B.

## Actor input object example

```json
{
  "maxResults": 1000,
  "adviserTypes": [
    "REGISTERED",
    "EXEMPT"
  ],
  "states": [],
  "countries": [],
  "nameContains": "",
  "secStatuses": [],
  "privateFundsOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/sec-investment-adviser-data-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("logiover/sec-investment-adviser-data-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call logiover/sec-investment-adviser-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/sec-investment-adviser-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VezKyvaFiQA1ztW9g/builds/svCcdvHTJjCghVzoz/openapi.json
