# US Startup Funding Tracker (SEC Form D, EDGAR) (`kuroshio-data/sec-formd-funding-tracker`) Actor

Which US companies just raised money? Tracks SEC Form D exempt-offering filings from EDGAR: company, amount raised, investor count, HQ state, industry — as English structured JSON. Filter out investment funds to get real company leads. No API key, no personal data.

- **URL**: https://apify.com/kuroshio-data/sec-formd-funding-tracker.md
- **Developed by:** [Kuroshio Data](https://apify.com/kuroshio-data) (community)
- **Categories:** Business, News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## US Startup Funding Tracker (SEC Form D, EDGAR)

**Which US companies just raised money — and how much?**

Every time a US company raises capital in a private (exempt) offering, it must file a **Form D** with the SEC within 15 days of the first sale. That includes seed and venture rounds, real-estate syndications, and fund raises. These filings are public on **EDGAR**, but they arrive as raw XML with legal codes and no summary.

This actor turns them into a clean, machine-readable feed of **who raised how much, where they are, and what industry they're in** — as English structured JSON.

**No API key. No login. No scraping** — only the SEC's official, public-domain data endpoints.

**No personal data.** Form D also lists executives and directors by name and address. This actor deliberately **does not emit any of it** — only the company, the money, and the dates. Nothing to worry about on the GDPR side of your pipeline.

### Why people use this

A company that just closed a round has budget it did not have last month. That makes these filings a high-intent trigger for:

- **B2B sales** — freshly funded companies buying tools, services and infrastructure.
- **Recruiting** — companies that just raised are about to hire.
- **VC / competitive intel** — who is raising in your sector, at what size, and whether the round actually closed.
- **AI agents & newsletters** — a normalized funding stream you can pipe into an LLM.

### What you get (one record per filing)

```json
{
  "source": "SEC EDGAR",
  "formType": "D",
  "accessionNumber": "0002141915-26-000001",
  "filedDate": "2026-08-06",
  "companyName": "ADVENIR@LIGHTHOUSE POINT INVESTORS, LLC",
  "cik": "0002141915",
  "entityType": "Limited Liability Company",
  "jurisdictionOfIncorporation": "DELAWARE",
  "yearOfIncorporation": "2025",
  "hqCity": "AVENTURA",
  "hqState": "FL",
  "hqZip": "33160",
  "phone": "(305) 948-3535",
  "industryEn": "Residential",
  "revenueRange": "Decline to Disclose",
  "totalOfferingUsd": 30300000,
  "amountSoldUsd": 30300000,
  "remainingUsd": 0,
  "raiseBand": "25m_100m",
  "minimumInvestmentUsd": 100000,
  "investorCount": 169,
  "hasNonAccreditedInvestors": false,
  "salesCommissionsUsd": 0,
  "exemptionCodes": ["06b"],
  "exemptionsEn": ["Rule 506(b)"],
  "allowsGeneralSolicitation": false,
  "dateOfFirstSale": "2025-10-29",
  "daysFromFirstSaleToFiling": 281,
  "isNewFiling": true,
  "isFullySold": true,
  "usedPlacementAgent": false,
  "isPooledInvestmentFund": false,
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/..."
}
```

### The fields that do the work

Most of the value is in the derived flags, because the raw form is easy to misread:

- **`amountSoldUsd` vs `totalOfferingUsd`** — the number that matters is what was *sold*, not what was *offered*. Plenty of filings advertise a large target with a fraction of it actually raised, and those get quoted as if the round were closed.
- **`isFullySold`** — offering amount met and nothing remaining. This is a closed round, not an open one.
- **`isPooledInvestmentFund`** — Form D is used just as heavily by hedge funds, VC funds and real-estate funds as by operating companies. On a typical day **most filings are funds**. Set `excludePooledFunds` to drop them and keep real companies. This one flag is the difference between a usable lead list and noise.
- **`isNewFiling`** — false for amendments (Form D/A), which update an existing offering rather than announcing a new one. Filter these out to avoid counting the same round twice.
- **`allowsGeneralSolicitation`** — true under Rule 506(c), meaning the company is legally allowed to publicly advertise the raise. Useful signal if you care whether a round is quiet or public.
- **`raiseBand`** — bucketed size (`under_1m`, `1m_5m`, `5m_25m`, `25m_100m`, `over_100m`) for quick segmentation.

### Input

| Field | Default | Notes |
|---|---|---|
| `dateFrom` | 6 days ago | First EDGAR filing date, `YYYY-MM-DD`. |
| `dateTo` | today | Last filing date. Days are scanned **newest first**, so a capped run returns the freshest raises. |
| `minAmountSoldUsd` | — | Keep only raises at or above this, e.g. `5000000` for $5M+. |
| `maxAmountSoldUsd` | — | Keep only raises at or below this — useful for seed-stage targeting. |
| `states` | — | Issuer HQ state/country codes, e.g. `["CA","NY"]`. Territory-based prospecting. |
| `industries` | — | Industry keyword match, e.g. `["technology"]`, `["health"]`. |
| `excludePooledFunds` | `false` | **Turn this on for sales/recruiting leads** — keeps operating companies only. |
| `newFilingsOnly` | `false` | Skip amendments (D/A). |
| `formTypes` | `["D"]` | `D` = new notice, `D/A` = amendment. |
| `maxFilings` | `25` | Cap for a cheap sample (`0` = no limit). |
| `delayMs` | `150` | Politeness delay. SEC allows 10 req/s; don't go below 120. |
| `secUserAgent` | actor default | SEC asks automated clients to identify themselves. |

All fields are optional — **a run with no input returns the latest 25 Form D filings**.

### Typical uses

- Weekly lead list: `excludePooledFunds: true`, `newFilingsOnly: true`, `minAmountSoldUsd: 2000000` — real companies that just closed a meaningful round.
- Territory prospecting: add `states: ["CA"]` to work a single market.
- Sector watch: `industries: ["technology"]` or `["biotechnology"]`.
- Full history: `maxFilings: 0` over a date range, then aggregate by state or industry.

### Volume

Roughly **180–260 Form D filings per business day** (measured across early August 2026). A large majority are pooled investment funds, so an operating-companies-only run is considerably smaller — which is usually what you want.

### Notes & limitations

- Data source: SEC EDGAR daily form indexes and Form D `primary_doc.xml` — official, public-domain US government data. The actor respects the SEC fair-access policy (identifying User-Agent, well under 10 requests/second).
- A company can file **several Form Ds on the same day** for separate offerings; these are genuinely distinct filings and all are returned.
- Form D reports the amount raised, **not a valuation**. There is no valuation field in the form, so any valuation figure you see quoted elsewhere came from another source.
- Filers have 15 days from first sale to file, so `dateOfFirstSale` can be well before `filedDate`. `daysFromFirstSaleToFiling` makes the lag explicit.
- Weekends and market holidays have no daily index; the actor skips them automatically.

### FAQ

**How do I get a list of companies that just raised funding?**
Run this actor with `excludePooledFunds: true` and `newFilingsOnly: true`. It returns each company, the amount raised, HQ state and industry, straight from SEC filings. No API key needed.

**What is a Form D?**
A notice of an exempt securities offering. US companies raising private capital under Regulation D must file one with the SEC within 15 days of the first sale, which is why it works as a near-real-time funding feed.

**Why are so many results investment funds?**
Because funds raise capital the same way operating companies do, and they file far more often. Use `excludePooledFunds` to remove them.

**Does this include investor or founder names?**
No. Form D does list related persons, but this actor intentionally omits all personal data and returns company-level information only.

**How fresh is it?**
Filings appear in EDGAR's daily index within minutes of acceptance. Schedule this actor daily on Apify for a continuous funding feed.

### Run locally

```bash
npm install
node src/main.js
```

Local input can be placed in `storage/key_value_stores/default/INPUT.json`.

# Actor input Schema

## `dateFrom` (type: `string`):

First EDGAR filing date to scan (YYYY-MM-DD). Defaults to 6 days before the end date.

## `dateTo` (type: `string`):

Last filing date (YYYY-MM-DD). Defaults to today. Days are scanned newest first, so a capped run returns the freshest raises.

## `minAmountSoldUsd` (type: `integer`):

Keep only filings where the amount actually sold is at least this. Use it to skip tiny raises, e.g. 5000000 for $5M+.

## `maxAmountSoldUsd` (type: `integer`):

Keep only filings at or below this amount. Useful for targeting seed-stage companies.

## `states` (type: `array`):

Keep only issuers headquartered in these state or country codes, e.g. CA, NY, TX. Empty = everywhere.

## `industries` (type: `array`):

Keep only filings whose industry contains one of these keywords (case-insensitive), e.g. technology, health, real estate.

## `excludePooledFunds` (type: `boolean`):

Form D is also used by hedge funds, VC funds and real-estate funds raising capital. Turn this on to keep only operating companies — usually what you want for sales or recruiting leads.

## `newFilingsOnly` (type: `boolean`):

Skip amendments (Form D/A), which update an existing offering rather than announcing a new one.

## `formTypes` (type: `array`):

Which forms to scan. D = new notice of exempt offering, D/A = amendment.

## `maxFilings` (type: `integer`):

Cap the run for a quick, cheap sample. 0 = no limit. A business day has roughly 180-260 Form D filings.

## `delayMs` (type: `integer`):

Politeness delay. SEC allows up to 10 requests/second; do not go below 120.

## `secUserAgent` (type: `string`):

SEC asks automated clients to identify themselves. You may put "Your Name your@email.com" here.

## Actor input object example

```json
{
  "dateFrom": "2026-08-01",
  "dateTo": "2026-08-06",
  "minAmountSoldUsd": 5000000,
  "states": [
    "CA",
    "NY"
  ],
  "industries": [
    "technology"
  ],
  "excludePooledFunds": false,
  "newFilingsOnly": false,
  "formTypes": [
    "D",
    "D/A"
  ],
  "maxFilings": 25,
  "delayMs": 150
}
```

# Actor output Schema

## `filings` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("kuroshio-data/sec-formd-funding-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("kuroshio-data/sec-formd-funding-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call kuroshio-data/sec-formd-funding-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kuroshio-data/sec-formd-funding-tracker"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/R6FJYJ82jV19HRNaR/builds/SNz7DVkPSjKZegEoK/openapi.json
