SEC Investment Adviser Scraper avatar

SEC Investment Adviser Scraper

Pricing

Pay per usage

Go to Apify Store
SEC Investment Adviser Scraper

SEC Investment Adviser Scraper

Downloads the SEC's monthly Form ADV bulk data for registered investment advisers and exempt reporting advisers - where most VC and PE funds file. Free, authoritative, no auth.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Kashif Ali

Kashif Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Investor lead lists — VC firms, PE firms, hedge funds — straight from the SEC's monthly Form ADV bulk data.

Every US investment adviser files Form ADV. Firms managing private funds below the registration threshold file as exempt reporting advisers (ERAs), which is where most venture capital and private equity firms sit. The SEC publishes both rosters as a monthly ZIP. This actor resolves the newest file, unzips it and emits clean records. No browser, no login, no paid database.

What you get

Filtering the exempt roster to firms running at least one VC fund returns 2,697 active firms in about three seconds — with phone numbers, websites, fund counts and reported assets.

FieldNotes
firmName, legalNamePrimary business name, falling back to legal name
crdNumber, secNumberRegulatory identifiers, 100% populated
adviserType, firmType, statuse.g. exempt, ERA, ERA - Active
address, city, state, country, postalCodeMain office
phoneMain office telephone, digits only
websiteFirm website
vcFunds, peFunds, hedgeFunds, realEstateFunds, otherFundsNumber of funds of each kind
privateFundCountTotal private funds
totalGrossAssetsGross assets across private funds, in whole dollars
latestFilingDateWhen the firm last filed
sourceFile, scrapedAtExact SEC ZIP and run timestamp

With includePeople on, every row also carries one named person:

FieldNotes
personNameDirect owner or executive officer, from Form ADV Schedule A
titleTheir role, e.g. MANAGING MEMBER; multiple roles joined with /
isControlPerson, ownershipCodeSchedule A control flag and ownership band (A-E)
peopleAsOfFilingThe Form ADV filing the person was read from
emailGuess, emailCandidates, emailPatternPattern guesses against the firm's own domain
emailVerifiedAlways false - see below

Measured on the VC-filtered exempt roster: firm name, CRD, fund counts and filing date 100%; phone 99.7%; reported assets 99.0%; website 89.2%.

Named people: 80% of VC firms, 3 per firm

The monthly roster carries firms only. People come from the SEC's complete Form ADV archive (702 MB), where Schedule A lists each firm's direct owners and executive officers. Measured on the VC-filtered exempt roster: 2,171 of 2,697 firms (80.5%) have named people, for 6,571 person rows — three per firm on average, with duplicates collapsed when the same person is listed under several roles.

The remaining 20% is the archive's cutoff, not a parsing gap: it covers filings through 2024-12-31, so a firm that first registered in 2025 or 2026 has no Schedule A rows yet. peopleOnly: true drops those firms.

The first run with includePeople downloads the archive and builds the index — about 12 minutes. The index is cached in a named key-value store, so every later run reuses it in seconds.

Emails are guesses, and say so

Form ADV carries no email column, and there is no free source of verified adviser emails. So the actor derives candidates from the firm's own website domain (hernan.kazah@kaszek.com, then hkazah@, hernan@, ...) and flags every one with emailVerified: false. 70.4% of person rows get a guess; the rest have no website on file or a name too short to split. Verifying them needs SMTP probing or a paid validation API — deliberately out of scope.

Location coverage is partial, by design

state is populated for 63% of firms. That is not a parsing gap: 497 of the blanks are non-US firms (Israel, United Kingdom, Cayman Islands, Singapore, China) which have no US state, and around 500 report no main-office location at all. A states filter therefore excludes every foreign firm — which is usually what you want, but worth knowing before you use it.

Input

FieldTypeDefaultDescription
adviserTypesarray["exempt"]exempt (~6,600 firms, where VC/PE file) or registered (~15,000)
fundTypesarray[]Keep firms running at least one vc, pe, hedge, realEstate or other fund
statesarray[]Two-letter main-office state codes
minGrossAssetsinteger0Drop firms below this gross private-fund asset figure
activeOnlybooleantrueKeep only active SEC registrations
includePeoplebooleanfalseAttach Schedule A owners and officers, one row per person
peopleOnlybooleanfalseDrop firms with no named people (needs includePeople)
maxResultsinteger50000Stop after this many rows
{
"adviserTypes": ["exempt"],
"fundTypes": ["vc"],
"states": ["CA", "NY", "MA"],
"minGrossAssets": 50000000
}

Running it

pip install -r requirements.txt
python src/main.py
python test_parse.py # discovery, amount parsing and record mapping
python test_people.py # Schedule A extraction and email inference
apify push
apify call datasiphon/sec-adviser-scraper --input-file=input.json

Three things that will bite you if you fork this

SEC fingerprints HTTP clients. A plain request gets 403 Forbidden from any IP, with or without a declared User-Agent, and a residential proxy alone is not enough — it is the TLS handshake that gives the client away. This actor uses impit, which impersonates Chrome down to that handshake, and routes through a residential proxy. Both halves are load-bearing on Apify: from a platform IP even impit gets a flat 403 on every request. Run the same code on a laptop and impit alone is enough, which is how you debug parsing bugs for free instead of $6 a run.

The complete archive names its columns by Form ADV item code. ERA_ADV_Base has no column called CRD: item 1E1 is the CRD number and 1D is the SEC file number (801-/802-). Matching on the word "CRD" silently found nothing, which produced an empty people index and a run that pushed zero rows. DateSubmitted also has to be parsed before it is compared — as strings, 11/13/2012 beats 3/01/2024 and every firm gets its oldest filing.

Amounts carry cents. Form ADV writes gross assets as 78,960,522.00. Stripping every non-digit turns that into 7,896,052,200 — a hundredfold inflation that makes the median VC firm look like an $11bn fund. to_number keeps the decimal point.

Licence

MIT — built for KeystoneRev Outbound OS.