SEC Investment Adviser Firms & Contacts
Pricing
from $1.92 / 1,000 adviser firm exporteds
SEC Investment Adviser Firms & Contacts
Build state-filtered SEC investment adviser firm lists from the official IAPD compilation. Export legal and business names, CRD/SEC identifiers, registration, office address, phone, websites, and dated feed provenance.
Pricing
from $1.92 / 1,000 adviser firm exporteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Build and refresh state-filtered lists of SEC investment adviser firms from the official IAPD firm compilation. Export business and legal names, public office contacts, regulatory identifiers, registration dates, reported regulatory assets, and dated source provenance.
This Actor returns firms, not individual advisers. It includes only records marked Registered and APPROVED; exempt reporting advisers in the SEC feed are excluded. It is not affiliated with or endorsed by the SEC or FINRA.
Who is it for?
- Compliance analysts refreshing an adviser-firm reference list.
- Financial-services researchers comparing firms by office state and reported assets.
- Business development teams building public firm-level prospecting lists without individual contact enrichment.
Why use this Actor?
The official compilation provides a reproducible snapshot rather than a relevance-ranked name search. Every row includes the exact dated feed URL, its generation date, and the retrieval timestamp. Filters are applied locally and consistently; the complete compilation is streamed without loading the XML into memory.
Use CRD as the durable comparison key in your own pipeline. Registration and contact details are reported data, not independent verification or investment advice.
Get started
- Enter main office state codes, such as
TX. - Optionally narrow by a literal firm-name substring or minimum regulatory assets.
- Set the global maximum firms you want returned.
- Run the Actor and inspect the default dataset.
- Download JSON, CSV, Excel, or XML using Apify dataset exports.
{"states":["TX"],"maxItems":10}
Leave states empty to include all main office locations, including foreign offices.
Input parameters
| Field | Default | Meaning |
|---|---|---|
states | [] | ANY main-office state in the supplied two-letter US state/territory codes. Case-insensitive and trimmed. Not notice filings or branches. |
nameContains | "" | Case-insensitive literal substring in business OR legal name. Input edges trimmed; internal whitespace and punctuation preserved. Not whole-word equality. |
minAssets | 0 | Inclusive minimum USD total regulatory assets from Form ADV Item 5F Q5F2C. Zero disables filtering; positive values exclude missing assets. |
maxItems | 100 | Global accepted unique-firm cap, 1–50000, in feed order after filtering and deduplication. Zero/unlimited is unsupported. |
All enabled filters combine with AND. Unsupported fields and malformed filters fail rather than being silently ignored. No login, cookie, proxy, historical-feed URL, or external enrichment input is needed.
For example, {"states":["TX","CA"],"nameContains":"capital","minAssets":100000000,"maxItems":100} selects firms whose main office is in either state, whose business or legal name contains that substring, and whose reported assets meet the minimum.
Extracted data
| Field | Meaning |
|---|---|
crdNumber, secNumber | Firm CRD and full SEC identifiers, preserved as strings. |
businessName, legalName | Business and legal names from the feed. |
firmType, registrationStatus, registrationDate | Registered/APPROVED status and its associated date. |
address | Main office street lines, city, state, country and postal code. |
phone | Public main office phone as reported, or null. |
websites | Declared web addresses, including any social profiles, deduplicated. |
noticeFiledStates | Codes for filed notices; not guaranteed service coverage or licenses. |
assetsUnderManagement | Reported total regulatory assets in USD, or null. |
filingDate | Form ADV filing date, or null. |
profileUrl | Official IAPD firm summary link. |
sourceUrl, feedGeneratedOn, retrievedAt | Exact compilation URL, root generation date and UTC retrieval timestamp. |
Missing optional source values remain null or empty arrays. Websites are not crawled or verified; no personal emails are supplied.
Output example
A representative record from the official compilation:
{"crdNumber": "306053","secNumber": "801-118060","businessName": "SAVE ADVISERS LLC","legalName": "SAVE ADVISERS LLC","firmType": "Registered","registrationStatus": "APPROVED","registrationDate": "2020-02-07","address": {"street1":"4306 YOAKUM BLVD","street2":"SUITE 200","city":"HOUSTON","state":"TX","country":"United States","postalCode":"77006"},"phone": "254-284-7283","websites": ["http://www.joinsave.com","https://www.marketsavings.com"],"noticeFiledStates": ["TX"],"assetsUnderManagement": 3500000,"filingDate": "2026-04-09","profileUrl": "https://adviserinfo.sec.gov/firm/summary/306053","sourceUrl": "https://reports.adviserinfo.sec.gov/reports/CompilationReports/IA_FIRM_SEC_Feed_10_10_2026.xml.gz","feedGeneratedOn": "2026-10-10","retrievedAt": "2026-10-10T20:07:06.969Z"}
The SUMMARY key-value record contains scanned/emitted counts, feed generation date, exact source URL, and effective filters after the complete feed validates.
How much does it cost to export SEC investment adviser firms?
Pay-per-event pricing consists of one start event per valid run plus one item event per exported firm. Filtered-out and duplicate firms have no item charge. Address, phone, websites, and provenance are included in the firm event, with no separate contact charge.
The start fee is $0.001 per run. Firm prices by qualifying aggregate monthly Store spend tier are: FREE $0.00368, BRONZE $0.0032, SILVER $0.002496, and GOLD/PLATINUM/DIAMOND $0.00192 per firm. These are Apify Store discount tiers, not a private per-Actor volume schedule. For example, estimated BRONZE totals are $0.0042 for one firm, $0.033 for 10, and $0.321 for 100, including the start fee. Consult the pricing panel for applicable charges; estimates are not guaranteed invoices. A run with no matches still incurs the start charge. Invalid input fails before charging. Platform run limits or an upstream failure may leave charged partial output; do not treat a failed run as a completed snapshot.
Coverage, limits and freshness
The Actor discovers the current SEC firm gzip through the official compilation manifest. It does not search individual advisers, state-only registered firms, historical filings, emails, or private records. SEC feed membership alone does not mean a firm is registered: exempt advisers are explicitly excluded.
The feed generation date defines freshness. This is not a real-time status check and does not automatically compare runs, send alerts, or detect changes. Schedule runs and compare CRD-keyed exports downstream if you need recurring refreshes.
A smaller result cap reduces output, not compilation scanning. When you hit the cap, matching firms may remain; increase it to obtain more. Compilation order is not a ranking. Feed changes can alter which firms appear first.
Reliability and troubleshooting
Manifest requests have bounded transient retries. A interrupted feed, non-success response, wrong XML root, incomplete firm identity, or malformed/truncated XML fails the run honestly. The full gzip is consumed for integrity validation even after the output cap. No automatic paid proxy or search fallback changes the scope.
- Zero firms? Inspect
SUMMARYand broaden states, name or assets. A valid empty match is not a source failure. - Unexpected state?
statesrefers to the main office, not notice filings, branches or representative locations. - Fewer than the cap? The cap is a maximum, not a promised count.
- Failed run with rows? Those rows are partial; investigate the error before using them as a full snapshot.
Integrations
Use Apify schedules for periodic list refreshes, then send dataset exports to a spreadsheet or warehouse. Join CRD identifiers to your internal compliance records and compare feedGeneratedOn before interpreting changes. Webhooks can trigger your own downstream job on successful completion. The Actor itself does not send emails or operate a CRM.
API usage
Keep your Apify token in environment variables, not shared URLs or documents.
curl -X POST -H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"states":["TX"],"maxItems":10}' \'https://api.apify.com/v2/acts/automation-lab~sec-registered-investment-advisers-list-and-contacts/runs'
The response contains a run ID and storage IDs, not result rows. Wait for that run to succeed, then retrieve its defaultDatasetId through the dataset API.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/sec-registered-investment-advisers-list-and-contacts').call({ states: ['TX'], maxItems: 10 });if (run.status !== 'SUCCEEDED') throw new Error(`Run ${run.id}: ${run.status}`);const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 10 });console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/sec-registered-investment-advisers-list-and-contacts').call(run_input={'states':['TX'], 'maxItems':10})if run['status'] != 'SUCCEEDED':raise RuntimeError(run['status'])rows = client.dataset(run['defaultDatasetId']).list_items(limit=10).items
MCP usage
Select a stable Actor-specific subset:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/sec-registered-investment-advisers-list-and-contacts"
For Claude Desktop, Cursor, and VS Code clients (use the client's supported remote MCP configuration):
{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/sec-registered-investment-advisers-list-and-contacts"}}}
Example prompts:
- "Export 10 SEC registered adviser firms with main offices in Texas."
- "List five California adviser firms with capital in their name and at least $100 million in regulatory assets."
Discover actual names and argument schemas with read-only tools/list. Actor selection also exposes supporting run/data tools, not exactly one tool. For an authorized invocation, ask: “Export 10 SEC registered adviser firms with main offices in Texas.” Start once, retain the run ID, and follow that same run. Server waiting is bounded; a client timeout is not permission to restart.
Use get-actor-run with bounded backoff, for example 2/4/8 seconds capped at 10 and a 120-second total deadline. Configure the client timeout above the selected server wait plus transport margin, within that deadline. At deadline report pending with the known run ID. If a timeout leaves the run ID unknown, report uncertainty rather than blindly rerunning. Report terminal failures honestly: any available rows are partial, not a successful full snapshot.
On success call get-dataset-items with the returned defaultDatasetId, explicit limit: 20, offset: 0, and projected fields for crdNumber, secNumber, businessName, address, phone, assetsUnderManagement, sourceUrl, and feedGeneratedOn. Use the actual argument names and field-list representation discovered in tools/list, not an assumed schema. Prefer untransformed JSON and continue at source offsets 20, 40, etc., using pagination metadata rather than transformed row counts.
Admit at most 100 rows or 64 KiB of serialized UTF-8 results across all pages into model context, whichever comes first. Process pages host-side before model injection; omit or summarize oversized rows/pages with disclosure. If your client cannot intercept oversized responses, do not promise a hard byte guarantee. Stop at exhaustion or budget; report returned rows, continuation offset and partial/truncated status. Full exports stay in downstream storage. These are consumer context budgets, not Actor collection limits. No universal token-saving claim is made.
Legality, responsible use and diagnostics
Use public firm contact information lawfully and honor applicable privacy and outreach rules. Registration is not an SEC endorsement, an investment recommendation or a guarantee of accuracy. Verify material facts against official records before making compliance decisions.
No AI model is used at runtime. Apify stores datasets, SUMMARY and logs under your account's retention settings; the company plan retains platform data for 31 days. You can delete run datasets and key-value stores through Console or API. Exported copies remain under your control. There is no cross-run cache. For help, open an issue in the Actor's Apify Issues tab.
Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed, and reports are retained for 30 days.
FAQ
Does the Actor return individual advisers or email addresses? No. It exports firm-level official compilation records and public office contacts only.
Can I find all firms serving Texas? Not from the state filter: it selects main offices in Texas. Notice filings are included for context, not proof of service coverage.
Can I monitor changes? Schedule runs and compare exports in your own system. No built-in change detector or alerts are supplied.
Does it include exempt reporting advisers? No, even though the SEC feed includes them.
Related Actors
For targeted name/CRD lookup and additional IAPD details rather than compilation lists, see SEC Investment Adviser Public Disclosure Scraper. These are distinct workflows; this Actor focuses on reproducible firm-list refreshes.