# SEC Form ADV Wealth Management & Investment Adviser Data (`afkdigital/sec-form-adv-investment-adviser-intelligence`) Actor

Official SEC/IAPD registered adviser and ERA intelligence: regulatory AUM, client types, raw registration status and exact-filing CCO names. Unique CRD JSON/CSV exports for Clay and n8n.

- **URL**: https://apify.com/afkdigital/sec-form-adv-investment-adviser-intelligence.md
- **Developed by:** [AFK Digital](https://apify.com/afkdigital) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$9.00 / 1,000 unique adviser firms

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SEC Form ADV Wealth Management & Investment Adviser Intelligence

Find SEC-registered investment advisers, state-registered investment advisers and exempt reporting advisers using the official SEC/IAPD downloadable files. Export one row per CRD to JSON or CSV for Clay, n8n, research and CRM workflows.

### What this Actor does

Reads the latest published SEC and state Investment Adviser Data compilation files, selects the latest reported Form ADV record per firm CRD, filters firms, and enriches the CCO name only when an official monthly Form ADV filing can be matched to that CRD and exact filing date. Uses public HTTP downloads, without login or browser scraping.

**Regulatory AUM is reported regulatory assets under management, in US dollars. It is not company revenue, the firm's own assets, or a measure of an individual client's wealth.** Adviser registration does not imply SEC approval or endorsement.

### Input

Example:

```json
{"state":"NY","minRegulatoryAumUsd":100000000,"clientType":"high_net_worth_individuals","registrationType":"SEC_REGISTERED","firmName":"","maxResults":5}
```

| Input | Meaning |
|---|---|
| state | Optional two-letter principal office state, such as NY or CA. This is not a registration-jurisdiction filter. |
| minRegulatoryAumUsd | Minimum Item5F(2)(c) amount in USD. Positive thresholds exclude missing AUM. Default0. |
| clientType | ALL or one of the documented Form ADV5D categories below. |
| registrationType | ALL, SEC_REGISTERED, STATE_REGISTERED, EXEMPT_REPORTING_ADVISER. |
| firmName | Case-insensitive literal substring of legal or primary business name. |
| maxResults | Successful unique firm limit, default5; integer1–5000. |

clientType values: individuals; high_net_worth_individuals; banks; investment_companies; business_development_companies; pooled_investment_vehicles; pension_profit_sharing_plans; charitable_organizations; state_municipal_governments; other_investment_advisers; insurance_companies; sovereign_wealth_foreign_official_institutions; corporations_other_businesses; other.

A category matches when the source reports clients, a fewer-than-five indicator, or positive regulatory AUM in that category. Missing information is not treated as positive evidence. The output retains the count, suppressed-count flag and AUM separately.

### Output and Form ADV mapping

| Field | Source / definition |
|---|---|
| crd_number | Item1E(1), firm CRD; unique result key. |
| sec_number | Item1D, published801/802 number; null when absent. |
| legal_firm_name | Item1A, distinct from business_name(Item1B). |
| main_office_address | Item1F(1), published principal office components. |
| phone | Item1F(3). |
| website_url / website_urls | ScheduleD1I; first valid non-social HTTP(S) URL / all published entries. No domain guessing. |
| regulatory_aum_usd | Item5F(2)(c), total regulatory AUM, USD without thousands/millions scaling. |
| total_accounts | Item5F(2)(f), total accounts included in regulatory AUM; not number of clients. |
| cco_name | Item1J(1), from the monthly ADV1J_1K table joined by FilingID to base table CRD and exact date. Item1K is never substituted. |
| cco_email | null: the inspected public compilation/monthly tables do not publish the email field. No inferred emails. |
| filing_date | Compilation Filing.Dt, latest Form ADV processed filing date. |
| registration_status | Source status values; see registrations for jurisdiction/type details. |
| registration_types | SEC_REGISTERED, STATE_REGISTERED and/or EXEMPT_REPORTING_ADVISER, from actual registration/reporting nodes. |
| registrations | Authority, raw status, type and effective date; SEC state notice filings are excluded. |
| client_types | Form ADV5D(a)–(n) categories, reported counts/flags/AUM. |
| source_url / source_urls | Official current compilation download and all contributing compilation URLs. |
| source_data_date | Compilation generated date, separate from filing date. |
| cco_source_url / cco_filing_id | Exact matched monthly filing provenance, if available. |
| cco_availability | Why CCO name is present, unavailable or withheld as ambiguous. |
| iapd_url | Official firm summary link using the published CRD. |
| fetched_at | Actual UTC fetch timestamp. |

Absent fields are null. Exempt reporting advisers often do not report Item5; Item2B private-fund assets are never substituted for regulatory AUM. Firms with both registered and exempt reporting jurisdictions keep all types in one CRD row. Status strings such as APPROVED, SUSPENDED, ACTIVE or TERMREQUEST are preserved rather than collapsed into an invented current-active label.

### Freshness and coverage

The Actor discovers files at run time from the manifests linked by the official [Investment Adviser Data](https://adviserinfo.sec.gov/compilation) and [Form ADV Data](https://adviserinfo.sec.gov/adv) download pages. At validation on30October2026, both current compilations were generated on2026-10-30; the newest monthly Form ADV Part1 archive covered2026-09-01 through2026-09-30, uploaded2026-10-01.

The older [SEC Form ADV archive](https://www.sec.gov/foia-services/frequently-requested-documents/form-adv-data) covers historical pre2025 filings and is not used as a current-registration fallback. The current compilation covers firms included under its SEC/state registration or exempt reporting inclusion rules, not every former adviser, individual representative or relying-adviser legal entity. One result is a filing-adviser CRD; this is not an exhaustive wealth-management-only list. Some registered firms do institutional or fund work.

Monthly public ADV archives may lag a current filing or omit a state firm's filing. If no exact same-date CRD match exists, the CCO name stays null. If multiple filings on that date prevent a certain join, it stays null. Contact-source errors are reported in SUMMARY rather than invented. CCO email is unavailable from the current public tables used. For a particular firm's freshest full document, consult its official IAPD link.

Form ADV data is self-reported and is not guaranteed accurate by SEC/state regulators. This Actor is independent of SEC, FINRA and IAPD.

### Price and limits

**USD0.009 per successfully returned unique adviser CRD: USD9 per1000 firms.** Pure Pay-per-Event, with no startup event or separate platform-usage surcharge. Zero returned firms generate no firm event charge. Duplicate source records are merged before billing. A fresh run returning the same firm is a new delivery; resurrection of the same run does not charge that firm again.

The platform spending limit and maxResults both bound outputs. A budget below USD0.009 stops before any source download. Saved charge intent plus a per-CRD idempotency key prevents duplicate charging during restarts; an interrupted ambiguous charge may be conservatively left uncharged.

Safety bounds: at most30MiB per download,150MiB transferred per run, bounded decompression, sequential official requests, three attempts on transient network/429/5xx errors, no retry/access bypass on403, and a240second source-processing deadline. Current feed failures are fatal. Optional CCO enrichment may be incomplete under resource limits and is labelled. SEC/state source dates must match, and an official current file older than10days fails clearly.

The verified local default retrieved five firms in16.4seconds; cloud run evidence is recorded with the release. Timings depend on source availability. Large result sets can reach contact-download limits; the core firm results remain current and contact gaps explicit.

### JSON, CSV, Clay and n8n

Use the run Dataset export buttons. JSON preserves structured address, registration and client-category arrays. CSV can flatten fields with Apify's Dataset export options. In n8n, run the Actor and fetch the resulting default Dataset; in Clay use its HTTP/API integration. OUTPUT provides Dataset JSON/CSV links. Private runs need your own token in an authorization header; never place it in a shared URL.

### Development

`python -m unittest discover -v`
Source code, schemas and Docker image configuration are included. Production package excludes tests, caches, source archives and credentials.

# Actor input Schema

## `state` (type: `string`):

Two-letter US state/jurisdiction, e.g. NY. Empty means all; not registration state.

## `minRegulatoryAumUsd` (type: `number`):

Form ADV5F(2)(c), USD; not revenue or client wealth.

## `clientType` (type: `string`):

Form ADV5D client category; match reported clients, suppressed count or positive category AUM.

## `registrationType` (type: `string`):

Filter actual SEC/state registration or exempt reporting status; state notice filings are not registration.

## `firmName` (type: `string`):

Literal, case-insensitive legal/business name substring.

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

Hard result cap; one paid event per unique delivered firm.

## Actor input object example

```json
{
  "state": "",
  "minRegulatoryAumUsd": 0,
  "clientType": "ALL",
  "registrationType": "ALL",
  "firmName": "",
  "maxResults": 5
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `summary` (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("afkdigital/sec-form-adv-investment-adviser-intelligence").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("afkdigital/sec-form-adv-investment-adviser-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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 afkdigital/sec-form-adv-investment-adviser-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,afkdigital/sec-form-adv-investment-adviser-intelligence"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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