# SEC Form D Funding Rounds — Private Placements & Startup Raises (`nefes-tools/sec-form-d-funding`) Actor

New private funding rounds from official SEC Form D filings: company, industry, city and state, amount raised and offered, investors, Reg D exemption, first sale date and filing link. Filter by sector, state, amount and date. Funds excluded by default. No personal data.

- **URL**: https://apify.com/nefes-tools/sec-form-d-funding.md
- **Developed by:** [Erich Michal Sikora](https://apify.com/nefes-tools) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 funding rounds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SEC Form D Funding Rounds — Private Placements & Startup Raises

**Every US company that just raised private money, straight from the SEC.** When a startup or private company sells
shares, SAFEs or notes to investors, it files a **Form D** within 15 days. This Actor turns the new filings into a clean
table: who raised, how much, in which industry and city, from how many investors — daily, with a link to the filing.

| You set | You get |
|---|---|
| last *N* days, sectors (Technology, Health Care, Real Estate…), states, minimum amount | one row per funding round: company, sector, city/state, **amount raised**, round size, investors, exemption, first sale date, SEC link |

### Who uses it

- **B2B sales and agencies:** freshly funded companies are buying — software, hiring, office, legal, marketing.
  Get a daily list of new rounds in your target sector and state.
- **VCs, angels and analysts:** deal flow and market maps — who is raising, how much, in which niche.
- **Fintech, data and AI apps:** a structured feed of private-market activity from the official source.

### Example row

```json
{
  "type": "offering",
  "companyName": "Salty AI Inc.",
  "sector": "Technology",
  "industry": "Other Technology",
  "city": "PARK CITY",
  "state": "UT",
  "entityType": "Corporation",
  "yearOfIncorporation": 2021,
  "securitiesOffered": ["Equity"],
  "exemptions": ["Rule 506(b)"],
  "totalOfferingAmount": 4500000,
  "totalAmountSold": 4117983,
  "percentSold": 91.5,
  "investorsCount": 30,
  "minimumInvestment": 0,
  "dateOfFirstSale": "2025-02-26",
  "filingDate": "2026-09-22",
  "formUrl": "https://www.sec.gov/Archives/edgar/data/1911715/000191171526000003/xslFormDX01/primary_doc.xml"
}
```

All fields: `companyName`, `cik`, `entityType`, `jurisdictionOfIncorporation`, `yearOfIncorporation`, `incorporatedWithinFiveYears`,
`city`, `state`, `stateName`, `industry`, `sector`, `fundType`, `revenueRange`, `netAssetValueRange`, `securitiesOffered`,
`exemptions`, `isAmendment`, `dateOfFirstSale`, `yetToOccur`, `moreThanOneYear`, `isBusinessCombination`, `totalOfferingAmount`,
`offeringAmountIndefinite`, `totalAmountSold`, `totalRemaining`, `percentSold`, `minimumInvestment`, `investorsCount`,
`hasNonAccreditedInvestors`, `salesCommissions`, `findersFees`, `usesSalesAgents`, `relatedPersonsCount`, `form`, `filingDate`,
`accessionNumber`, `formUrl`, `filingUrl`.

### Why this one

- **Operating companies, not fund noise.** About half of all Form D filings are investment funds, SPVs and fund series.
  They are skipped by default (turn them on with one switch if you want them).
- **Official and complete.** Reads the SEC's own daily EDGAR index and the XML of every Form D — nothing is scraped
  from third-party sites, nothing is missed.
- **Filters that matter:** sector, state, minimum amount raised, minimum round size, name keywords, new rounds vs. amendments.
- **Schedule it.** Run it daily with *Days back = 1* and send new rounds to Google Sheets, Slack, HubSpot or your CRM
  via Apify integrations.

### Pricing

**Pay per funding round returned.** Filings that don't match your filters are free, and so are error rows.
Set a maximum cost per run and the Actor stops cleanly when it is reached.

A typical business day has 150–250 Form D filings, of which roughly half are operating companies.

### Input

| Field | Default | |
|---|---|---|
| `daysBack` | 7 | Filing dates to cover (business days only) |
| `sectors` | all operating companies | Technology, Health Care, Financial Services, Real Estate, Energy, Business Services, Manufacturing, Retailing, Restaurants, Travel, Agriculture, Other, Pooled Investment Fund |
| `states` | all | EDGAR 2-letter codes (CA, NY, TX…) |
| `minAmountSold` | — | USD already raised |
| `minOfferingAmount` | — | USD round size |
| `keywords` | — | Company name contains |
| `includePooledFunds` | false | Funds and SPVs |
| `includeAmendments` | false | D/A updates to earlier rounds |
| `maxResults` | 50 | Stop after this many rows |
| `dateFrom`, `dateTo` | — | Exact range, max. 366 days |

Narrow filters over long ranges read many filings to find matches, so such runs take longer — you still pay only for the rounds returned.

### Good to know

- **No personal data.** Form D lists executives, directors and promoters with their addresses, plus signatures.
  This Actor deliberately leaves all of that out, as well as the street address and phone number of the issuer.
  You get the company, its city and state, and the offering.
- Form D is filed within 15 days of the first sale, so it reports rounds that are already underway, not planned ones.
  `totalAmountSold` is what had been raised by the filing date; later amendments (D/A) update it.
- Amounts are as reported by the issuer; "Indefinite" round sizes are returned as `offeringAmountIndefinite: true`.
- The Actor follows the SEC's fair-access rules (identifies itself, stays under 10 requests per second). For large runs you can add
  your `contactEmail`, which is sent only to sec.gov.
- Not affiliated with the U.S. Securities and Exchange Commission. Not investment advice.

# Actor input Schema

## `daysBack` (type: `integer`):

Filings from the last N days (filing date, newest first). EDGAR publishes on business days. Ignored when "From date" is set.

## `sectors` (type: `array`):

Only these sectors. Empty = all operating companies. Pick "Pooled Investment Fund" to get funds and SPVs too.

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

2-letter codes of the issuer location, e.g. CA, NY, TX (EDGAR codes; foreign countries use codes like X0 for UK). Empty = all.

## `minAmountSold` (type: `integer`):

Only rounds where at least this much has been sold.

## `minOfferingAmount` (type: `integer`):

Only rounds with at least this total offering amount (indefinite amounts pass).

## `keywords` (type: `array`):

Optional. Keep only companies whose name contains one of these words (e.g. AI, bio, solar).

## `includePooledFunds` (type: `boolean`):

About half of all Form D filings are funds, SPVs and fund series. They are skipped by default so you get operating companies.

## `includeAmendments` (type: `boolean`):

Amendments update earlier rounds (e.g. more money raised). Off = only new rounds.

## `maxResults` (type: `integer`):

Stop after this many offerings.

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

Optional exact range start (YYYY-MM-DD). Max. range 366 days.

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

Optional range end (YYYY-MM-DD). Default today.

## `contactEmail` (type: `string`):

The SEC asks automated tools to identify themselves. For large runs add your e-mail; it is sent only to sec.gov in the User-Agent header.

## Actor input object example

```json
{
  "daysBack": 7,
  "includePooledFunds": false,
  "includeAmendments": false,
  "maxResults": 50
}
```

# Actor output Schema

## `offerings` (type: `string`):

Company, industry, location, amounts, investors, exemption and filing links. Error rows (type=error) are not charged.

# 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("nefes-tools/sec-form-d-funding").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("nefes-tools/sec-form-d-funding").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 nefes-tools/sec-form-d-funding --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nefes-tools/sec-form-d-funding"
        }
    }
}
```

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/iGcIFHjK8IdqGAaee/builds/7z2TUDcKr3leJbTOf/openapi.json
