# RIA Registration Delta Monitor — SEC Adviser Leads & AUM (`malonestar/ria-registration-delta-monitor`) Actor

Month-over-month RIA registration intelligence from the SEC monthly Investment Adviser data: new RIA registrations, terminations, AUM changes, state relocations, and ERA-to-RIA graduations. Lead sheets for advisor recruiters, custodian RIA sales, wealthtech GTM, and compliance consultants.

- **URL**: https://apify.com/malonestar/ria-registration-delta-monitor.md
- **Developed by:** [Kyle Maloney](https://apify.com/malonestar) (community)
- **Categories:** Lead generation, Developer tools, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.60 / 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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## RIA Registration Delta Monitor — SEC Investment Adviser Leads & AUM Changes

Month-over-month **RIA registration intelligence** built from the SEC's official monthly
[Information About Registered Investment Advisers and Exempt Reporting Advisers](https://www.sec.gov/data-research/sec-markets-data/information-about-registered-investment-advisers-exempt-reporting-advisers)
compilation (Form ADV Part 1A data). Instead of a flat 15,000-row dump, this actor emits
**actionable lead sheets**:

- `new_registration` — firms newly SEC-registered this month (brand-new RIAs to pitch)
- `terminated` — firms that dropped off the SEC register (breakaway/wind-down signals)
- `aum_change` — firms whose regulatory AUM moved more than your threshold (growth or outflow alerts)
- `state_relocation` — firms whose main office moved states (re-domestication, M&A, expansion)
- `era_to_ria_graduation` — Exempt Reporting Advisers that graduated to full SEC registration (fast-growing funds crossing the AUM bar)

### Who it's for

- **Advisor recruiters** — every `new_registration` is a firm that just needs staff, tech, and custody.
- **Custodian RIA-channel sales (Schwab, Fidelity, etc.)** — catch breakaways and graduations the month they appear.
- **Wealthtech GTM teams** — target firms by state and AUM band the moment they register.
- **Compliance consultants** — new registrants need compliance programs; terminations flag churn in your book.

### Modes

- **`roster` (default)** — a bounded slice of the latest monthly roster (filter by state / minimum AUM).
  Needs no history, always returns rows, and is the safe first run.
- **`delta`** — compares the latest month against the prior month. The prior snapshot is cached in the
  actor's key-value store, so a monthly schedule downloads each file only once. If no snapshot exists
  yet, the actor downloads the previous month's file directly; if neither is available, the **first run
  seeds the baseline** and exits cleanly with zero results (you are not charged for results).

### Example input

```json
{
  "mode": "delta",
  "eventTypes": ["new_registration", "era_to_ria_graduation"],
  "state": "TX",
  "minAum": 100000000,
  "maxResults": 500
}
````

Quick roster preview (default): `{ "mode": "roster", "state": "", "minAum": 0, "maxResults": 200 }`

### Output fields

| Field | Description |
|---|---|
| `event_type` | roster / new\_registration / terminated / aum\_change / state\_relocation / era\_to\_ria\_graduation |
| `crd` | Firm CRD organization number (stable key) |
| `firm_name` | Primary business name |
| `sec_number` | SEC file number (801-…) |
| `main_office_state` / `main_office_city` | Main-office location (current month) |
| `aum_usd` / `aum_prev_usd` / `aum_change_pct` | Regulatory AUM (Form ADV 5F(2)(c)), prior value, and MoM % change |
| `employee_count` | Form ADV Item 5A total employees |
| `previous_state` | Prior state (state\_relocation only) |
| `filing_month` | SEC compilation month (YYYY-MM) |
| `source_url` | Exact sec.gov zip the data came from |

### Use as an MCP tool

This actor works as a tool for AI agents (Claude, Cursor, etc.) via [mcp.apify.com](https://mcp.apify.com) —
ask your agent for "new SEC-registered RIAs in Texas over $100M AUM this month" and it can call this
actor directly and read the typed dataset fields.

### Honest notes

- **Monthly cadence.** The SEC posts one compilation per month (usually early in the month). Running
  more often than monthly re-reads the same file; schedule this actor monthly for clean deltas.
- **Filename drift is handled.** The SEC's monthly zip names drift (`ia07012026.zip`, `ia060126_0.zip`,
  `ia050126.zip`…). The actor tries all known name patterns and falls back one month automatically if
  the current month is not posted yet.
- **SEC fair-access policy.** All requests send a declared `User-Agent` per SEC guidance, and the actor
  downloads at most four small files per run.
- **First delta run seeds the baseline** (zero results, zero result charges). Every following monthly
  run emits real deltas.

### FAQ

**How do I get a list of newly registered investment advisers?**
Run with `mode: "delta"` and `eventTypes: ["new_registration"]` on a monthly schedule.

**Can I track RIA AUM changes month over month?**
Yes — `eventTypes: ["aum_change"]` with `aumChangePctThreshold` (default 10%).

**Does it cover Exempt Reporting Advisers (ERAs)?**
The ERA file is downloaded alongside the RIA file to detect `era_to_ria_graduation` events and to avoid
mislabeling RIA→ERA moves as terminations.

**Which SEC data is this based on?**
The SEC's monthly Investment Adviser compilations of Form ADV Part 1A filings (registered + exempt) —
zipped CSV roster files published on sec.gov. No scraping of IAPD, no login, no API key.

**Why did my first delta run return nothing?**
It seeded the baseline snapshot. The next monthly run emits deltas.

### Pricing

Pay per result: you are billed only for the roster rows or delta events actually emitted (cap with `maxResults`). The full monthly SEC file is parsed regardless — you are never billed for rows filtered out. Baseline-seeding runs emit nothing and cost only the actor start.

### Related actors

| Actor | What it adds |
|---|---|
| [Realtor License Roster & Broker Change Delta](https://apify.com/malonestar/realtor-license-roster-delta) | The same registration-delta pattern for TX/FL real estate licensees |
| [FDIC Deposit Market Share Rollup](https://apify.com/malonestar/fdic-sod-deposit-market-share-rollup) | Branch-level deposit share — pairs with RIA leads for bank/wealth GTM |

# Actor input Schema

## `mode` (type: `string`):

`roster` (default) returns a bounded slice of the latest monthly SEC Investment Adviser roster — no prior month needed, never empty. `delta` compares the latest month against the previous snapshot (KV-cached or downloaded) and emits change events; the first delta run seeds the baseline and emits nothing.

## `eventTypes` (type: `array`):

Which delta events to emit. Empty = all five. Ignored in roster mode. Options: new\_registration, terminated, aum\_change, state\_relocation, era\_to\_ria\_graduation.

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

Two-letter US state/territory code to filter by main-office state (e.g. TX, NY, CA). Empty = all states.

## `minAum` (type: `integer`):

Only include firms with regulatory assets under management (Form ADV Item 5F(2)(c)) at or above this dollar amount. 0 = no minimum.

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

Maximum number of rows to push to the dataset (caps your Pay-Per-Event cost).

## `aumChangePctThreshold` (type: `integer`):

Delta mode only: minimum absolute month-over-month AUM change (percent) required to emit an aum\_change event.

## `month` (type: `string`):

Optional month to load, e.g. 2026-07. Empty = current month (with automatic fallback to the previous month if the SEC has not posted the file yet).

## Actor input object example

```json
{
  "mode": "roster",
  "eventTypes": [],
  "state": "",
  "minAum": 0,
  "maxResults": 200,
  "aumChangePctThreshold": 10,
  "month": ""
}
```

# Actor output Schema

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

The default dataset of RIA roster/delta rows.

# 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("malonestar/ria-registration-delta-monitor").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("malonestar/ria-registration-delta-monitor").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 malonestar/ria-registration-delta-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=malonestar/ria-registration-delta-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RIA Registration Delta Monitor — SEC Adviser Leads & AUM",
        "description": "Month-over-month RIA registration intelligence from the SEC monthly Investment Adviser data: new RIA registrations, terminations, AUM changes, state relocations, and ERA-to-RIA graduations. Lead sheets for advisor recruiters, custodian RIA sales, wealthtech GTM, and compliance consultants.",
        "version": "1.0",
        "x-build-id": "iUgxXI0V4LD7qZwbh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/malonestar~ria-registration-delta-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-malonestar-ria-registration-delta-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/malonestar~ria-registration-delta-monitor/runs": {
            "post": {
                "operationId": "runs-sync-malonestar-ria-registration-delta-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/malonestar~ria-registration-delta-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-malonestar-ria-registration-delta-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "roster",
                            "delta"
                        ],
                        "type": "string",
                        "description": "`roster` (default) returns a bounded slice of the latest monthly SEC Investment Adviser roster — no prior month needed, never empty. `delta` compares the latest month against the previous snapshot (KV-cached or downloaded) and emits change events; the first delta run seeds the baseline and emits nothing.",
                        "default": "roster"
                    },
                    "eventTypes": {
                        "title": "Event types (delta mode)",
                        "type": "array",
                        "description": "Which delta events to emit. Empty = all five. Ignored in roster mode. Options: new_registration, terminated, aum_change, state_relocation, era_to_ria_graduation.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "new_registration",
                                "terminated",
                                "aum_change",
                                "state_relocation",
                                "era_to_ria_graduation"
                            ],
                            "enumTitles": [
                                "New registration",
                                "Terminated",
                                "AUM change",
                                "State relocation",
                                "ERA-to-RIA graduation"
                            ]
                        },
                        "default": []
                    },
                    "state": {
                        "title": "Main-office state",
                        "type": "string",
                        "description": "Two-letter US state/territory code to filter by main-office state (e.g. TX, NY, CA). Empty = all states.",
                        "default": ""
                    },
                    "minAum": {
                        "title": "Minimum AUM (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include firms with regulatory assets under management (Form ADV Item 5F(2)(c)) at or above this dollar amount. 0 = no minimum.",
                        "default": 0
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of rows to push to the dataset (caps your Pay-Per-Event cost).",
                        "default": 200
                    },
                    "aumChangePctThreshold": {
                        "title": "AUM change threshold (%)",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Delta mode only: minimum absolute month-over-month AUM change (percent) required to emit an aum_change event.",
                        "default": 10
                    },
                    "month": {
                        "title": "Target month (YYYY-MM)",
                        "type": "string",
                        "description": "Optional month to load, e.g. 2026-07. Empty = current month (with automatic fallback to the previous month if the SEC has not posted the file yet).",
                        "default": ""
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
