# SEC Form D Scraper: Startup Funding Leads (`greatwork/sec-form-d-leads`) Actor

Companies that just raised private money, from every new SEC Form D filing: name, address, phone, industry, amount raised and sold, investor count, officers and filing link. Filter by state, industry and raise size. Run it daily for a funding lead feed.

- **URL**: https://apify.com/greatwork/sec-form-d-leads.md
- **Developed by:** [Great Work](https://apify.com/greatwork) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $60.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Scraper do?

**SEC Form D Scraper turns every new Form D filing into a sales lead.** When a US company sells shares or notes in a private round (seed, Series A, a growth round, a real estate syndication), it has to file a Form D with the SEC within 15 days of the first sale. This Actor reads those filings from **SEC EDGAR** every day and gives you a clean table of **recently funded companies**: name, address, **phone**, industry, **amount raised**, amount already sold, **number of investors**, date of first sale, officers and a link to the filing.

About 250 Form D filings land on a typical business day. After the default filters drop investment funds and amendments, about **65 new raises by operating companies** remain. Funding databases show the same filings days later behind a seat license. Here you pay per filing you keep.

**Try it now:** click **Start**. The prefilled input returns up to 20 recent tech and health care raises of $1M or more in under a minute, for about $1.41.

### Who uses Form D funding data?

- **B2B sales teams** selling to newly funded companies: payroll, banking, insurance, recruiting, office space, SaaS. A company that just closed $5M is about to spend it.
- **Lenders, venture debt and revenue-based financing** looking for companies between rounds.
- **Accountants, fractional CFOs and law firms** who want issuers that now have investors to report to.
- **Wealth managers and private bankers** looking for founders after a liquidity event.
- **Investors, analysts and journalists** tracking deal flow by industry, state or round size.

### What data do you get?

| Field | Example |
|---|---|
| `issuerName` | Sunflower Labs Inc. |
| `street`, `city`, `state`, `zip` | 1364 CRESTVIEW DRIVE, SAN CARLOS, CA, 94070 |
| `phone` | 408-204-4009 |
| `industryGroup` | Other Technology, Biotechnology, Commercial, Restaurants... |
| `totalOfferingAmount` | 20000000 |
| `totalAmountSold`, `totalRemaining` | 14902982, 5097018 |
| `investorCount` | 26 |
| `minimumInvestment` | 5000 |
| `dateOfFirstSale` | 2026-09-10 (or "yet to occur") |
| `federalExemptions` | \["06b"] (Rule 506(b)) |
| `securitiesTypes` | \["Equity"] |
| `entityType`, `jurisdictionOfInc`, `yearOfInc` | Corporation, DELAWARE |
| `revenueRange` | Decline to Disclose, $1 - $1,000,000, ... |
| `salesCommissions`, `findersFees` | 0, 405300 |
| `isAmendment`, `previousAccession` | false, null |
| `dateFiled`, `accession`, `filingUrl`, `primaryDocUrl` | links back to the filing on sec.gov |
| `relatedPersons` (optional) | executive officers, directors and promoters with role, city and state |

#### Sample output

Real filings from the week of September 22, 2026 (tech and health care, $1M or more):

| Company | City | Industry | Offering | Sold | Investors | Filed |
|---|---|---|---|---|---|---|
| Exa Labs Inc. | San Francisco, CA | Other Technology | $247,488,419 | $247,488,419 | 38 | 2026-09-28 |
| Alpfa Medical, Inc. | Palo Alto, CA | Other Health Care | $100,268,055 | $80,268,077 | 71 | 2026-09-28 |
| Sunflower Labs Inc. | San Carlos, CA | Other Technology | $20,000,000 | $14,902,982 | 26 | 2026-09-28 |
| Evia Bio, Inc. | Minneapolis, MN | Biotechnology | $5,453,532 | $5,453,532 | 19 | 2026-09-28 |
| Audivi AI Inc. | Milford, OH | Other Technology | $1,500,000 | $850,000 | 4 | 2026-09-28 |

One full record:

```json
{
  "issuerName": "Sunflower Labs Inc.",
  "cik": "1876339",
  "formType": "D",
  "isAmendment": false,
  "dateFiled": "2026-09-28",
  "entityType": "Corporation",
  "jurisdictionOfInc": "DELAWARE",
  "street": "1364 CRESTVIEW DRIVE",
  "city": "SAN CARLOS",
  "state": "CA",
  "zip": "94070",
  "phone": "408-204-4009",
  "industryGroup": "Other Technology",
  "isPooledFund": false,
  "revenueRange": "Decline to Disclose",
  "federalExemptions": ["06b"],
  "dateOfFirstSale": "2026-09-10",
  "securitiesTypes": ["Equity"],
  "totalOfferingAmount": 20000000,
  "totalAmountSold": 14902982,
  "totalRemaining": 5097018,
  "minimumInvestment": 5000,
  "investorCount": 26,
  "hasNonAccreditedInvestors": false,
  "salesCommissions": 0,
  "findersFees": 405300,
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/1876339/000187633926000003/0001876339-26-000003-index.htm",
  "source": "SEC EDGAR"
}
```

In Apify Console the Output tab has three views: **Leads** (who raised and how to reach them), **Offering details** (deal terms) and **Company profile** (address, entity, officers). Download any run as CSV, Excel, JSON or XML.

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

1. Click **Start** with the prefilled input, or set your own filters: **states**, **industry groups**, **minimum offering size**, **young companies only**.
2. Pick a window: the last N filing days (weekends and holidays are skipped) or an exact date range for a backfill.
3. Open the **Output** tab and export the table, or connect it to your CRM (see integrations below).
4. Save the input as a task and **schedule it daily** with **Only filings not delivered before** switched on. You get each morning's new raises and never pay twice for the same filing.

#### Input examples

**New operating-company raises from the last 3 filing days** (all industries and states):

```json
{ "daysBack": 3 }
```

**Tech and biotech startups in California and New York raising $2M or more:**

```json
{
  "daysBack": 7,
  "states": ["CA", "NY"],
  "industries": ["Other Technology", "Biotechnology", "Pharmaceuticals"],
  "minOfferingAmount": 2000000,
  "incorporatedWithinFiveYearsOnly": true
}
```

**Restaurant and retail raises in Texas for a full quarter, with officers:**

```json
{
  "dateFrom": "2026-07-01",
  "dateTo": "2026-09-30",
  "states": ["TX"],
  "industries": ["Restaurants", "Retailing"],
  "includeRelatedPersons": true,
  "maxResults": 2000
}
```

**Fund managers only (hedge, PE, VC and real estate funds):**

```json
{ "daysBack": 7, "excludePooledFunds": false, "industries": ["Pooled Investment Fund"] }
```

### How much does it cost to scrape SEC Form D filings?

You pay per filing returned. Filters run before you are charged, and there is no subscription or platform usage fee on top.

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Form D filing | $0.07 | $0.065 | $0.06 |
| Run start | $0.01 | $0.01 | $0.01 |

What that looks like in practice:

| Use | Filings | Cost |
|---|---|---|
| The prefilled first run | up to 20 | about $1.41 |
| Daily feed: tech and health care raises of $1M+, nationwide | about 360 a month | about $25 a month |
| Daily feed: every new raise in California | about 225 a month | about $16 a month |
| Daily feed: every new operating-company raise in the US | about 1,400 a month | about $98 a month |

Set **Max results**, or a maximum cost per run in the run options, to cap any single run. Apify's free plan includes monthly credit you can spend on this Actor.

### Run it as a daily funding feed

Form D is a stream, so this Actor is built to run on a schedule:

- **Only filings not delivered before** (`onlyNew`) skips filings the same feed already returned in the last 60 days. The list lives in a key-value store in your own account, so overlapping windows never bill you twice.
- **Feed name** (`feedName`) keeps separate lists for separate schedules, for example `ca-tech` and `tx-restaurants`.
- In Console, save your input as a **task**, then add a **schedule** (for example weekdays at 7:00 US Eastern, after EDGAR's evening index is published) with `"daysBack": 3, "onlyNew": true`.

### Integrations and API

Send each run's results wherever you work:

- **Google Sheets, HubSpot, Salesforce, Slack, email:** through Apify integrations, **Make**, **Zapier** or **n8n** (each has an Apify app with "run Actor" and "get dataset items" steps).
- **Webhooks:** fire on every finished run to push leads into your own system.
- **AI agents over MCP:** add `https://mcp.apify.com?tools=greatwork/sec-form-d-leads` to Claude, ChatGPT, Cursor or any MCP client and ask for "biotech companies in Massachusetts that raised this week".
- **REST API, Python and JavaScript clients:**

```bash
curl -X POST "https://api.apify.com/v2/acts/greatwork~sec-form-d-leads/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"daysBack": 2, "states": ["CA"], "minOfferingAmount": 1000000}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("greatwork/sec-form-d-leads").call(run_input={"daysBack": 3, "industries": ["Biotechnology"]})
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(lead["issuerName"], lead["phone"], lead["totalAmountSold"])
```

### Form D industry groups

Form D uses a fixed list, and the **Industry groups** input offers all of them: `Other Technology`, `Computers`, `Telecommunications`, `Biotechnology`, `Pharmaceuticals`, `Other Health Care`, `Health Insurance`, `Hospitals and Physicians`, `Business Services`, `Manufacturing`, `Retailing`, `Restaurants`, `Agriculture`, `Commercial`, `Residential`, `Construction`, `REITS and Finance`, `Other Real Estate`, the energy groups, the banking and insurance groups, `Pooled Investment Fund`, the travel groups and `Other`.

### FAQ

#### What is a Form D?

A notice a company files with the SEC when it sells securities without registering them, under Regulation D (Rules 504, 506(b), 506(c)). It lists the company, its address and phone, its officers, the size of the offering, how much has been sold and to how many investors. Most US startup rounds and many private real estate deals file one.

#### How fresh is the data?

EDGAR publishes each day's filing index in the evening, US Eastern time. A run in the morning covers everything up to the previous business day. Companies file within 15 days of the first sale, so a filing is usually days old, not months.

#### Why did I get fewer results than I expected?

Filters apply to every filing in the window. Investment funds and amendments are excluded by default; switch off **Exclude investment funds** or switch on **Include amendments** to see them. A narrow state and industry combination on a short window can return only a few filings.

#### Does it include the founders' names and emails?

Officer, director and promoter names are available with **Include related persons**, along with their city and state. The SEC does not publish personal emails; the phone number is the company's.

#### Is it legal to use Form D data?

Form D filings are public records the SEC publishes on EDGAR for free public access. This Actor follows the SEC's fair-access policy (a declared User-Agent and at most 8 requests per second). When you contact people from the data, follow the laws that apply to you, such as CAN-SPAM, TCPA and GDPR.

#### How is this different from a funding database?

Databases re-key the same filings later and charge per seat per month. This Actor reads the primary source the day it is published, returns every field on the form, and charges only for the filings that match your filters.

### How it works and limits

- Reads the official EDGAR daily form index, then each filing's `primary_doc.xml`. No login, no browser and no third-party sites.
- A small share of old or paper filings have no XML document; those are skipped.
- Amounts are what the issuer reported. "Indefinite" offering sizes, common for funds, come through as `totalOfferingAmount: null` with `offeringAmountIndefinite: true`.
- If a date range that includes business days finds zero filings in the index, the run fails on purpose so you notice instead of getting an empty dataset.

### Data source

Form D filings are public records filed with the U.S. Securities and Exchange Commission and published on EDGAR. This Actor is independent and is not affiliated with or endorsed by the SEC.

### More lead feeds by Great Work

| Actor | What you get |
|---|---|
| [FMCSA New Carrier Leads](https://apify.com/greatwork/fmcsa-new-carriers) | Trucking companies registered in the last few days, with phone, email and fleet size |
| [US Building Permits Scraper](https://apify.com/greatwork/us-building-permits) | New building permits from 7 US cities and counties, with job value and contractor |

### Support

Found a bug or need a field? Open an issue on the **Issues** tab and we usually reply within one business day. For a custom feed or a bulk historical export, email hello@greatwork.company.

# Changelog

This Actor's version history is a separate document: https://apify.com/greatwork/sec-form-d-leads/changelog.md

# Actor input Schema

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

How many of the most recent EDGAR filing days to scan (weekends and holidays are skipped automatically). Ignored when 'Date from' is set.

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

First filing date to include (YYYY-MM-DD). Leave empty to use 'Days back'.

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

Last filing date to include (YYYY-MM-DD). Defaults to today.

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

Two-letter codes of the issuer's principal place of business, e.g. CA, NY, TX. Leave empty for every state and country.

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

Form D industry groups to keep (the SEC's fixed list). Leave empty for all industries. Real estate groups are Commercial, Residential, REITS and Finance, Other Real Estate.

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

Keep only raises of at least this total offering amount. Open-ended ('Indefinite') offerings are kept. 0 = no minimum.

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

Drop raises above this amount. 0 = no maximum.

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

Drop pooled investment funds (hedge, PE, VC and real-estate fund vehicles) so you only get operating companies.

## `incorporatedWithinFiveYearsOnly` (type: `boolean`):

Keep only issuers incorporated within the last five years (startups).

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

Also return amended filings. Off = only new raises.

## `nameContains` (type: `string`):

Optional case-insensitive text match on the issuer name.

## `includeRelatedPersons` (type: `boolean`):

Add the executive officers, directors and promoters named in the filing (name, role, city, state). Off by default.

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

Stop after this many filings. You pay per filing returned, so this is also your cost cap.

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

For scheduled runs: skip filings this feed already returned in the last 60 days, so overlapping date windows never repeat a company. Tracked in a key-value store in your own account.

## `feedName` (type: `string`):

Keeps separate 'already delivered' lists per schedule, e.g. 'ca-tech'.

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

Added to the User-Agent sent to the SEC, as its fair-access policy asks. Not stored or shared.

## Actor input object example

```json
{
  "daysBack": 3,
  "states": [],
  "industries": [
    "Other Technology",
    "Biotechnology",
    "Other Health Care"
  ],
  "minOfferingAmount": 1000000,
  "maxOfferingAmount": 0,
  "excludePooledFunds": true,
  "incorporatedWithinFiveYearsOnly": false,
  "includeAmendments": false,
  "includeRelatedPersons": false,
  "maxResults": 20,
  "onlyNew": false,
  "feedName": "default"
}
```

# Actor output Schema

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

Every record from this run. Open it as a table in the Output tab, or download JSON, CSV or Excel from the dataset API.

# 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 = {
    "daysBack": 3,
    "states": [],
    "industries": [
        "Other Technology",
        "Biotechnology",
        "Other Health Care"
    ],
    "minOfferingAmount": 1000000,
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("greatwork/sec-form-d-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 = {
    "daysBack": 3,
    "states": [],
    "industries": [
        "Other Technology",
        "Biotechnology",
        "Other Health Care",
    ],
    "minOfferingAmount": 1000000,
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("greatwork/sec-form-d-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 '{
  "daysBack": 3,
  "states": [],
  "industries": [
    "Other Technology",
    "Biotechnology",
    "Other Health Care"
  ],
  "minOfferingAmount": 1000000,
  "maxResults": 20
}' |
apify call greatwork/sec-form-d-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,greatwork/sec-form-d-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/C1nrMS23qv8zmxc6b/builds/XNamHSngvJuxui5zk/openapi.json
