# SEC Form D Funding Leads (`kingly_contest_7cb/sec-form-d-funding-leads`) Actor

New private funding rounds from SEC EDGAR Form D filings: company, address, phone, industry, amount raised and sold, date of first sale, executives and directors, and a link to the filing. Official SEC endpoints, no login.

- **URL**: https://apify.com/kingly_contest_7cb/sec-form-d-funding-leads.md
- **Developed by:** [Carina Hatton](https://apify.com/kingly_contest_7cb) (community)
- **Categories:** Lead generation, Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.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

## SEC Form D Funding Leads

Find companies that just raised private money. Every time a US company (or fund) sells securities under Regulation D, it has to file a short **Form D** notice with the SEC within 15 days of the first sale. That notice is public, and it's one of the earliest signals that a business has fresh cash: who they are, where they are, how much they're raising, how much is already in, and who runs the company.

This Actor pulls those filings straight from SEC EDGAR and turns each one into a clean record you can drop into a CRM, a spreadsheet or an outreach tool.

### What you get for each filing

- **Company**: name, CIK, entity type, state of incorporation, year founded, street address, city, state, ZIP and the phone number on the filing
- **The raise**: total offering amount, amount already sold, amount remaining, minimum investment, number of investors so far, date of first sale, type of securities (equity, debt, SAFEs, fund interests...), exemption used (506(b), 506(c), 504...)
- **Industry**: the Form D industry group (Biotechnology, Other Technology, Residential real estate, Pooled Investment Fund...) and revenue range when disclosed
- **People**: executive officers, directors and promoters with their role and city/state (no home street addresses)
- **Brokers**: sales-compensation recipients and their broker-dealer, if any
- **Links**: the filing index page, the raw XML and the company's filing history on EDGAR

### Where the data comes from

| Source | What it's used for |
|---|---|
| EDGAR full-text search index (efts.sec.gov) | the list of Form D and D/A filings for each day |
| EDGAR daily form index (sec.gov/Archives) | backup list if the search index has a hiccup |
| `primary_doc.xml` of each filing (sec.gov/Archives) | all the fields above |

These are official, free SEC endpoints. No login, no API key, no scraping of web pages. SEC data is public domain. The Actor follows SEC's fair-access policy: it sends a declared User-Agent with your contact email, and it never makes more than 4 requests a second (SEC's limit is 10).

### Input

| Field | What it does | Default |
|---|---|---|
| Contact email for SEC | SEC requires automated tools to identify themselves. Your email goes only into the request header sent to sec.gov. | (required) |
| Filed from / Filed to | Filing date range, as dates or relative ("7 days") | last 7 days |
| Include amendments | Also return Form D/A amendments | off |
| Issuer states | Two-letter codes, e.g. `CA`, `NY`, `TX` | all |
| Industry groups | Pick from the official Form D list | all |
| Exclude pooled investment funds | Skip VC/PE/hedge/real estate funds and keep operating companies | off |
| Min / max offering amount | Size of the raise in USD | none |
| Min amount already sold | Only raises that have actually closed some money | none |
| Include related persons | Officers, directors, promoters | on |
| Max filings | Stop after this many | 1000 |

Example: Texas and California startups, no funds, at least $1M, last 2 weeks:

```json
{
  "contactEmail": "you@yourcompany.com",
  "dateFrom": "14 days",
  "states": ["TX", "CA"],
  "excludePooledInvestmentFunds": true,
  "minOfferingAmount": 1000000
}
```

### Output example

A real record from a test run (filed 29 Oct 2026):

```json
{
  "accessionNumber": "0002162167-26-000001",
  "formType": "D",
  "isAmendment": false,
  "previousAccessionNumber": null,
  "filedDate": "2026-10-29",
  "cik": "2162167",
  "companyName": "thenevercompany.ai Inc.",
  "entityType": "Corporation",
  "jurisdictionOfIncorporation": "Delaware",
  "yearOfIncorporation": 2026,
  "incorporatedWithinFiveYears": true,
  "yetToBeFormed": null,
  "street1": "2108 N ST",
  "street2": "#18261",
  "city": "Sacramento",
  "state": "CA",
  "stateOrCountryName": "California",
  "zip": "95816",
  "phone": "6506667774",
  "industryGroup": "Other Technology",
  "investmentFundType": null,
  "revenueRange": "No Revenues",
  "aggregateNetAssetValueRange": null,
  "federalExemptions": [
    "Rule 506(b)"
  ],
  "dateOfFirstSale": "2026-10-22",
  "firstSaleYetToOccur": false,
  "offeringMoreThanOneYear": false,
  "securitiesOffered": [
    "Other: Simple Agreements for Future Equity (SAFEs)"
  ],
  "isBusinessCombination": false,
  "minimumInvestment": 0,
  "totalOfferingAmount": 550000,
  "offeringAmountIndefinite": false,
  "totalAmountSold": 200000,
  "totalRemaining": 350000,
  "hasNonAccreditedInvestors": false,
  "investorsAlreadyInvested": 3,
  "salesCommissions": 0,
  "findersFees": 0,
  "grossProceedsUsedForInsiders": 0,
  "relatedPersons": [
    {
      "name": "Navin E Samuel",
      "firstName": "Navin",
      "lastName": "Samuel",
      "relationships": [
        "Executive Officer",
        "Director"
      ],
      "clarification": "Chief Executive Officer, President, Secretary and Chief Financial Officer",
      "city": "Sacramento",
      "state": "CA"
    },
    {
      "name": "Bhupesh Chandra",
      "firstName": "Bhupesh",
      "lastName": "Chandra",
      "relationships": [
        "Executive Officer",
        "Director"
      ],
      "clarification": "Chief Technology Officer",
      "city": "Sacramento",
      "state": "CA"
    }
  ],
  "salesCompensationRecipients": [],
  "otherIssuers": [],
  "signerName": "Navin E Samuel",
  "signerTitle": "Chief Executive Officer",
  "signatureDate": "2026-10-29",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/2162167/000216216726000001/0002162167-26-000001-index.htm",
  "xmlUrl": "https://www.sec.gov/Archives/edgar/data/2162167/000216216726000001/primary_doc.xml",
  "companyFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=2162167&type=D"
}
```

The dataset's **Overview** view shows the key columns as a table. Export to JSON, CSV, Excel or straight into your tools with the Apify API or integrations (Zapier, Make, Google Sheets, webhooks).

### Good to know

- **Volume.** SEC receives roughly 200-600 Form D filings per business day. About half are investment funds, so the "Exclude pooled investment funds" switch makes a big difference if you sell to operating companies.
- **Amendments.** A Form D/A usually means the raise is still going and more money has come in. It's off by default so you don't get the same company twice; turn it on if you track companies over time.
- **"Indefinite" amounts.** Many funds don't state a fixed size. Those records have `totalOfferingAmount: null` and `offeringAmountIndefinite: true`.
- **Foreign issuers** use SEC country codes in `state` (for example `A0` = Alberta, `X0` = United Kingdom). `stateOrCountryName` spells it out.
- **Phone numbers** are what the company printed on the filing. Often it's the main line or a law firm.
- **Timing.** Filings are available a few minutes after SEC accepts them. Running once a day (schedule it in Apify) with "Filed from: 1 day" gives you a steady daily list.
- The Actor reads newest days first, and only downloads the XML of filings that can still pass your state filter, so narrow runs are fast and cheap.

### Pricing

Pay per result. You only pay for filings saved to your dataset:

| Event | Price |
|---|---|
| Form D filing | $0.015 |

Some examples:

- A typical day of operating-company filings with funds excluded (about 150 filings) costs about **$2.25**.
- A week of all Form D filings for one state such as Texas (about 100 filings) costs about **$1.50**.
- The default cap of 1,000 filings costs at most **$15**.

Apify also charges a tiny standard Actor start fee ($0.00005 per run). You can set a maximum charge per run in Apify, and the Actor stops cleanly when it reaches that cap.

### Is this legal?

Form D notices are public records published by the SEC for exactly this kind of use. The Actor only uses the official EDGAR endpoints, identifies itself as SEC asks, and stays well under SEC's rate limit. Related persons are included because they're listed on the public filing; the Actor deliberately leaves out their street addresses. If you use the contacts for outreach, follow the anti-spam and privacy laws that apply to you (CAN-SPAM, GDPR, etc.).

### Questions or ideas

Open an issue on the Actor's Issues tab. Requests for extra fields or filters are welcome.

# Actor input Schema

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

Required. SEC's fair-access rules require every automated tool to identify itself with a contact email, so the run stops with an error if this is empty. Use your own work email. It goes only to sec.gov, inside the request's User-Agent header, and isn't stored or shared anywhere else.

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

First filing date to include, as a date (2026-10-01) or a period back from today (7 days). Empty = 7 days before 'Filed to'. Max range is 92 days.

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

Last filing date to include. Empty = today (UTC).

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

Off: only new notices (Form D). On: also amendments, which usually report more money sold or updated details for an earlier offering.

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

Two-letter codes of the issuer's principal place of business, e.g. CA, NY, TX. Empty = all states and countries (SEC uses codes like A0 for Alberta or X0 for the UK).

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

Keep only these Form D industry groups. Empty = all.

## `excludePooledInvestmentFunds` (type: `boolean`):

Roughly half of all Form D filings are investment funds (VC, PE, hedge and real estate funds). Turn this on to keep operating companies only.

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

Keep offerings of at least this size. Offerings marked 'Indefinite' are kept unless you turn off the option below.

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

Keep offerings up to this size. Indefinite offerings are dropped when this is set.

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

Keep filings that report at least this much already raised.

## `keepIndefiniteAmounts` (type: `boolean`):

Funds often report the offering size as 'Indefinite'. With this on they pass the minimum-amount filter.

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

Executive officers, directors and promoters listed on the filing (name, role, city, state).

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

Stop after saving this many filings. Newest filing day first. 0 = no limit.

## Actor input object example

```json
{
  "includeAmendments": false,
  "states": [],
  "excludePooledInvestmentFunds": false,
  "keepIndefiniteAmounts": true,
  "includeRelatedPersons": true,
  "maxItems": 1000
}
```

# Actor output Schema

## `filings` (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 = {
    "states": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("kingly_contest_7cb/sec-form-d-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 = { "states": [] }

# Run the Actor and wait for it to finish
run = client.actor("kingly_contest_7cb/sec-form-d-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 '{
  "states": []
}' |
apify call kingly_contest_7cb/sec-form-d-funding-leads --silent --output-dataset

```

## MCP server setup

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