When a startup raises a round, its press release is optional. Its SEC filing usually is not. A US company that sells securities under Regulation D (most seed, Series A/B, SAFE and convertible-note rounds) has to file a Form D with the SEC within 15 days of the first sale. Those filings are public on EDGAR, the same day they are disseminated.
That makes Form D one of the cheapest "who just got budget" signals available for B2B sales, recruiting, and deal-flow research. The catch is that EDGAR gives you a daily index and an XML file per filing, mixed in with funds, SPVs and real-estate vehicles.
This post shows how to get a clean, filtered list with an Apify Actor I maintain, SEC Form D Funding Tracker (disclosure: I built it). All output below is from real runs on 2026-10-31 (JST), covering filings from 2026-10-28 to 2026-10-30.
Step 1: free sample
Switch on Free sample mode ("sampleMode": true). It returns 5 filings from operating companies in the last 3 days, ignores your filters, and is not charged. One row, trimmed:
{"company_name": "Faex Technologies Inc.", "form_type": "D", "filed_date": "2026-10-29",
"date_of_first_sale": "2026-10-14", "total_amount_sold_usd": 2500000.0,
"total_offering_amount_usd": 4500000.0, "stage_hint": "seed ($1-5M)",
"securities_offered": ["equity", "option to acquire"], "investors_count": 2,
"industry_group": "Other", "issuer_city": "LAFAYETTE", "issuer_state": "CO",
"year_of_inc": 2024, "related_persons_count": 3, "category": "operating_company",
"filing_url": "https://www.sec.gov/Archives/edgar/data/2148280/000214828026000003/0002148280-26-000003-index.htm"}
Form D lists executives and directors by name and address. The Actor drops those and keeps only counts (related_persons_count, related_person_roles), so the output is company-level data. stage_hint is an amount-based guess, not an SEC field.
Step 2: a filtered, scored run
Tech and health companies that raised at least $500k in the last 3 days, with scoring and change tracking on:
{
"daysBack": 3,
"categories": ["operating_company"],
"industries": ["Other Technology", "Computers", "Biotechnology", "Other Health Care"],
"minAmountSold": 500000,
"maxResults": 5,
"signalScoring": true,
"changeTracking": true,
"stateKey": "devto-demo",
"requestsPerSecond": 2
}
The run summary (RUN_SUMMARY in the key-value store):
{"days_requested": 3, "days_with_index": 2, "index_rows": 315, "after_prefilter": 167,
"xml_fetched": 80, "xml_failed": 0, "matched": 5, "skipped_by_max_results": 87,
"is_baseline_run": true, "new_issuer_rows": 5, "pushed": 5}
Two business days of index, 315 Form D rows, 167 left after the cheap pre-filter, 80 filings checked in full, 5 returned because I set maxResults: 5. skipped_by_max_results: 87 is the number of candidate filings the run skipped once the output was full, so they were not checked against the filters. With change tracking on, those 87 are still saved as seen and will not show up later, so for a real baseline raise maxResults on the first run.
The top two rows by score:
{"company_name": "Stardust Semiconductors Inc.", "filed_date": "2026-10-29",
"date_of_first_sale": "2026-10-16", "days_first_sale_to_filing": 13,
"total_amount_sold_usd": 2700000.0, "stage_hint": "seed ($1-5M)", "investors_count": 2,
"industry_group": "Other Technology", "year_of_inc": 2026,
"change_type": "new", "is_first_edgar_filing": true,
"signal_score": 80, "signal_tier": "hot",
"score_reasons": [
"+20 first filing: this is the issuer's first EDGAR filing (new to SEC filings)",
"+17 amount: $2,700,000 sold so far (log scale: $100k = 0, $100M+ = 35)",
"+15 young company: incorporated in 2026",
"+15 industry: Other Technology (technology)",
"+10 freshness: filed 13 days after the first sale",
"+3 traction: 100% of the offering sold, 2 investors"]}
{"company_name": "Swep Bio, Inc.", "issuer_city": "SCARSDALE", "issuer_state": "NY",
"filed_date": "2026-10-29", "days_first_sale_to_filing": 1,
"total_amount_sold_usd": 2499989.0, "industry_group": "Biotechnology", "year_of_inc": 2026,
"change_type": "new", "is_first_edgar_filing": true, "signal_score": 75, "signal_tier": "hot"}
And one that ranked lower, with the reason visible:
{"company_name": "Bluesonde Technologies, Inc.", "total_amount_sold_usd": 1000000.0,
"date_of_first_sale": "2025-11-11", "days_first_sale_to_filing": 352,
"signal_score": 68, "signal_tier": "warm",
"score_reasons": ["...", "+1 freshness: filed 352 days after the first sale"]}
The score adds six capped parts: amount raised (35, log scale), first EDGAR filing (20), incorporated within 5 years (15), industry (15), days from first sale to filing (10), and round progress / investor count (5). It helps you decide what to look at first. It does not predict anything.
Step 3: schedule it
Keep the same stateKey and schedule the Actor daily. Later runs only push filings you haven't received:
-
change_type: "new": an issuer you've never seen under this key -
change_type: "changed": a new Form D or a D/A amendment from an issuer you already have, withprevious_amount_sold_usdandamount_sold_delta_usd(how much more they raised since the filing you saw)
Form D has no "closed" event, so there are no closed rows.
What to do with the list
- B2B sales: a company that just closed a round has new budget and usually a hiring plan. Filter by industry, state and amount to match your ICP.
- Recruiting / staffing BD: freshly funded startups hire next. Pair it with a job-board monitor to see who raised and opened roles.
- VC / analysts: spot rounds that were never announced, with security type (equity, SAFE, debt) and investor count.
Limits worth knowing: only Reg D offerings that actually file a Form D appear; there are no investor names or valuations (Form D doesn't have them); industry_group is the issuer's own choice and many pick "Other"; EDGAR publishes the daily index on business-day evenings (US Eastern).
Data source and pricing
The Actor reads only SEC's public /Archives/ paths (the daily form index and each filing's primary_doc.xml), sends a declared User-Agent with a contact email, and stays under SEC's fair-access rate limit (5 requests/second by default, I used 2 here).
Pricing is pay per event: $0.008 per filing returned ($8 per 1,000). No start fee. Sample mode, filtered-out filings and errors are free, and change tracking never charges twice for the same filing. The scored run above would have cost 5 × $0.008 = $0.04.
Try it on the Apify Store: SEC Form D Funding Tracker. Source: paopao-studio-ai/sec-form-d-funding-signals.
Top comments (0)