SEC Investment Adviser Public Disclosure Scraper avatar

SEC Investment Adviser Public Disclosure Scraper

Pricing

Pay per event

Go to Apify Store
SEC Investment Adviser Public Disclosure Scraper

SEC Investment Adviser Public Disclosure Scraper

Extract SEC IAPD adviser firm profiles, Form ADV dates, registration statuses, addresses, disclosure flags, and profile URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Extract SEC IAPD investment adviser firm records from the public SEC Investment Adviser Public Disclosure database.

The actor searches adviserinfo.sec.gov, fetches public firm profile JSON, and saves normalized adviser firm records with SEC numbers, registration status, Form ADV filing dates, office addresses, disclosure flags, notice filings, and source profile URLs.

What does SEC Investment Adviser Public Disclosure Scraper do?

SEC Investment Adviser Public Disclosure Scraper turns public IAPD adviser search results into a clean Apify dataset.

It can:

  • ๐Ÿ”Ž Search adviser firms by keyword or firm name
  • ๐Ÿงพ Fetch direct adviser profiles by SEC IAPD firm / CRD-style ID
  • ๐Ÿ›๏ธ Extract registration status and jurisdiction rows
  • ๐Ÿ“„ Capture Form ADV filing dates and compilation metadata
  • ๐Ÿ“ Normalize office address data
  • ๐Ÿšฉ Preserve disclosure flags and profile URLs
  • ๐Ÿ“ฆ Export results as JSON, CSV, Excel, XML, RSS, or via API

Who is it for?

This scraper is built for teams that work with registered investment adviser data.

  • Compliance analysts checking RIA status and disclosure signals
  • Due-diligence teams screening financial advisers and wealth managers
  • Wealth-tech vendors enriching adviser firm databases
  • KYC and vendor-risk teams validating public registration information
  • Market-mapping teams building lists of advisory firms by keyword or region
  • Data providers monitoring SEC IAPD and Form ADV metadata

Why use it?

SEC IAPD is public, but exporting repeatable, normalized search results is inconvenient. This actor gives you an automation-ready dataset instead of manual browser checks.

Benefits:

  • Repeatable searches with the same input
  • Structured output with stable field names
  • Direct links back to source profiles
  • Detail enrichment from the same public JSON used by the IAPD site
  • Works without a login, browser session, or private credentials
  • Suitable for scheduled monitoring workflows

Data source

The actor uses the public SEC IAPD web application and its public JSON endpoints:

  • Website: https://adviserinfo.sec.gov/
  • Search endpoint family: https://api.adviserinfo.sec.gov/search/firm
  • Profile endpoint family: https://api.adviserinfo.sec.gov/search/firm/{firmId}

The actor does not bypass authentication because no authentication is required for the public firm records it extracts.

How much does it cost to extract SEC IAPD adviser firms?

This actor uses pay-per-event pricing.

You pay a small start fee for each run and a per-record fee for each adviser firm saved to the dataset. The exact price is visible on the Apify actor page before you run it.

Cost depends mainly on:

  • Number of adviser firms requested in maxItems
  • Whether detail enrichment is enabled
  • How many search terms you provide
  • SEC response speed during the run

Use a small maxItems value for your first run, then scale up once the output matches your workflow.

Input overview

You can provide broad searches, direct firm IDs, or both.

FieldTypeDescription
searchQueriesarrayFirm-name or keyword searches such as BlackRock, capital, or wealth management.
firmNamestringConvenience single firm-name search.
crdNumbersarrayExact SEC IAPD firm/source IDs to fetch directly.
secNumbersarraySEC adviser numbers searched as terms.
statestringOptional two-letter US state filter, e.g. NY or CA.
maxItemsintegerMaximum adviser firm records to save.
includeDetailsbooleanFetch profile details for registration, ADV, and jurisdiction fields.
requestDelayMsintegerPolite delay between detail requests.

Example input

{
"searchQueries": ["capital", "wealth management"],
"firmName": "BlackRock",
"crdNumbers": ["106614"],
"state": "NY",
"maxItems": 50,
"includeDetails": true,
"requestDelayMs": 100
}

Output overview

Each dataset item represents one SEC IAPD adviser firm record.

FieldDescription
firmIdSEC IAPD firm/source ID used in profile URLs.
firmNameRegistered adviser firm name.
otherNamesAlternate names listed by IAPD.
iaScopeIAPD investment adviser scope/status text.
isIAFirmIAPD IA firm flag.
secNumberSEC adviser number without prefix.
secNumberTypeSEC number prefix, for example 801 or 802.
fullSecNumberCombined SEC adviser number.
advFilingDateLatest Form ADV filing date shown in profile data.
disclosureFlagSearch-level disclosure flag when available.
branchesCountBranch count from search results when available.
officeAddressMain office address object.
registrationStatusesSEC/state registration status rows.
noticeFilingsNotice filing rows by jurisdiction.
exemptReportingAdvisersERA status rows where present.
orgScopeStatusFlagsScope flags from the profile JSON.
brochuresCountNumber of Part 2 brochure detail rows.
compilationDataForm ADV compilation metadata rows.
profileUrlPublic SEC IAPD profile URL.
sourceQuerySearch term or direct ID that produced the record.
scrapedAtISO timestamp for the extraction.

Example output

{
"firmId": 106614,
"firmName": "BLACKROCK ADVISORS, LLC",
"otherNames": ["BLACKROCK", "BLACKROCK ADVISORS, LLC"],
"iaScope": "ACTIVE",
"isIAFirm": "Y",
"secNumber": "47710",
"secNumberType": "801",
"fullSecNumber": "801-47710",
"advFilingDate": "05/15/2026",
"officeAddress": {
"street1": "50 HUDSON YARDS",
"city": "NEW YORK",
"state": "NY",
"country": "United States",
"postalCode": "10001"
},
"profileUrl": "https://adviserinfo.sec.gov/firm/summary/106614",
"sourceQuery": "BlackRock",
"scrapedAt": "2026-06-27T00:00:00.000Z"
}

How to scrape SEC IAPD adviser firms

  1. Open the actor on Apify.
  2. Enter one or more firm names or search keywords.
  3. Optionally add direct IAPD firm IDs in crdNumbers.
  4. Set maxItems to the number of firms you want.
  5. Keep includeDetails enabled for compliance workflows.
  6. Run the actor.
  7. Download the dataset or connect it to your API pipeline.

Search tips

  • Use broad business terms such as capital, wealth management, or advisors for larger lists.
  • Use exact firm names for targeted due diligence.
  • Use direct firm IDs when you already have known IAPD profile IDs.
  • Use state filters for region-specific market mapping.
  • Keep requestDelayMs at the default unless you need faster runs.

Direct firm ID mode

If you know a profile URL like:

https://adviserinfo.sec.gov/firm/summary/106614

then 106614 is the firm ID. Add it to crdNumbers and the actor will fetch that profile directly.

This is useful when you maintain an internal list of adviser IDs and want refreshed public profile fields.

Detail enrichment

When includeDetails is enabled, the actor fetches the profile JSON for every saved firm.

Detail enrichment adds:

  • Form ADV filing date
  • Registration status rows
  • Notice filings
  • Exempt reporting adviser status
  • Organization scope flags
  • Compilation metadata
  • Brochure counts when available

Disable it only when you need faster search-level exports.

Integrations

Use this actor in workflows such as:

  • Daily RIA monitoring into Google Sheets
  • Compliance enrichment in Snowflake or BigQuery
  • CRM enrichment for adviser firm accounts
  • Vendor onboarding checks
  • KYC screening pipelines
  • Due-diligence research notebooks
  • Webhook alerts when scheduled runs finish

Apify integrations can send results to Make, Zapier, Slack, Google Drive, S3, or your own API.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/sec-investment-adviser-public-disclosure-scraper').call({
searchQueries: ['capital'],
maxItems: 25,
includeDetails: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/sec-investment-adviser-public-disclosure-scraper').call(run_input={
'searchQueries': ['wealth management'],
'maxItems': 25,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~sec-investment-adviser-public-disclosure-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchQueries":["capital"],"maxItems":25,"includeDetails":true}'

MCP usage

You can use this actor through Apify MCP in Claude Desktop or Claude Code.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/sec-investment-adviser-public-disclosure-scraper

Claude Code setup:

$claude mcp add apify-sec-iapd "https://mcp.apify.com/?tools=automation-lab/sec-investment-adviser-public-disclosure-scraper"

Claude Desktop JSON config:

{
"mcpServers": {
"apify-sec-iapd": {
"url": "https://mcp.apify.com/?tools=automation-lab/sec-investment-adviser-public-disclosure-scraper"
}
}
}

Example prompts:

  • "Run the SEC IAPD scraper for BlackRock and summarize adviser registration statuses."
  • "Find 25 investment adviser firms matching wealth management in CA."
  • "Fetch SEC IAPD profile fields for firm ID 106614."

Data quality notes

The actor returns public data exactly as exposed by SEC IAPD profile JSON. Some fields may be empty for exempt reporting advisers, foreign firms, or firms without a given section.

Always use profileUrl for source verification when making compliance decisions.

FAQ

Why did I get zero results?

Try a broader searchQueries value, remove the state filter, or verify that a direct firm ID exists on the public IAPD website.

Why are some arrays empty?

Not every adviser firm has notice filings, exempt reporting adviser rows, brochure rows, or all registration sections. Empty arrays mean the public profile JSON did not include rows for that section.

Why does the run take longer with details enabled?

Detail mode sends one profile request per saved firm. Increase requestDelayMs for politeness or disable details for quick search-level exports.

Legality

This actor extracts public information from SEC IAPD. You are responsible for using the data lawfully and respecting applicable compliance, privacy, and securities-industry rules. Do not use the actor to make decisions that require professional review without validating source records.

Explore related automation-lab actors on Apify:

Changelog

0.1

  • Initial release candidate with SEC IAPD firm search, direct firm IDs, profile detail enrichment, and normalized adviser firm output.