SEC Form D Funded Companies + Officers
Pricing
from $3.00 / 1,000 filing scrapeds
SEC Form D Funded Companies + Officers
Every US company that just filed a Form D funding round with amount raised, industry, address and named officers/directors, fresh from SEC EDGAR. Filters out pooled funds and SPVs. Pay per filing.
Pricing
from $3.00 / 1,000 filing scrapeds
Rating
0.0
(0)
Developer
Swaraj Samant Singh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Every US company that just filed a Form D funding round, with amount raised and named officers, as JSON/CSV. Fresh from SEC EDGAR.
Form D is the notice a company must file with the SEC within 15 days of the first sale in a private (Reg D) round. It is the earliest public record of most seed to growth-stage rounds, often weeks before a press release. This actor lists new filings for a date range (or looks up specific companies), fetches each filing's structured XML from EDGAR, and returns one flat row per filing: issuer, address, industry, amount sold, investor count, exemption, and every executive officer, director and promoter named on the form. Pooled funds and SPVs, which are half of all Form Ds, are filtered out by default so you get operating companies.
Data source: sec.gov EDGAR full-text search index plus each filing's primary_doc.xml. Public, no login, no browser. New filings show up within minutes of acceptance.
What you get per filing
{"accessionNumber": "0002014393-26-000004","filedAt": "2026-08-14","formType": "D","isAmendment": false,"cik": "2014393","issuerName": "CodeRabbit Inc.","entityType": "Corporation","jurisdiction": "DELAWARE","yearOfIncorporation": 2023,"incorporatedWithinFiveYears": true,"street": "201 SPEAR STREET","city": "SAN FRANCISCO","state": "CA","stateDescription": "CALIFORNIA","zip": "94105","phone": "(413) 378-4002","industryGroup": "Other Technology","revenueRange": "Decline to Disclose","federalExemptions": ["06b"],"dateOfFirstSale": "2026-07-31","moreThanOneYear": false,"securityTypes": ["Equity"],"isBusinessCombination": false,"totalOfferingAmount": 142998877,"totalAmountSold": 142998760,"totalRemaining": 117,"hasNonAccreditedInvestors": false,"numInvestors": 36,"minimumInvestment": 0,"salesCommissions": 0,"findersFees": 0,"signerName": "Harjot Gill","signerTitle": "CEO","relatedPersons": [{ "firstName": "Harjot", "lastName": "Gill", "roles": ["Executive Officer", "Director"], "city": "SAN FRANCISCO", "state": "CA" },{ "firstName": "Guritfaq", "lastName": "Singh", "roles": ["Executive Officer", "Director"], "city": "SAN FRANCISCO", "state": "CA" },{ "firstName": "Alex", "lastName": "Berkenkamp", "roles": ["Executive Officer"], "city": "SAN FRANCISCO", "state": "CA" }],"filingUrl": "https://www.sec.gov/Archives/edgar/data/2014393/000201439326000004/0002014393-26-000004-index.htm","primaryDocUrl": "https://www.sec.gov/Archives/edgar/data/2014393/000201439326000004/primary_doc.xml"}
| Field | Always | Meaning |
|---|---|---|
accessionNumber | yes | EDGAR filing ID, unique per filing; rows are deduplicated on it |
filedAt | yes | Filing date (YYYY-MM-DD, SEC acceptance date) |
formType, isAmendment | yes | D = new notice, D/A = amendment. previousAccessionNumber is set on amendments |
cik, issuerName | yes | SEC Central Index Key and legal name of the issuer. previousNames when the issuer changed name |
entityType, jurisdiction, yearOfIncorporation, incorporatedWithinFiveYears | usually | Corporation / LLC / LP..., state or country of incorporation, year (issuers over five years old may report only incorporatedWithinFiveYears: false) |
street, city, state, stateDescription, zip, phone | usually | Issuer's principal address. state is a two-letter US state code, or one of the SEC's two-character codes for Canadian provinces and other countries (A1, A6, X0...) for foreign issuers |
industryGroup | yes | SEC's fixed list, e.g. Other Technology, Biotechnology, Manufacturing, Pooled Investment Fund |
investmentFundType | funds only | Hedge / private equity / venture capital / other fund |
revenueRange | yes | Issuer's self-reported revenue bucket, usually Decline to Disclose. Funds report their net asset value bucket here |
federalExemptions | yes | Rule codes as filed: 06b = 506(b), 06c = 506(c) (general solicitation allowed), 04 = 504, 3C/3C.1/3C.7 = Investment Company Act exclusions (funds) |
dateOfFirstSale | yes | First sale date, or yet to occur |
moreThanOneYear, securityTypes, isBusinessCombination | yes | Offering duration, security types sold (Equity, Debt, Option/Warrant, ...), whether it is a merger/acquisition deal |
totalOfferingAmount, totalAmountSold, totalRemaining | when numeric | USD. Omitted and isIndefinite: true set when the issuer files "Indefinite" (open-ended funds) |
hasNonAccreditedInvestors, numInvestors, minimumInvestment | yes | Investor count already in the round and minimum ticket |
salesCommissions, findersFees | yes | USD paid to brokers/finders (0 for most startup rounds) |
signerName, signerTitle | yes | Who signed the form, usually the CEO or CFO |
relatedPersons | with includeRelatedPersons | Every executive officer, director and promoter on the form: firstName, middleName, lastName, roles[], roleClarification, city, state. Funds list their GP/management company here with no first name |
filingUrl, primaryDocUrl | yes | The filing's EDGAR index page and the raw XML |
rawXml | with includeRawXml | The full primary_doc.xml |
Fields the filing does not contain are omitted rather than filled with nulls or guesses. Form D has no valuation, round name (seed/Series A), investor names or company website. See Limitations.
Input
{"mode": "new-filings","dateFrom": "2026-08-11","dateTo": "2026-08-15","includeAmendments": false,"excludePooledFunds": true,"minAmountSold": 1000000,"states": ["CA", "NY"],"industries": ["Technology", "Biotechnology"],"maxItems": 500,"includeRelatedPersons": true,"userAgentContact": "you@company.com"}
| Field | Default | Notes |
|---|---|---|
mode | new-filings | new-filings = everything filed in the date range, newest first. lookup = all Form D filings of the given ciks and/or accessionNumbers |
dateFrom, dateTo | last 7 days | YYYY-MM-DD, inclusive filing dates. In lookup mode leave empty for the issuer's full history |
ciks | [] | Issuer CIKs for lookup mode, e.g. 2014393 (leading zeros optional). Find a CIK on any EDGAR company page |
accessionNumbers | [] | Specific filings for lookup mode, e.g. 0002014393-26-000004 |
includeAmendments | false | Off returns only new notices, i.e. fresh rounds. On adds D/A amendments (annual refilings of open offerings, closes, corrections) |
excludePooledFunds | true | Drops funds and SPVs: industry Pooled Investment Fund, REITS & Finance, Commercial, Residential, Other Real Estate; any Investment Company Act 3(c) exclusion; fund interests as the security; investment fund type set; or an issuer name matching Fund / SPV / Feeder / Syndicate / "a Series of" / QOZF / Opportunity Zone / Capital Partners. Construction and operating real-estate companies with other industry codes are kept. Turn off to get everything |
minAmountSold | 0 | Keep rows with totalAmountSold >= minAmountSold. Filings that report 0 sold are dropped when this is above 0 |
states | [] | Issuer address state codes. Applied before the XML fetch, so it also saves requests |
industries | [] | Case-insensitive substring match on industryGroup. Technology matches Computers, Telecommunications and Other Technology. Full value list is in the input schema |
maxItems | 500 | Rows pushed after filters |
includeRelatedPersons | true | Officers / directors / promoters per row |
includeRawXml | false | Attach the filing XML (5-15 KB per row) |
userAgentContact | placeholder | The SEC requires automated clients to identify themselves with a contact address in the User-Agent. Put your own email here |
minDelayMs | 250 | Pause between requests to sec.gov. 250 ms = 4 requests/second, well inside the SEC's 10/s limit. Values below 100 are rejected |
proxyConfiguration | none | Not needed for EDGAR. Available if your Apify IP is already throttled |
In new-filings mode the actor issues one listing request per 100 filings plus one request per filing that survives the amendment and state pre-filters. 200 rows is roughly 300 requests, about 90 seconds at the default pace.
Pricing
Pay per event:
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
| Filing scraped | $0.003 per row |
1,000 filings = about $3.00 plus the start fee. Only rows that pass your filters are charged; funds you excluded and amendments you skipped cost nothing. Set "Maximum total charge" on the run to cap spend; the actor stops cleanly when it is reached and you keep everything already scraped.
Why this one
Compared with the other Form D actors on the store: every field of the structured XML is parsed (not just name, amount and a link), the officers and directors are on the row, funds and SPVs are filtered out by default so a "last 7 days" run is a list of operating companies rather than mostly Series-of-LLC SPVs (in a mid-August 2026 test week 90 of 140 new notices were funds or SPVs), and amendments are opt-in so a re-filed 2023 fund offering does not look like a new round. Rows are flat and CSV-friendly; nothing is invented.
Limitations
- Reg D only. Companies raising under other exemptions (Reg A, Reg CF crowdfunding, Reg S offshore-only) do not file Form D. Non-US companies appear only if they sell to US investors under Reg D.
- Up to 15 days behind the round. Form D is due 15 days after the first sale, and many companies file late or, for small rounds, never.
dateOfFirstSaletells you the real timing. Amendments are due annually for offerings still open after a year. - No valuation, no round name, no investor names. Form D reports amounts, investor counts and the people who run the company, not who invested or at what price.
totalOfferingAmountminustotalRemainingis what has been sold so far, not a post-money. - Amounts are self-reported. Some issuers file
Indefinite(open-ended funds) or0sold when the round has not closed; a few file placeholder phone numbers like(000) 000-0000. The actor passes through what was filed. - The fund/SPV filter is a heuristic. It catches the vast majority (industry code, 3(c) exclusion, fund security type, name patterns) but an SPV that files as "Other Technology" with a neutral name will slip through, and a genuine company called "X Syndicate Inc" would be dropped. Turn
excludePooledFundsoff and filter yourself if you need certainty. - Listing depth. EDGAR full-text search stops paging at 10,000 hits per query. Split a large date range into weeks if you need more than that.
- Rate limits. The SEC allows 10 requests/second per client and blocks for about 10 minutes beyond that. The actor paces at 4/s, backs off (5s, 15s, 45s, 135s) on 429/403 and always sends the declared User-Agent. Local runs and Apify runs without a proxy are fine.
FAQ
Is this real-time? New filings appear in EDGAR's search index within minutes of acceptance and the actor reads that index, so a run for dateTo = today includes today's filings. The 15-day lag is between the round and the filing, not between the filing and this actor.
How do I get only serious rounds? minAmountSold: 1000000 and excludePooledFunds: true (default). Add industries: ["Technology", "Biotechnology", "Pharmaceuticals"] for venture-style sectors.
Why does the same company appear several times? Each Form D is one offering. A company that sells several security classes or runs a parallel debt round files one Form D per offering, each with its own accession number.
Where are the amendments? Off by default. Set includeAmendments: true. isAmendment, formType and previousAccessionNumber let you tell them apart.
Can I track one company? mode: "lookup", ciks: ["2014393"] returns its full Form D history (CodeRabbit: 2024 $3.6M, 2025 $68.4M, 2026 $143M).
Does it use a browser? No. Plain HTTP against efts.sec.gov and www.sec.gov/Archives, which is why it runs on 256 MB.
Can I schedule it? Yes. A daily schedule with the defaults (last 7 days) gives a rolling feed; deduplicate on accessionNumber downstream.
Local development
npm install# put your input in storage/key_value_stores/default/INPUT.jsonapify run --purge # or: npm startnpm test # offline parser checks on saved primary_doc.xml fixtures + one live check (skips when offline / throttled)
To exercise pay-per-event locally: ACTOR_TEST_PAY_PER_EVENT=1 ACTOR_MAX_TOTAL_CHARGE_USD=4 npm start charges $1 per event and stops after the start event plus three filings.