OrbTop

SEC Form ADV Scraper - RIA Firm & Investment Advisor Data

BUSINESSLEAD GENERATIONOTHER

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

  1. Pick a query mode. Look up specific CRDs, search by firm name, sweep one or more US states, or run the full national sweep.
  2. The scraper pages through the IAPD search index and fetches each firm's detail record from the SEC's JSON API.
  3. 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