# SEC Form D Funding Feed: Recently Funded Companies (`hanielazevedo/sec-form-d-funding-feed`) Actor

Recently funded US companies and funds from official SEC EDGAR Form D filings: amount raised, investors, 506(b)/506(c), executives, directors, brokers, address and phone. Filter by state, industry, size. Monitor mode returns only new filings. $0.005 per filing.

- **URL**: https://apify.com/hanielazevedo/sec-form-d-funding-feed.md
- **Developed by:** [Haniel Azevedo](https://apify.com/hanielazevedo) (community)
- **Categories:** Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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 Feed: Recently Funded Companies

Get a daily list of **US companies and funds that just raised money**, straight from official **SEC EDGAR Form D** filings. Each result is one filing with the company, the amount raised, the number of investors, the date of first sale, the exemption used (Rule 506(b), 506(c), 504…), its executives and directors, any paid brokers, and the address and phone number.

No login, no API key, no third-party data: every field is parsed from the filing's own `primary_doc.xml` on sec.gov.

### Who it's for

- **VCs, angels and scouts**: see new rounds in your sector and state a few days after the first sale, often before any press release.
- **Sales and business development** (banking, insurance, payroll, legal, accounting, SaaS, recruiting): a company that just closed a raise has budget. Form D gives you the CEO and directors by name plus the company phone.
- **Fund administrators and placement agents**: track new pooled funds (venture, private equity, hedge funds, real estate) and the brokers selling them.
- **Researchers and journalists**: private-placement activity by industry, size and region.

### How it works

1. Reads the SEC's official daily form index (`/Archives/edgar/daily-index/…/form.YYYYMMDD.idx`) for each business day in your range, newest first.
2. Opens each Form D / D/A filing's `primary_doc.xml` and parses every section of the form.
3. Applies your filters and returns one dataset item per filing.

It follows SEC fair-access rules: a descriptive User-Agent with a contact address and about 5 requests per second (the SEC limit is 10).

### Input

| Field | Default | What it does |
|---|---|---|
| `daysBack` | 7 | Look back N calendar days, ending today (US Eastern) |
| `startDate` / `endDate` | – | Exact date range (YYYY-MM-DD); overrides `daysBack` |
| `maxFilings` | 50 | Stop after this many matching filings |
| `filingType` | `all` | `all`, `new` (Form D only) or `amendments` (D/A only) |
| `states` | – | Issuer state codes, e.g. `["CA","NY"]` |
| `industryGroups` | – | e.g. `["Biotechnology","Other Technology","Venture Capital Fund"]` |
| `minOfferingAmount` | – | Minimum total offering size in USD |
| `includeIndefiniteOfferings` | true | Keep filings whose size is "Indefinite" when a minimum is set |
| `issuerKeyword` | – | Issuer name contains this text |
| `monitorMode` | false | Only filings not delivered on earlier runs (state in the named key-value store `sec-form-d-monitor-state`) |
| `monitorKey` | `default` | Separate "already seen" memory per saved search |
| `maxXmlFetches` | 2000 | Safety cap on filings inspected per run |

Example: new tech and biotech raises in California of $1M or more in the last 7 days:

```json
{"daysBack": 7, "maxFilings": 100, "filingType": "new", "states": ["CA"], "industryGroups": ["Other Technology", "Biotechnology", "Computers"], "minOfferingAmount": 1000000, "includeIndefiniteOfferings": false}
```

For a daily lead feed, schedule the Actor every weekday with `monitorMode: true` and `daysBack: 3`; you only get (and pay for) filings you have not seen yet.

### Output

One item per filing. Real example (trimmed):

```json
{
  "companyName": "CORGI INSURANCE SERVICES, INC.",
  "cik": "2074564",
  "formType": "D",
  "filingDate": "2026-10-30",
  "accessionNumber": "0002074564-26-000006",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/2074564/000207456426000006/0002074564-26-000006-index.htm",
  "xmlUrl": "https://www.sec.gov/Archives/edgar/data/2074564/000207456426000006/primary_doc.xml",
  "isAmendment": false,
  "previousAccessionNumber": null,
  "entityType": "Corporation",
  "entityTypeOther": null,
  "jurisdictionOfIncorporation": "DELAWARE",
  "yearOfIncorporation": 2024,
  "yearOfIncorporationStatus": "withinFiveYears",
  "address": {
    "street1": "425 BUSH ST",
    "street2": "STE 500",
    "city": "SAN FRANCISCO",
    "stateOrCountry": "CA",
    "stateOrCountryDescription": "CALIFORNIA",
    "zipCode": "94108"
  },
  "city": "SAN FRANCISCO",
  "state": "CA",
  "stateDescription": "CALIFORNIA",
  "phone": "310-693-2267",
  "industryGroup": "Insurance",
  "investmentFundType": null,
  "revenueRange": "Decline to Disclose",
  "federalExemptions": [
    "06b"
  ],
  "federalExemptionLabels": [
    "Rule 506(b)"
  ],
  "securitiesOffered": [
    "Equity"
  ],
  "durationMoreThanOneYear": false,
  "isBusinessCombination": false,
  "totalOfferingAmount": 29999999,
  "totalOfferingAmountIndefinite": false,
  "totalAmountSold": 29999558,
  "totalRemaining": 441,
  "totalRemainingIndefinite": false,
  "minimumInvestment": 0,
  "totalInvestors": 11,
  "hasNonAccreditedInvestors": false,
  "nonAccreditedInvestors": null,
  "dateOfFirstSale": "2026-10-19",
  "firstSaleYetToOccur": false,
  "salesCommissions": 0,
  "findersFees": 0,
  "relatedPersons": [
    {
      "name": "Nicolas Laqua",
      "roles": [
        "Executive Officer",
        "Director"
      ],
      "clarification": null,
      "city": "San Francisco",
      "stateOrCountry": "CA"
    },
    {
      "name": "Emily Zeng Yuan",
      "roles": [
        "Executive Officer",
        "Director"
      ],
      "clarification": null,
      "city": "San Francisco",
      "stateOrCountry": "CA"
    }
  ],
  "salesCompensationRecipients": [],
  "brokers": [],
  "otherIssuers": [],
  "signerName": "Emily Yuan",
  "signerTitle": "COO",
  "signatureDate": "2026-10-30",
  "source": "SEC EDGAR",
  "scrapedAt": "2026-11-01T14:30:00+00:00"
}
```

Main fields: `companyName`, `cik`, `formType` (D or D/A), `filingDate`, `accessionNumber`, `filingUrl`, `xmlUrl`, `address`, `state`, `phone`, `entityType`, `yearOfIncorporation`, `industryGroup`, `investmentFundType`, `totalOfferingAmount`, `totalAmountSold`, `totalRemaining`, `minimumInvestment`, `totalInvestors`, `dateOfFirstSale`, `federalExemptions` / `federalExemptionLabels`, `relatedPersons` (name and roles: Executive Officer, Director, Promoter), `salesCompensationRecipients` and `brokers`, `otherIssuers`, `previousAccessionNumber` (amendments).

Amounts reported as "Indefinite" (common for funds) come back as `null` with `totalOfferingAmountIndefinite: true`. A `RUN_SUMMARY` record in the run's key-value store shows days scanned, filings inspected, filtered out by reason and charged.

### Pricing

**$0.005 per filing returned** (pay per event `filing`), plus Apify's standard $0.00005 Actor start. 50 filings = $0.25; 1,000 filings = $5. Filings that are inspected but filtered out, or that fail to parse, are free. The run stops at your max charge limit.

### Notes

- Form D is filed within 15 days after the first sale, so "recently funded" means the filing date; check `dateOfFirstSale` for when money first came in.
- Many filings are investment funds and real-estate SPVs. Use `industryGroups` or `filingType: "new"` to focus on operating companies.
- Data is public SEC data. Use it in line with applicable laws (e.g. CAN-SPAM, GDPR) when contacting people.

# Actor input Schema

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

Look back this many calendar days, ending today (US Eastern). Ignored for the start when Start date is set. Weekends have no EDGAR filings.

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

First filing date to include (YYYY-MM-DD). Overrides Last N days.

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

Last filing date to include (YYYY-MM-DD). Defaults to today. Newest filings are returned first.

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

Stop after this many matching filings. You pay $0.005 per filing returned.

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

Form D is a new offering notice; D/A is an amendment (annual update or changed amounts).

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

Two-letter state or EDGAR country codes of the issuer's principal place of business, e.g. CA, NY, TX. Empty = all.

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

Form D industry group or fund type, exact wording (case-insensitive), e.g. Biotechnology, Other Technology, Computers, Commercial, Residential, Other Real Estate, Pooled Investment Fund, Venture Capital Fund, Private Equity Fund, Hedge Fund. Empty = all.

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

Only filings whose total offering amount is at least this much. Leave empty for no minimum.

## `includeIndefiniteOfferings` (type: `boolean`):

Many funds report the offering size as 'Indefinite'. When a minimum amount is set, keep them (on) or drop them (off).

## `issuerKeyword` (type: `string`):

Only issuers whose name contains this text (case-insensitive), e.g. 'therapeutics', 'AI', 'Capital'.

## `monitorMode` (type: `boolean`):

Remember delivered accession numbers in the named key-value store 'sec-form-d-monitor-state' and skip them on later runs. Use with a daily schedule to get only new filings.

## `monitorKey` (type: `string`):

Separate memory per saved search, e.g. 'ca-biotech'. Runs with the same key share one 'already seen' list.

## `maxXmlFetches` (type: `integer`):

Safety cap on how many Form D documents are downloaded and checked against your filters per run (narrow filters need more). Inspected but filtered-out filings are free.

## Actor input object example

```json
{
  "daysBack": 7,
  "maxFilings": 50,
  "filingType": "all",
  "states": [
    "CA",
    "NY"
  ],
  "industryGroups": [
    "Other Technology",
    "Biotechnology"
  ],
  "includeIndefiniteOfferings": true,
  "monitorMode": false,
  "monitorKey": "default",
  "maxXmlFetches": 2000
}
```

# Actor output Schema

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

One item per Form D / D/A filing that matches the filters, parsed from the filing's official primary_doc.xml on SEC EDGAR.

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

Days scanned, filings inspected, filtered out (by reason), pushed and charged, SEC requests made and why the run stopped.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("hanielazevedo/sec-form-d-funding-feed").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 = {}

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

```

## MCP server setup

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

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/CmwDfqnSmzhNYqKHR/builds/8gE9DYvrpYAGNpY8Y/openapi.json
