# SEC Form D Funding Rounds: new raises with founders + phone (`johnveds15/sec-form-d-funding-rounds`) Actor

Every new Form D (Reg D private raise) on EDGAR: issuer, phone, address, executives by name, amount raised and sold, investor count, 506(b)/506(c), year founded. Funds filtered out by default so you get operating companies. No browser, no proxy, $3 per 1,000 rounds.

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

## Pricing

$3.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: who just raised money, with founders and phone

**Every company that filed a Form D with the SEC in your window: who raised, how much they've sold, how many investors, under which exemption, who runs the company and the phone number on the filing.** Pooled investment funds are filtered out by default, so what's left are operating companies raising a round. It reads EDGAR's official structured XML. No browser, no proxy, no API key. **$3 per 1,000 rounds.**

### Who this is for

- **Agencies, SaaS and service sellers** who want companies that just got funded. A company that has sold $5M in a priced round is about to hire and buy software.
- **VCs, angels and scouts** tracking who is raising, in which sector and state, before the press release (if one ever comes).
- **Journalists and analysts** covering private markets, real estate syndications and startup ecosystems.
- **Anyone paying $70 per 1,000 rounds** for "recently funded companies" data. Form D is where most of that data starts.

### What a Form D is

A US company raising money privately under Regulation D (Rule 506(b), 506(c) or 504) must file a Form D with the SEC within 15 days of its first sale. The filing is public and structured: issuer, address, phone, executives and directors, industry, offering size, amount sold so far, number of investors. The SEC receives about 150–250 of them every business day. About half come from investment funds raising from their LPs. The rest are operating companies, and those are what this Actor returns by default.

### A real record (names and phone masked here, delivered in full)

From a live run on 2026-10-05:

```json
{
  "issuerName": "Adden Energy, Inc.",
  "filedDate": "2026-10-05",
  "industry": "Other Energy",
  "city": "WALTHAM", "state": "MA", "phone": "719•••••••",
  "exemptions": ["06b"],
  "isAmendment": false,
  "dateOfFirstSale": "2026-09-18",
  "securities": ["equity"],
  "totalOfferingAmount": 26641463.0,
  "totalAmountSold": 16897972.0,
  "percentSold": 63.4,
  "investorCount": 7,
  "executives": ["W•••••• F••••••", "L•••• Y•"],
  "signerName": "W•••••• F••••••", "signerTitle": "Chief Executive Officer",
  "isOperatingCompany": true,
  "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/1912559/000191255926000003/0001912559-26-000003-index.htm"
}
```

That test run swept 3 days, parsed 80 filings and kept 31 operating-company rounds, $73.9M sold in total. Every one of the 31 had a phone number and a named executive.

### Output fields

| Field | Notes |
|---|---|
| `issuerName`, `entityType`, `jurisdiction` | As filed. |
| `phone`, `street`, `city`, `state`, `zip` | The issuer's contact block on the filing. |
| `executives`, `relatedPersons[]` | Every related person with roles (Executive Officer / Director / Promoter) and city/state. |
| `industry`, `fundType`, `isOperatingCompany` | SEC industry group. Funds carry `fundType` (Hedge, PE, VC, Other). |
| `totalOfferingAmount`, `totalAmountSold`, `totalRemaining`, `percentSold` | `null` when the offering size is "Indefinite". |
| `investorCount`, `hasNonAccreditedInvestors`, `minimumInvestment` | |
| `exemptions` | `06b` = 506(b), `06c` = 506(c) (general solicitation allowed), `04` = Rule 504, and others. |
| `dateOfFirstSale`, `isAmendment`, `securities` | Equity, debt, options, etc. |
| `yearOfIncorporation`, `incorporatedWithinFiveYears` | Use `startupsOnly` to keep only the under-five-year ones. |
| `brokers` | Placement agents or broker-dealers paid commissions, if any. |
| `filingIndexUrl`, `xmlUrl` | Every record links to the SEC document it came from. |

### Input

| Field | Default | What it does |
|---|---|---|
| `secContactEmail` | maintainer's address | Required by the SEC's fair-access policy and sent only to sec.gov. **Put your own address here.** |
| `lookbackDays` | 3 | Days of EDGAR daily indices, ending at `endDate`. Weekends are skipped automatically. |
| `operatingCompaniesOnly` | true | Drops pooled investment funds. |
| `startupsOnly` | false | Only issuers incorporated within five years. |
| `minAmountSold` | 0 | Only rounds that have already sold at least this many dollars. |
| `states`, `industries` | all | Filter by issuer state and industry group text, e.g. `Technology`, `Biotech`, `Restaurants`. |
| `includeAmendments` | false | D/A filings update a raise that's already on file. |
| `maxFilings` | 150 | Cap on XML documents fetched. This bounds the runtime. |

### Pricing

Pay per event: **$0.003 per funding round delivered.** You're charged only for rows that pass your filters. Funds you filtered out and filings that failed to parse cost nothing. A typical day of operating-company rounds (about 60–90) costs about $0.20–$0.30. A daily schedule runs about $6 a month. Platform compute is minimal because this is a plain Python container making plain HTTP requests.

### What this does not do

- **It is not investment advice**, and a Form D isn't an offer to you.
- **Not every raise files.** Some companies file late or never, and SAFEs and convertible notes are often filed as debt or options.
- **It doesn't include emails.** The SEC form has no email field. Pair the phone and executive names with an enrichment tool if you need email.
- **It isn't real time.** It works from EDGAR's daily index, so a filing shows up the business day it is accepted.

Requests to EDGAR are paced at about 7.5 per second, under the SEC's published limit. You can't change that.

### More Actors by johnveds15

Same pay-per-result pricing, same JSON/CSV output, no login needed:

- [FMCSA new trucking carrier leads](https://apify.com/johnveds15/fmcsa-new-carrier-leads)
- [US building permit leads, 6 cities](https://apify.com/johnveds15/us-building-permit-leads)
- [Competitor ad library scraper (Google Ads + LinkedIn)](https://apify.com/johnveds15/ad-library-competitor-ads)
- [Google Flights fares and price history](https://apify.com/johnveds15/google-flights-fares)

# Actor input Schema

## `secContactEmail` (type: `string`):

The SEC's fair-access policy requires automated requests to identify their sender. Sent only to sec.gov in the User-Agent header. Defaults to the Actor owner's address so the platform's daily test can run; replace it with your own.

## `lookbackDays` (type: `integer`):

Calendar days of EDGAR daily indices to sweep, ending at End date. Weekends and federal holidays have no index and are skipped.

## `endDate` (type: `string`):

Last day of the window. Defaults to today.

## `operatingCompaniesOnly` (type: `boolean`):

Drop pooled investment funds (PE, VC, hedge, real-estate funds raising from LPs). About half of all Form D filings are funds; turn this off if those are your leads.

## `startupsOnly` (type: `boolean`):

Keep only issuers that tick the SEC's 'incorporated within the last five years' box.

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

Keep only offerings that have already sold at least this much.

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

Two-letter codes as EDGAR prints them (CA, NY, TX). Empty = all.

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

Case-insensitive substring of the SEC industry group, e.g. 'Technology', 'Biotechnology', 'Health', 'Real Estate', 'Restaurants'. Empty = all.

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

Amendments update a raise already on file. Off = new raises only.

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

Cap on Form D XML documents fetched. Bounds runtime. EDGAR sees ~150-250 Form D filings a business day.

## Actor input object example

```json
{
  "secContactEmail": "you@example.com",
  "lookbackDays": 3,
  "operatingCompaniesOnly": true,
  "startupsOnly": false,
  "minAmountSold": 0,
  "states": [],
  "industries": [],
  "includeAmendments": false,
  "maxFilings": 150
}
```

# Actor output Schema

## `rounds` (type: `string`):

One row per Form D offering kept by the filters.

## `summary` (type: `string`):

Filings in window, parsed, errors, records pushed and events 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 = {
    "secContactEmail": "you@example.com",
    "lookbackDays": 3,
    "maxFilings": 150
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnveds15/sec-form-d-funding-rounds").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 = {
    "secContactEmail": "you@example.com",
    "lookbackDays": 3,
    "maxFilings": 150,
}

# Run the Actor and wait for it to finish
run = client.actor("johnveds15/sec-form-d-funding-rounds").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 '{
  "secContactEmail": "you@example.com",
  "lookbackDays": 3,
  "maxFilings": 150
}' |
apify call johnveds15/sec-form-d-funding-rounds --silent --output-dataset

```

## MCP server setup

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

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/ThTkv6T9KtBQnj3ET/builds/Y3aiisnmegF4MA4dQ/openapi.json
