# SEC Form D Newly-Funded Company Lead Extractor (`ayeeyee/sec-formd-funded-company-lead-extractor`) Actor

Verified sales leads from companies that JUST filed an SEC Form D raise: MX/DNS emails + phones + socials + tech stack from the company's OWN website, the raise amount as a funding-readiness tier, officers + industry + state, and a newly-funded flag. Public SEC EDGAR, no keys. Per-result pricing.

- **URL**: https://apify.com/ayeeyee/sec-formd-funded-company-lead-extractor.md
- **Developed by:** [Virtual Footprint LLC](https://apify.com/ayeeyee) (community)
- **Categories:** Lead generation, Business, Marketing
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 funded company lead with contacts

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEC Form D Newly-Funded Company Lead Extractor

Turn **every company that just filed an SEC Form D** into a verified sales lead — with the raise amount as a budget tier, the officers who signed, and MX/DNS-verified contact emails pulled from the funded company's **own** website.

Freshly-funded companies are the single highest-buying-intent B2B segment in existence: cash just landed, so they're buying — hiring, tools, infrastructure, agencies, marketing. This Actor finds them the day they file, verifies they're reachable, and bills you **only for leads with a real contact** (never for an empty/stale email).

- **Source:** the U.S. SEC's public **EDGAR** archive — federal regulatory data, the cleanest, lowest-ToS-risk source there is. No API key, no proxy, no anti-bot, no compose cost.
- **Discovery:** the EDGAR `form.idx` full-index lists **every** Form D filing (2,200+/quarter; ~24,000/year).
- **Funding details:** the Form D `primary_doc.xml` carries the **raise amount** (`totalOfferingAmount` → funding-readiness budget tier), `totalAmountSold`, industry, issuer address/phone, the signing officers, # investors, and the signature date.
- **Verified contact:** the funded company's **own** website is resolved (Form D carries no URL, so the entity name is slugified into candidate domains and validated against distinctive company-name tokens or the filing city) and enriched with MX/DNS-verified emails + NANP phones + socials + tech stack + an A–D lead score.
- **Pricing:** pay-per-verified-result — `$0.008` per funded company that returns a real contact signal, `$0.003` when it yields an MX/DNS-verified email, `$0.001` when the filing is freshly signed (within your window). Filings with no resolvable company website are **honestly dropped, not billed**.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `startDate` / `endDate` | string (YYYY-MM-DD) | 30 days ago → today | Filing-date range. Scans every EDGAR quarter the range touches. |
| `state` | string | — | Optional 2-letter issuer-state filter (e.g. `CA`). |
| `industryKeyword` | string | — | Optional keyword the Form D industry must contain (e.g. `Biotechnology`, `Restaurants`, `Other Technology`). |
| `companies` | array | `[]` | Optional explicit company names/domains to enrich directly (skips discovery). |
| `maxFilings` | integer | `25` | Cap on filings parsed (newest first, deduped by company). |
| `includeAmendments` | boolean | `true` | Include D/A amendments (often carry the latest raise amount). |
| `fundedWithinDays` | integer | `0` | Flag filings signed within the trailing N days as `newlyFunded` (0 = off). |
| `verifyEmails` | boolean | `true` | MX/DNS-validate the best contact email. |
| `concurrency` | integer | `3` | Parallelism (1–6). |
| `proxyConfiguration` | object | — | Optional; works without a proxy. |

#### Example input

```json
{
  "startDate": "2026-06-01",
  "endDate": "2026-07-20",
  "maxFilings": 50,
  "fundedWithinDays": 30,
  "verifyEmails": true
}
```

### Output (one lead per funded company, deduped by CIK)

```json
{
  "companyName": "Kai XR, Inc.",
  "cik": "2146013",
  "accession": "0002146013-26-000001",
  "formType": "D",
  "dateFiled": "2026-07-17",
  "signatureDate": "2026-07-17",
  "companyWebsite": "https://kaixr.com",
  "websiteHost": "kaixr.com",
  "entityType": "Corporation",
  "industry": "Other Technology",
  "city": "COVINA",
  "state": "CA",
  "stateDescription": "CALIFORNIA",
  "jurisdiction": "DELAWARE",
  "totalOffering": 2702422.0,
  "totalSold": 2552422.0,
  "totalRemaining": 150000.0,
  "firstSaleDate": "2020-01-31",
  "minimumInvestment": 0.0,
  "numInvestors": 15,
  "signerName": "Kai Frazier",
  "signerTitle": "Chief Executive Officer",
  "officers": [
    { "name": "Kai Frazier", "roles": ["Executive Officer", "Director"] },
    { "name": "Freada Kapor Klein", "roles": ["Director"] }
  ],
  "newlyFunded": true,
  "emails": ["explore@kaixr.com"],
  "emailVerified": true,
  "phones": [],
  "socials": {
    "twitter": "https://twitter.com/ExploreKaiXR",
    "youtube": "https://www.youtube.com/channel/UC0XhbNGFvsdU7Vv6S3JbR2w",
    "instagram": "https://www.instagram.com/explorekaixr/",
    "linkedin": "https://www.linkedin.com/company/kaixr/"
  },
  "techStack": ["Google Analytics", "Google Tag Manager", "HubSpot", "Meta Pixel", "Webflow"],
  "issuerPhone": "510-993-0993",
  "secFilingUrl": "https://www.sec.gov/Archives/edgar/data/2146013/000214601326000001/primary_doc.xml",
  "fundingReadiness": "A",
  "fundingLabel": "Peak buying intent — raised >=$1M (real cash landed); newly-funded, contactable.",
  "leadScore": "A",
  "hasContact": true
}
```

> The sample above is a real lead from a live run (2026-07-20), not fabricated. `explore@kaixr.com` is MX/DNS-verified; the raise, officers, and socials come straight from the SEC filing + kaixr.com.

#### Field notes

- **`fundingReadiness` (A–D)** — powered by the **raise amount** (a budget signal no other lead lane gives us): ≥$1M = A, ≥$250K = B, >$0 = C; no website contact caps at D (not billed). A freshly-signed filing (within `fundedWithinDays`) gets a recency bonus.
- **`leadScore` (A–D)** — signal richness of the *website enrichment*: email(verified)+phone+social+tech.
- **`officers` / `signerName` / `issuerPhone`** — honest filing metadata from the SEC. Per the ToS-clean line, officer personal addresses + the issuer phone are used **only to identify the funded company**; they are never mined for outreach. Contact always comes from the company's **own** website.
- **`hasContact: false`** rows are NOT billed — they're surfaced as context only when a filing resolves to a site with no contact signal.

### Cost

Pay-per-event. A typical run of `maxFilings: 50` (newest filings) yields a handful of contactable operating-company leads (most Form D filings are pooled funds/real-estate LLCs with no public website — honestly dropped). At `$0.008` per funded lead + `$0.003` per verified email, a run returning ~5 verified-email leads costs ~`$0.055`. Zero upstream compose cost (self-contained: SEC EDGAR + the company's own site).

### Performance & troubleshooting

- **"No leads" / low yield** — most Form D filers are small funds/LLCs with no website. Raise `maxFilings` (the newest filings are processed first) or narrow with `industryKeyword` to operating-company industries (e.g. `Restaurants`, `Construction`, `Biotechnology`, `Other Technology`, `Tourism`), which carry real company sites far more often than `Pooled Investment Fund`.
- **EDGAR rate limit** — the SEC documents ~10 req/sec; the fetcher throttles and retries 429/503 with backoff. If you still hit limits, lower `concurrency`.
- **Cross-quarter ranges** — a range spanning multiple quarters fetches one `form.idx` per quarter (one extra ~900 KB file per quarter).
- **Name → domain misses** — Form D has no website field; the slug hop + confidence gate (the candidate site must mention a distinctive company-name token or the filing city) intentionally rejects false positives. Companies with non-obvious domains (e.g. `S.A.`/`GmbH` suffixes, abbreviations) may be honestly dropped.
- **Raise amount `0` / undisclosed** — some filings decline to disclose; `totalSold` is used as the fallback budget signal.

# Actor input Schema

## `startDate` (type: `string`):

Filing-date range start. Defaults to 30 days before today. The Actor scans the SEC EDGAR form.idx for every quarter the range touches.

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

Filing-date range end. Defaults to today.

## `state` (type: `string`):

Optional: keep only filings whose issuer state (Form D stateOrCountry) matches this 2-letter code (e.g. 'CA', 'NY', 'TX'). Applied after the primary-doc fetch; out-of-state filings are dropped (not billed).

## `industryKeyword` (type: `string`):

Optional: keep only filings whose Form D industry (e.g. 'Biotechnology', 'Restaurants', 'Construction', 'Tourism', 'Other Technology') contains this keyword. Applied after the primary-doc fetch; non-matching filings are dropped (not billed).

## `companies` (type: `array`):

Optional: explicit company names or website domains to enrich directly (skips EDGAR discovery; no raise amount / filing metadata — pure contact enrichment of the funded company's own site). A domain like 'kaixr.com' is enriched verbatim; a bare name like 'Kai XR' triggers the name->domain hop.

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

Cap on Form D filings fetched + parsed (newest first, deduped by company). Most filings are pooled funds/real-estate LLCs with no public website -> honestly dropped; raise this to surface more operating-company leads (EDGAR rate limit ~10 req/sec -> modest batches stay well under).

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

Include amendment filings (D/A) in addition to new Form D filings. Amendments often carry the latest raise amount for an ongoing offering. Default true.

## `fundedWithinDays` (type: `integer`):

Flag filings whose signature date falls within the trailing N days as `newlyFunded` (rolling window, 0 = disabled) — the freshly-closed-raise peak-buying-intent signal.

## `verifyEmails` (type: `boolean`):

Validate the best contact email's domain against live MX/DNS records.

## `concurrency` (type: `integer`):

Filings/sites processed in parallel (1-6). Lower this if you hit EDGAR rate limits.

## `proxyConfiguration` (type: `object`):

Optional. Only needed if you hit IP rate limits; the Actor works without a proxy (the keyless SEC EDGAR + public company sites).

## Actor input object example

```json
{
  "startDate": "2026-06-01",
  "endDate": "2026-07-20",
  "state": "",
  "industryKeyword": "",
  "companies": [
    "kaixr.com",
    "aspisotopes.com"
  ],
  "maxFilings": 25,
  "includeAmendments": true,
  "fundedWithinDays": 0,
  "verifyEmails": true,
  "concurrency": 3,
  "proxyConfiguration": {}
}
```

# Actor output Schema

## `results` (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 = {
    "startDate": "",
    "endDate": "",
    "state": "",
    "industryKeyword": "",
    "companies": [],
    "proxyConfiguration": {}
};

// Run the Actor and wait for it to finish
const run = await client.actor("ayeeyee/sec-formd-funded-company-lead-extractor").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 = {
    "startDate": "",
    "endDate": "",
    "state": "",
    "industryKeyword": "",
    "companies": [],
    "proxyConfiguration": {},
}

# Run the Actor and wait for it to finish
run = client.actor("ayeeyee/sec-formd-funded-company-lead-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startDate": "",
  "endDate": "",
  "state": "",
  "industryKeyword": "",
  "companies": [],
  "proxyConfiguration": {}
}' |
apify call ayeeyee/sec-formd-funded-company-lead-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ayeeyee/sec-formd-funded-company-lead-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/JZXka30up8ldxFiKo/builds/51PXkF5fTZVLbPrx0/openapi.json
