# SEC Form D Scraper: Startup Funding Leads & Alerts (`studded_columbine/sec-form-d-startup-funding-leads`) Actor

New private funding rounds from official SEC EDGAR Form D filings: company, address, phone, industry, amount raised and offered, investor count, executives and directors. Filter by date, state, industry, amount. Daily new-raise alerts. No API key. CSV, Excel, JSON.

- **URL**: https://apify.com/studded_columbine/sec-form-d-startup-funding-leads.md
- **Developed by:** [Tenderly Data](https://apify.com/studded_columbine) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 form d filings

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

### What does SEC Form D Startup Funding Leads do?

**SEC Form D Startup Funding Leads** turns **official SEC EDGAR Form D filings** into a clean list of **companies that just raised private money**. Every U.S. startup or private company that sells shares under Regulation D (Rule 506(b), 506(c), 504) must file a Form D within 15 days of the first sale. That makes Form D the earliest public signal of a **new funding round**, often before any press release.

Filter by **filing date, state, industry, offering size, amount already raised, company type and age**, and get one row per filing with the **company name, address, phone, industry, amount raised and offered, number of investors, executives and directors (as filed), brokers** and a link to the filing on sec.gov. Turn on *Only new* and schedule it for **daily new-funding alerts**.

- Uses only **official, free SEC EDGAR sources** (EDGAR full-text search, the EDGAR daily index and each filing's Form D XML). No scraping of third-party sites, no API key, no SEC account.
- **Investment funds and SPVs are excluded by default** (they are most Form D filings), so you get operating companies. Switch it off to track VC, PE and hedge fund raises.
- **Pay per filing:** no subscription, you only pay for filings returned.
- Export to **CSV, Excel, JSON, XML or HTML**, or send to Google Sheets, HubSpot, Slack, email, Zapier or Make with Apify integrations and the API.

### Who is this Form D scraper for?

- **B2B sales and agencies** selling to freshly funded startups: SaaS, recruiting, legal, accounting, office space, insurance, payroll, marketing. A company that just raised $2M is about to spend it.
- **Investors, VCs and angels** tracking who is raising, how much, in which sector and state.
- **Wealth managers and private bankers** looking for founders with a new liquidity event.
- **Researchers and journalists** analysing private capital formation by industry or region.

### How to get new startup funding leads from SEC Form D

1. Click **Try for free**. The form is prefilled with filings from the **last 7 days** in **Technology, Biotech and Computers**, funds excluded, 25 results.
2. Pick **Industry groups** (e.g. *Other Technology* for software/AI, *Biotechnology*, *Other Health Care*, *Business Services*) and optionally **States** (`CA`, `NY`, `TX`…).
3. Optionally set a **Minimum offering amount** or **Minimum amount already sold**, limit to **Corporations**, or tick **Only companies incorporated in the last 5 years**.
4. Click **Start**. Results appear in the **Funding rounds** view; switch to **Contacts & people** (phone, address, executives) or **Full details**.
5. **For daily funding alerts:** turn on *Only filings not returned before*, set *Filed in the last N days* to `3`, give it a *State key* (e.g. `ca-saas-raises`) and schedule the Actor daily. Each run returns only filings you haven't received yet.

### Input examples

California and New York tech startups that raised at least $1M in the last 30 days:

```json
{
    "filedWithinDays": 30,
    "industryGroups": ["Other Technology", "Computers"],
    "states": ["CA", "NY"],
    "minAmountSold": 1000000,
    "issuerTypes": ["Corporation"],
    "maxResults": 200
}
```

Daily alert for new biotech and pharma raises (new filings only, no amendments):

```json
{
    "filedWithinDays": 3,
    "industryGroups": ["Biotechnology", "Pharmaceuticals", "Other Health Care"],
    "amendments": "exclude",
    "onlyNew": true,
    "stateKey": "biotech-raises",
    "maxResults": 0
}
```

New venture capital funds raising money:

```json
{
    "filedWithinDays": 14,
    "industryGroups": ["Pooled Investment Fund"],
    "issuerNameIncludes": "Ventures",
    "maxResults": 100
}
```

### What data do you get?

| Field | Example |
|---|---|
| `issuerName`, `cik`, `entityType`, `incorporated`, `jurisdictionOfIncorporation` | `Localposh.com, Inc.`, `0002159466`, `Corporation`, `Over five years ago`, `DELAWARE` |
| `street1`, `city`, `state`, `zip`, `phone` | business address and phone **as filed** |
| `industryGroup`, `industrySector`, `revenueRange` | `Other Technology`, `Technology`, `$1,000,001 - $5,000,000` |
| `totalOfferingAmount`, `totalAmountSold`, `totalRemaining`, `minimumInvestment` | `1500000`, `775000`, `725000`, `5000` (USD; offering is `null` when filed as *Indefinite*) |
| `totalInvestors`, `nonAccreditedInvestors` | `8`, `null` |
| `dateOfFirstSale`, `securityTypes`, `exemptions` | `2026-10-06`, `["Option/warrant/right", …, "Other: Simple Agreement for Future Equity (SAFE)"]`, `["Rule 506(b)"]` |
| `relatedPersons`, `relatedPersonsText` | executive officers, directors and promoters: name, role, city, state |
| `salesCompensationRecipients` | brokers / placement agents and CRD numbers |
| `formType`, `isAmendment`, `previousAccessionNumber`, `fileDate`, `accessionNumber` | `D`, `false`, `null`, `2026-10-20` |
| `filingUrl`, `formUrl` | EDGAR filing index and the human-readable Form D on sec.gov |

The run summary (`OUTPUT` in the key-value store) shows filings found in EDGAR per day, how many were checked and matched, already-seen filings skipped and SEC request stats.

### How much does it cost?

Pay per event: a small fee per filing returned plus a small fee per run (see the **Pricing** tab). A daily alert that finds 10 new filings costs a few cents. Set **Max cost per run** in the run options to cap spending; the Actor stops cleanly at that limit and you are never charged for filings it didn't return.

### Tips

- **Amounts are as filed.** `totalAmountSold` is what the company had raised when it filed; amendments (Form D/A) often report higher totals later. Use *Amendments: Only* to track follow-on updates.
- Most companies choose **"Decline to Disclose"** for revenue, and many funds file the offering amount as **"Indefinite"**.
- Startups usually file under **Other Technology**, **Biotechnology**, **Other Health Care**, **Business Services** or **Computers**. Real-estate syndications file under **Commercial**, **Residential** or **Other Real Estate**.
- **State** is the issuer's business address on EDGAR. EDGAR country codes also work (`A6` = Canada, `X0` = United Kingdom).
- Narrow filters over long date ranges scan more filings. The Actor reads about 5 filings per second to respect SEC limits; raise *Max filings to scan* for big historical pulls.

### Data source and limitations

All data comes from the U.S. Securities and Exchange Commission's EDGAR system: [EDGAR full-text search](https://efts.sec.gov/LATEST/search-index), the [EDGAR daily index](https://www.sec.gov/Archives/edgar/daily-index/) and each filing's Form D XML document. EDGAR filings are public records. The Actor follows the SEC's [fair access rules](https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data) (declared User-Agent, well under 10 requests per second). It reproduces what the filer submitted and does not verify it. Personal street addresses of related persons are not included. This Actor is not affiliated with or endorsed by the SEC. If you contact people from this data, follow applicable laws such as CAN-SPAM and the TCPA.

### FAQ

#### Do I need an SEC or EDGAR account or API key?

No. EDGAR is free and public.

#### How fresh is the data?

Filings appear in EDGAR full-text search within minutes of acceptance. Run the Actor daily (or several times a day) with *Only new* for alerts.

#### What is a Form D?

A short notice companies file with the SEC when they sell securities without registering them under Regulation D or Section 4(a)(5). It lists the issuer, its executives and directors, the industry, the offering size, how much has been sold and to how many investors.

#### Can I get historical Form D filings?

Yes. Set *Filed from* / *Filed to* to any range since 2009 (when Form D became electronic).

#### Can I use it from Python, JavaScript or an AI agent?

Yes. Use the Apify API or client libraries (see the **API** tab), or the Apify MCP server so AI assistants can call it as a tool.

### More from Tenderly Data

- [SAM.gov Scraper](https://apify.com/studded_columbine/samgov-contract-opportunities): U.S. federal contract opportunities and daily bid alerts.
- [UK Companies House Scraper](https://apify.com/studded_columbine/uk-companies-house-scraper): new UK companies, directors and owners.

# Actor input Schema

## `filedWithinDays` (type: `integer`):

1 = today only (US Eastern date). Overrides 'Filed from'. Default when no dates are set: last 7 days. EDGAR receives about 200–450 Form D filings per business day.

## `filedFrom` (type: `string`):

YYYY-MM-DD (EDGAR filing date).

## `filedTo` (type: `string`):

YYYY-MM-DD. Default: today.

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

Most Form D filings are VC/PE/hedge funds and single-deal SPVs (industry group 'Pooled Investment Fund'). On by default so you get operating companies raising money. Turned off automatically if you select 'Pooled Investment Fund' below.

## `industryGroups` (type: `array`):

Form D Item 4 industry group, exactly as filed. Leave empty for all. Startups usually file as 'Other Technology', 'Biotechnology', 'Other Health Care' or 'Business Services'.

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

2-letter state codes of the issuer's business address (e.g. CA, NY, TX). EDGAR country codes also work (A6 = Canada, X0 = United Kingdom). Leave empty for all.

## `issuerTypes` (type: `array`):

Legal form of the issuer. Leave empty for all.

## `amendments` (type: `string`):

'Exclude' = new offerings only (form D). 'Include' = new filings and amendments. 'Only amendments' = updates to earlier filings (often new amounts sold).

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

Total offering amount as filed. Filings with an 'Indefinite' amount are excluded when a min or max is set (unless you tick the option below).

## `maxOfferingAmount` (type: `integer`):

Total offering amount as filed.

## `includeIndefiniteAmounts` (type: `boolean`):

With a min/max amount set, also keep filings whose offering amount is 'Indefinite'.

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

Only filings that report at least this much already raised.

## `onlyIncorporatedWithinFiveYears` (type: `boolean`):

Young companies only, as stated in the filing (Item 2).

## `issuerNameIncludes` (type: `string`):

Case-insensitive, e.g. "AI", "Therapeutics", "Labs".

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

Maximum filings to return. 0 = no limit.

## `sortBy` (type: `string`):

Newest filing dates first (best with a max-filings limit) or oldest first.

## `onlyNew` (type: `boolean`):

Remembers which filings this saved search already returned (per 'State key') and returns only new ones. Schedule it daily with 'Filed in the last N days' = 3 for funding alerts.

## `firstRunBehavior` (type: `string`):

'Return all' delivers current matches on the first run; 'Baseline only' silently records them (no charge per filing) so later runs return only new filings.

## `stateKey` (type: `string`):

Name for this alert's memory. Defaults to a hash of the filters. Use different keys for different alerts.

## `maxFilingsToScan` (type: `integer`):

Safety cap on how many Form D documents are downloaded and checked per run (SEC allows a limited request rate; this Actor reads about 5 per second). Narrow filters such as one industry over a long date range may need more.

## Actor input object example

```json
{
  "filedWithinDays": 7,
  "excludePooledFunds": true,
  "industryGroups": [
    "Other Technology",
    "Biotechnology",
    "Computers"
  ],
  "amendments": "exclude",
  "includeIndefiniteAmounts": false,
  "onlyIncorporatedWithinFiveYears": false,
  "maxResults": 25,
  "sortBy": "newest",
  "onlyNew": false,
  "firstRunBehavior": "returnAll",
  "maxFilingsToScan": 5000
}
```

# Actor output Schema

## `results` (type: `string`):

All Form D filings returned by this run (default dataset). Switch to the 'Contacts & people' or 'Full details' views for other columns.

## `runSummary` (type: `string`):

JSON summary: filings pushed, filings in the EDGAR index, checked, matched, already-seen skipped, per-day counts, SEC request stats and filters used.

# 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 = {
    "filedWithinDays": 7,
    "industryGroups": [
        "Other Technology",
        "Biotechnology",
        "Computers"
    ],
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("studded_columbine/sec-form-d-startup-funding-leads").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 = {
    "filedWithinDays": 7,
    "industryGroups": [
        "Other Technology",
        "Biotechnology",
        "Computers",
    ],
    "maxResults": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("studded_columbine/sec-form-d-startup-funding-leads").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 '{
  "filedWithinDays": 7,
  "industryGroups": [
    "Other Technology",
    "Biotechnology",
    "Computers"
  ],
  "maxResults": 25
}' |
apify call studded_columbine/sec-form-d-startup-funding-leads --silent --output-dataset

```

## MCP server setup

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

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/hWneOt4KmnTMyu8J8/builds/uecjYcJN0jdRmQhOL/openapi.json
