SEC Form ADV Scraper - RIA Firm & Investment Advisor Data
Pricing
Pay per event
SEC Form ADV Scraper - RIA Firm & Investment Advisor Data
Extract SEC-registered RIA firm records from IAPD by CRD, firm name, state, or full sweep. Includes identity, SEC file number, registrations, notice filings, brochure URLs, Form CRS URL, and office address.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
SEC Form ADV IAPD Scraper — RIA Firm Directory
Extract Registered Investment Adviser (RIA) firm records from the SEC's Investment Adviser Public Disclosure database. Returns firm identity, SEC file numbers, registration jurisdictions, notice filings, Form ADV Part 2A brochure URLs, Form CRS URLs, and main office address for ~17K SEC-registered RIAs plus tens of thousands of state-registered IAs.
SEC Form ADV IAPD Scraper Features
- Four query modes: by CRD, by firm name, by state, or a full US sweep
- Reads SEC's official IAPD JSON API directly — no HTML parsing, no stale selectors
- Returns structured firm identity plus a link to each firm's actual Form ADV Part 2A PDF
- Formats registrations and notice filings into readable jurisdiction status lines
- Skips inactive firms by default and honors a polite rate limit so nothing gets flagged
- No proxies, no auth, no browser — just JSON over HTTPS
- Pay-per-event pricing: $0.001 per firm record
Who Uses SEC Form ADV Data?
- M&A advisors — build lists of acquisition targets by state, registration status, or firm size proxy
- Custodians and tech vendors — prospect RIAs with clean, structured contact data instead of PDFs
- Compliance teams — monitor new registrations and notice filings across jurisdictions
- Financial researchers — pull bulk RIA registration data without assembling it from the public site by hand
- Lead generation — feed firm names, addresses, and CRD numbers into a CRM as a cold outreach list
How SEC Form ADV IAPD Scraper Works
- Pick a query mode. Look up specific CRDs, search by firm name, sweep one or more US states, or run the full national sweep.
- The scraper pages through the IAPD search index and fetches each firm's detail record from the SEC's JSON API.
- Each record is assembled into a flat row — firm identity, registration flags, jurisdiction status lines, brochure and CRS URLs, office address — and written to the dataset.
Input
Sweep a single state
{"mode": "by_state","states": ["CA"],"maxItems": 500,"includeInactive": false}
Look up specific firms by CRD
{"mode": "by_crd","crdNumbers": ["106389", "13938", "323342"],"maxItems": 10}
Search by firm name
{"mode": "by_name","firmNames": ["Fidelity", "Vanguard Personal Advisor"],"maxItems": 10}
Full US sweep (all 50 states + DC)
{"mode": "full_sweep","maxItems": 5000}
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
| mode | string | by_state | Query mode: by_crd, by_name, by_state, or full_sweep |
| crdNumbers | string[] | [] | List of CRD numbers to look up directly. Required for by_crd mode. |
| firmNames | string[] | [] | List of firm-name search terms. Required for by_name mode. First match per term is returned. |
| states | string[] | [] | Two-letter US state codes (CA, NY, TX). Used with by_state. Defaults to ["CA"] if left empty in that mode. |
| includeInactive | boolean | false | Include firms whose IA registration is terminated or withdrawn. Default is active firms only. |
| maxItems | integer | 100 | Max firm records to return. Keep low for quick runs, raise for bulk sweeps. |
SEC Form ADV IAPD Scraper Output Fields
Example firm record
{"crd_number": "154406","firm_name": "AG ASSET ADVISORY, LLC","firm_other_names": ["AG ASSET ADVISORY, LLC"],"sec_file_number": "80760","sec_file_number_type": "801","ia_scope": "ACTIVE","is_ia_firm": true,"is_sec_registered": true,"is_state_registered": false,"is_era_registered": false,"has_pdf": true,"has_ia_disclosure_flag": false,"adv_filing_date": "03/05/2026","main_office_street": "1901 AVENUE OF THE STARS, SUITE 200","main_office_city": "LOS ANGELES","main_office_state": "CA","main_office_zip": "90067","main_office_country": "United States","registered_jurisdictions": ["SEC: Approved (effective 2015-01-02)","California: Terminated (effective 2015-02-06)","Texas: Terminated (effective 2015-01-07)"],"notice_filing_jurisdictions": ["California: Notice Filed (effective 2015-01-02)","New York: Notice Filed (effective 2016-03-31)","Texas: Notice Filed (effective 2015-01-06)"],"registered_jurisdiction_count": 3,"notice_filing_count": 3,"brochure_count": 1,"form_adv_part2_url": "https://files.adviserinfo.sec.gov/IAPD/Content/Common/crd_iapd_Brochure.aspx?BRCHR_VRSN_ID=1015166","form_crs_url": "https://reports.adviserinfo.sec.gov/crs/crs_154406.pdf","iapd_profile_url": "https://adviserinfo.sec.gov/firm/summary/154406"}
| Field | Type | Description |
|---|---|---|
| crd_number | string | Central Registration Depository number — the unique firm ID |
| firm_name | string | Primary firm name as registered with the SEC |
| firm_other_names | string[] | Alternate, DBA, and legacy firm names |
| sec_file_number | string | SEC file number without the prefix |
| sec_file_number_type | string | File prefix — 801 is SEC-registered IA, 802 is SEC Exempt Reporting Adviser |
| ia_scope | string | ACTIVE or INACTIVE |
| is_ia_firm | boolean | Whether the firm is flagged as an Investment Adviser |
| is_sec_registered | boolean | Registered directly with the SEC as an IA |
| is_state_registered | boolean | Registered with one or more state securities regulators as an IA |
| is_era_registered | boolean | Filed as an Exempt Reporting Adviser (state or SEC) |
| has_pdf | boolean | Whether a Form ADV PDF is available on file |
| has_ia_disclosure_flag | boolean | Whether the firm has disclosure events on its IA record |
| adv_filing_date | string | Most recent Form ADV filing date (MM/DD/YYYY) |
| main_office_street | string | Main office street address (street1 + street2 combined) |
| main_office_city | string | Main office city |
| main_office_state | string | Main office state or region code |
| main_office_zip | string | Main office postal code |
| main_office_country | string | Main office country |
| registered_jurisdictions | string[] | One entry per jurisdiction (SEC or state) formatted as Jurisdiction: Status (effective YYYY-MM-DD) |
| notice_filing_jurisdictions | string[] | One entry per state notice filing, same format |
| registered_jurisdiction_count | integer | Count of jurisdictions on the registration record |
| notice_filing_count | integer | Count of notice-filing jurisdictions |
| brochure_count | integer | Count of Form ADV Part 2 brochures on file |
| form_adv_part2_url | string | URL to the firm's most recent Form ADV Part 2A brochure (when available) |
| form_crs_url | string | URL to the firm's Form CRS Customer Relationship Summary PDF (when the firm filed one) |
| iapd_profile_url | string | URL to the firm's public IAPD profile page |
FAQ
How do I scrape SEC IAPD data?
SEC Form ADV IAPD Scraper pulls directly from the SEC's public IAPD JSON API. Pick a mode, provide CRDs, firm names, or state codes, and the scraper returns one row per firm. No scraping of the HTML site, no browser automation.
How much does this actor cost to run?
About $0.001 per firm record plus the actor start fee. A 100-firm run costs roughly $0.20. A full state sweep of 3,000 California RIAs is around $3. A full national sweep of ~17K SEC-registered RIAs is roughly $17.
Do I need proxies to run this?
No. The SEC IAPD JSON API is public, unauthenticated, and does not rate-limit aggressively. The scraper ships with proxies disabled by default and a self-imposed ~7 requests per second pace, well under SEC's published 10/sec guideline.
What data is and isn't included from Form ADV?
The scraper returns everything the IAPD JSON API exposes — identity, registrations, notice filings, brochure and CRS URLs, and address. Form ADV Part 1 fields like AUM, client counts, fee structure, custodians, and disciplinary history live inside the Form ADV PDF and the SEC's bulk compilation zip files, which are a separate pipeline. We link out to each firm's Part 2A brochure PDF so you can download and parse those yourself if needed.
Can I filter by state?
Yes. Pass mode: "by_state" with a states array of two-letter codes. You can pass one state or many. Each state gets its own paginated sweep, so ["CA", "NY", "TX"] is three sweeps stitched together under a single maxItems cap.
Why does full_sweep take so long?
Full sweep iterates all 50 states plus DC, paginating each. California alone has over 3,000 active RIAs. At a polite rate limit with one search call plus one detail call per firm, the full national sweep is an hour-plus crawl. For bulk pulls, set a generous maxItems and a long timeout.
Need More Features?
Need AUM and client-count fields parsed from the Form ADV PDF, a companion IAR (individual adviser) crawler, or custom filters? File an issue or get in touch.
Why Use SEC Form ADV IAPD Scraper?
- Priced per record — about $0.001 per firm, which beats paying four figures for a commercial RIA database that ships the same public data
- Structured output — clean JSON with consistent field names and formatted jurisdiction status lines, so you skip the parsing step that usually eats half a day
- Official data source — pulls from the SEC's own JSON API, so the data is exactly what the regulator publishes, not a third-party scrape of a scrape