# Form D Scraper - SEC EDGAR Startup Funding Leads (`wrenfield-data/sec-form-d-scraper`) Actor

Find startups and private companies that just raised money, from official SEC EDGAR Form D filings. Filter by date, state, industry, amount, exemption and keyword. Get issuer, address, phone, executives & directors, amount raised, investors, 506(b)/(c) and first-time-raise flag.

- **URL**: https://apify.com/wrenfield-data/sec-form-d-scraper.md
- **Developed by:** [Wrenfield Data](https://apify.com/wrenfield-data) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.95 / 1,000 filing results

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

## SEC Form D Scraper – Startup Fundraises & Founders

**SEC Form D Scraper** finds startups and private companies that **just raised money**, straight from official **SEC EDGAR Form D** filings. Every US company that sells securities under Regulation D (a seed round, Series A, SAFE or convertible note, real-estate syndication...) has to file a Form D within 15 days of the first sale. That makes Form D one of the earliest public signals of a new funding round, often weeks before a press release or a Crunchbase entry.

Filter by filing date, state, industry, offering size, exemption (506(b) / 506(c)), company name or keyword, and new filings vs amendments. Get the company, address and phone, **executives, directors and promoters with their roles**, the **amount raised**, number of investors, minimum investment and a **first-time-raise flag**, in clean flat rows ready for your CRM, spreadsheet or outreach tool.

Data comes only from free, official SEC sources (EDGAR full-text search, the daily form index and the submissions API). No login, no proxies, no third-party databases.

💸 **$3 per 1,000 Form D filings** with executives, amount raised and a first-time-raise flag (the top Form D Actors in the Store charge a median $6.50 per 1,000). Try it on Apify's free plan ($5 of monthly credit, no credit card).

#### Sample output

| Issuer | Filed | Industry | State | Offering (USD) |
|---|---|---|---|---|
| Knowable Labs, Inc. | 2026-10-16 | Other Technology | CA | 310,000 |
| Eden X LLC | 2026-10-16 | Other Real Estate | KY | 25,000,000 |
| Richmond Pines LLC | 2026-10-16 | Commercial | NY | 1,400,000 |

<sub>Real rows from the prefilled example run (Oct 19, 2026), 5 of 79+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.</sub>

### What does SEC Form D Scraper do?

- 🚀 **Find new fundraises**: every Form D filed in your date range, newest first
- 🗺️ **Filter by state**: the issuer's principal place of business (CA, NY, TX...)
- 🏷️ **Filter by industry**: whole sectors (Technology, Health Care, Real Estate...) or groups (Biotechnology, Computers, Other Technology...)
- 💵 **Filter by size**: minimum and maximum offering amount, minimum amount already sold
- 🔎 **Company name or keyword**: full-text search across the filing (`Acme`, `software`, `"artificial intelligence"`)
- 🆕 **New filings vs amendments**: new offerings only, amendments only (D/A), or both
- 🧾 **Exemptions**: Rule 506(b), 506(c), 504, 4(a)(5), Investment Company Act 3(c)
- 🏦 **Startups only by default**: pooled investment funds (VC, PE, hedge, real-estate funds) are excluded unless you turn them on
- 👥 **People with roles**: executives, directors and promoters, plus `contact1Name`...`contact3Name` columns for CSV
- 🥇 **First-time raise flag**: `isFirstFormD`, the date of the company's first Form D, how many it filed before, plus EIN and SIC code
- 🔗 **Links**: the EDGAR filing page, the human-readable Form D and the raw XML

### Who uses Form D data?

- **B2B sales teams**: newly funded companies have fresh budget. Reach them while they are hiring and buying (banks, payroll, HR, insurance, legal, SaaS tools).
- **VC and angel investors**: deal-flow sourcing, tracking competitors' portfolio companies, spotting first-time raises in your sector and region.
- **Recruiters and agencies**: companies that just raised are about to hire.
- **Fund-admin, legal and compliance providers**: new funds and SPVs (turn off "Startups only").
- **Analysts and journalists**: private-market activity by state, industry and size.

### How to use it

1. Click **Try for free** / **Start**.
2. Set **Filed from** (for example `7 days`) and optionally **Filed to**.
3. Add filters: states, industry groups, offering amount range, keyword, exemptions.
4. Choose **New filings only** (default) or include amendments.
5. Set **Max filings** and run. Download as JSON, CSV, Excel or HTML, or use the Apify API, Make, Zapier, n8n or the MCP server.

Tip: schedule a daily run with **Filed from** = `1 day` to get every new raise in your territory each morning.

### Input example

```json
{
    "dateFrom": "2026-09-30",
    "dateTo": "2026-10-07",
    "states": ["CA", "NY"],
    "industryGroups": ["Technology", "Biotechnology"],
    "minOfferingAmount": 1000000,
    "maxOfferingAmount": 20000000,
    "filingType": "new",
    "excludePooledFunds": true,
    "includeIssuerHistory": true,
    "maxItems": 100
}
```

### Output example

One row per filing (some fields shortened):

```json
{
    "issuerName": "Capsage, Inc.",
    "cik": "2159276",
    "formType": "D",
    "isAmendment": false,
    "filingDate": "2026-10-07",
    "accessionNumber": "0002159276-26-000001",
    "filingUrl": "https://www.sec.gov/Archives/edgar/data/2159276/000215927626000001/0002159276-26-000001-index.htm",
    "industrySector": "Technology",
    "industryGroup": "Other Technology",
    "entityType": "Corporation",
    "stateOfIncorporation": "Delaware",
    "yearOfIncorporation": 2026,
    "city": "Newport Beach",
    "state": "CA",
    "zipCode": "92663",
    "phone": "+1 949-929-4071",
    "totalOfferingAmount": 2300000,
    "totalAmountSold": 2000000,
    "totalRemaining": 300000,
    "percentSold": 87.0,
    "minimumInvestment": 0,
    "numberOfInvestors": 1,
    "exemptionsText": "Rule 506(b)",
    "is506b": true,
    "is506c": false,
    "dateOfFirstSale": "2026-09-22",
    "securitiesTypesText": "Debt; Security to be Acquired upon Exercise",
    "revenueRange": "No Revenues",
    "relatedPersons": [
        { "name": "Kyle Horton", "roles": ["Executive Officer", "Director", "Promoter"], "city": "Lee's Summit", "state": "MO" },
        { "name": "Scott Andrews", "roles": ["Executive Officer", "Director", "Promoter"], "city": "Newport Beach", "state": "CA" }
    ],
    "executives": "Kyle Horton; Scott Andrews; Dustin Byers",
    "contact1Name": "Kyle Horton",
    "contact1Roles": "Executive Officer, Director, Promoter",
    "signerName": "Scott Andrews",
    "signerTitle": "Secretary",
    "ein": "423559188",
    "isFirstFormD": true,
    "formDFilingsBefore": 0,
    "firstFormDDate": "2026-10-07"
}
```

The dataset has three views: **Overview** (key deal facts), **Leads** (flat contact view: company, up to 3 people with roles, phone, address, amount raised) and **All fields (flat)** (no nested arrays, best for CSV and Excel). A run summary (filings checked, filtered and saved) is stored in the `SUMMARY` record of the key-value store.

### Output fields

| Group | Fields |
|---|---|
| Filing | `formType`, `isAmendment`, `filingDate`, `accessionNumber`, `previousAccessionNumber`, `filingUrl`, `formUrl`, `xmlUrl` |
| Issuer | `issuerName`, `cik`, `entityType`, `stateOfIncorporation`, `yearOfIncorporation`, `street1`, `street2`, `city`, `state`, `zipCode`, `fullAddress`, `phone`, `previousNames`, `isLikelySpv` |
| Industry | `industrySector`, `industryGroup`, `investmentFundType`, `isPooledInvestmentFund`, `revenueRange` |
| Offering | `totalOfferingAmount`, `isOfferingAmountIndefinite`, `totalAmountSold`, `totalRemaining`, `percentSold`, `minimumInvestment`, `numberOfInvestors`, `hasNonAccreditedInvestors`, `dateOfFirstSale`, `securitiesTypes`, `salesCommissions`, `findersFees`, `salesCompensationRecipients` |
| Exemptions | `exemptions`, `exemptionsText`, `exemptionCodes`, `is506b`, `is506c` |
| People | `relatedPersons` (name, roles, clarification, city, state), `executives`, `directors`, `promoters`, `contact1Name`...`contact3Roles`, `signerName`, `signerTitle` |
| History | `isFirstFormD`, `formDFilingsBefore`, `firstFormDDate`, `totalFormDFilings`, `ein`, `sic`, `sicDescription`, `website` |

### How much does it cost?

You pay per filing saved to the dataset, plus a tiny start fee. Filtered-out filings are free. You can cap any run with **Max filings** or Apify's **Maximum cost per run**, and the Actor stops exactly at that limit. Runs are light (256 MB, no proxies), so platform usage costs stay very low.

### Related tools

Turn new fundraises into leads: company name → website → contacts → tech stack.

- [Company Name to Domain](https://apify.com/wrenfield-data/company-name-to-domain): turn a list of company names into official website domains
- [Website Contact Scraper](https://apify.com/wrenfield-data/website-contact-scraper): get emails, phone numbers and social links for each domain
- [Tech Stack Detector](https://apify.com/wrenfield-data/website-tech-stack-detector): see which CMS, ecommerce, analytics and CRM tools a site uses

All of these are maintained by the same developer and export flat JSON, CSV or Excel, so you can feed one tool's dataset into the next.

### FAQ

**Is this data legal to use?**
Form D filings are public records published by the US Securities and Exchange Commission. This Actor uses only the SEC's official, free EDGAR endpoints, identifies itself with a User-Agent and stays under the SEC's fair-access limit of 10 requests per second. Names and phone numbers in Form D are business contact details the filers made public. If you use them for outreach, follow the laws that apply to you (for example CAN-SPAM, TCPA and GDPR).

**Does a Form D mean the company raised the full amount?**
No. `totalOfferingAmount` is what the company plans to raise; `totalAmountSold` is what it had sold when it filed. Amendments (D/A) often report later progress. Some companies, especially funds, report an "Indefinite" offering amount.

**Why do I see so few filings with "Startups only" on?**
About 60% of Form D filings come from pooled investment funds and SPVs. Turn off **Startups and operating companies only** to include them. `isLikelySpv` flags series LLCs and SPVs that report a regular industry.

**Do I get emails or websites?**
Form D does not include email addresses, and the SEC rarely has a website on file. Pair this Actor with a company-domain or email-finder Actor to enrich the results.

**How fresh is the data?**
EDGAR publishes filings within minutes of acceptance. A daily schedule with **Filed from** = `1 day` catches everything.

**How far back can I go?**
To March 2009, when Form D became an electronic XML filing.

# Actor input Schema

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

Earliest SEC filing date (inclusive). An absolute date like <code>2026-09-01</code> or a relative one like <code>7 days</code>. Defaults to 7 days before <i>Filed to</i>. Form D data is available from 2009-03-16.

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

Latest SEC filing date (inclusive). Leave empty for today. Results are returned newest first.

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

Only filings whose issuer's principal place of business is in these US states (business address on the Form D). Leave empty for all states and countries.

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

Form D industry groups (as selected by the issuer). Pick a whole sector (e.g. <b>Technology (all)</b>) or a specific group. Leave empty for all industries.

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

About 60% of Form D filings are pooled investment funds (VC, PE, hedge and real-estate funds raising from LPs). Keep this on to get operating companies and startups only. Turn it off to include funds, e.g. to track new VC funds.

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

Only offerings whose total offering amount is at least this. Offerings marked "Indefinite" pass this filter.

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

Only offerings whose total offering amount is at most this. Offerings marked "Indefinite" are excluded when this is set.

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

Only offerings that have already raised at least this much (total amount sold).

## `keyword` (type: `string`):

Full-text search across the Form D (issuer name, people, addresses...). Examples: <code>Acme</code>, <code>software</code>, <code>"artificial intelligence"</code> (quotes = exact phrase).

## `filingType` (type: `string`):

A new Form D is filed within 15 days after the first sale of a new offering. Amendments (D/A) update an existing offering, e.g. more money raised or the annual renewal.

## `exemptions` (type: `array`):

Only filings claiming at least one of these exemptions. 506(b) is the classic private round; 506(c) allows general solicitation (accredited investors verified).

## `includeIssuerHistory` (type: `boolean`):

Looks up the issuer on SEC EDGAR to add EIN, SIC code, how many Form Ds it filed before, the date of its first Form D, and <code>isFirstFormD</code> (a first-time raise). One extra SEC request per company.

## `maxItems` (type: `integer`):

Stop after saving this many filings. You are only charged for filings saved to the dataset.

## Actor input object example

```json
{
  "dateFrom": "7 days",
  "excludePooledFunds": true,
  "filingType": "new",
  "includeIssuerHistory": true,
  "maxItems": 20
}
```

# Actor output Schema

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

No description

## `leads` (type: `string`):

No description

## `summary` (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 = {
    "dateFrom": "7 days",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("wrenfield-data/sec-form-d-scraper").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 = {
    "dateFrom": "7 days",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("wrenfield-data/sec-form-d-scraper").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 '{
  "dateFrom": "7 days",
  "maxItems": 20
}' |
apify call wrenfield-data/sec-form-d-scraper --silent --output-dataset

```

## MCP server setup

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

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/iC9ncsgeGvf9D8ezk/builds/Zo2Ydxr42NgA6lbCI/openapi.json
