# Startup Funding Rounds Tracker: SEC Form D Raises, Daily (`conserving_celerytop/form-d-funding-rounds`) Actor

Get startup funding rounds from SEC Form D filings: one row per EDGAR filing with company, industry, city and state, amount raised, offering size, first sale date, investors and exemptions. $14.90 per 1,000 filings, less on Scale and Business. Company fields only. MCP-ready, no login.

- **URL**: https://apify.com/conserving\_celerytop/form-d-funding-rounds.md
- **Developed by:** [Don Mangu](https://apify.com/conserving_celerytop) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.90 / 1,000 filings

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

## Startup Funding Rounds Tracker: SEC Form D Filings

A startup funding rounds tracker built on SEC Form D filings. When a US company or fund raises money privately under Regulation D, it files a Form D with the SEC within 15 days of the first sale. This Actor reads those filings from SEC EDGAR for the dates you choose and returns one row per filing: company name, industry group, city and state, total offering amount, amount sold so far, date of first sale, number of investors and exemptions claimed.

Pay per filing: $14.90 per 1,000 filings on the Free and Starter plans, $13.90 on Scale and $12.90 on Business. Filings that do not match your filters are not charged. No login, no API key.

Rows hold company fields only. Names of executives, directors and promoters are never included.

### How to track recent funding rounds

1. Open the Actor and keep the example input: the last 7 days, up to 50 filings.
2. Optional: filter by **Industry groups** (for startups, Other Technology, Computers or Telecommunications), **States or countries**, **Minimum amount raised** or **Company name keywords**.
3. Click **Start** and download the table as CSV, Excel or JSON.
4. To follow new raises, schedule the Actor daily with **Days back** set to 1 or 2.

### What Form D filings show

Form D filings show who raised money, how much, when the first sale happened and under which exemption (for example 06b for Rule 506(b)). Use them to find recently funded startups for sales prospecting, to follow venture and private equity fund raises, or to watch raises in one state or industry.

Example: 200 technology filings from the last 30 days cost 200 x $0.0149 = $2.98 on the Free or Starter plan.

### How much does it cost to get Form D filings?

The Actor uses pay per event. You pay for each filing delivered to your dataset ("filing" event): $14.90 per 1,000 filings ($0.0149 per filing) on Apify's Free and Starter plans, $13.90 per 1,000 on Scale and $12.90 per 1,000 on Business, plus the small Apify start fee. Filings that are read but do not match your filters are not charged. Set a spending limit on the run and the Actor stops when it is reached.

Worked example: 200 technology filings from the last 30 days cost 200 x $0.0149 = $2.98 on the Free or Starter plan ($2.58 on Business).

### Form D input example

```json
{
    "daysBack": 30,
    "industryGroups": ["Other Technology", "Computers"],
    "states": ["CA", "NY"],
    "minAmountRaised": 1000000,
    "includeAmendments": false,
    "maxResults": 200
}
```

### Form D output example

Illustrative row (made-up company):

```json
{
    "accessionNumber": "0001234567-26-000123",
    "filingDate": "2026-09-24",
    "formType": "D",
    "isAmendment": false,
    "issuerName": "EXAMPLE ROBOTICS INC.",
    "cik": "1987654",
    "entityType": "Corporation",
    "yearOfIncorporation": 2024,
    "incorporationPeriod": "within_five_years",
    "jurisdiction": "DELAWARE",
    "city": "SAN FRANCISCO",
    "state": "CA",
    "country": "UNITED STATES",
    "industrySector": "Technology",
    "industryGroup": "Other Technology",
    "revenueRange": "Decline to Disclose",
    "totalOfferingAmount": 7300000,
    "totalAmountSold": 3796226,
    "totalRemaining": 3503774,
    "minimumInvestment": 0,
    "dateOfFirstSale": "2026-09-10",
    "numberOfInvestors": 5,
    "federalExemptions": ["06b"],
    "isEquity": true,
    "isDebt": false,
    "securityTypes": ["Equity"],
    "salesCommissions": 0,
    "findersFees": 0,
    "salesCompensationFirms": [{ "name": "Example Securities, LLC", "crdNumber": "123456" }],
    "filingUrl": "https://www.sec.gov/Archives/edgar/data/1987654/000123456726000123/0001234567-26-000123-index.htm"
}
```

Each row also has previousAccessionNumber, entityTypeOther, stateOrCountryCode, stateOrCountryDescription, investmentFundType, netAssetValueRange, offeringAmountIndefinite, firstSaleYetToOccur, hasNonAccreditedInvestors, numberNonAccreditedInvestors, isBusinessCombination, offeringMoreThanOneYear, salesCompensationRecipients, statesOfSolicitation, foreignSolicitation, otherIssuers, previousNames and xmlUrl. The STATS record in the key-value store lists how many filings were read, delivered and charged, and why the run stopped.

### Related Actors

- [Company Hiring Signals](https://apify.com/conserving_celerytop/company-hiring-signals): Use it to get a 0 to 100 hiring score and open job counts for each company on your list.
- [Company Name to Domain](https://apify.com/conserving_celerytop/company-name-to-domain): Use it to turn a list of company names into official website domains.
- [Company Registry Search](https://apify.com/conserving_celerytop/open-company-registries): Use it to look up company records in the GLEIF, Norwegian (Brreg) and Finnish (PRH) registers.
- [Tech Stack Detector](https://apify.com/conserving_celerytop/website-tech-stack-detector): Use it to see the CMS, analytics, frameworks, CDN and hosting behind a list of websites.

### FAQ about SEC Form D data

#### Is it legal to use SEC Form D data?

Form D filings are public records published by the SEC on EDGAR. The SEC states that information on sec.gov "is considered public information and may be copied or further distributed by users of the web site without the SEC's permission" (sec.gov privacy and security policy). This Actor is not affiliated with, endorsed by or connected to the U.S. Securities and Exchange Commission. It leaves out the names of people listed in filings.

#### How is this different from Crunchbase?

Crunchbase combines many sources and needs an account. This Actor reads only the SEC's own Form D filings, so it covers US private raises that were filed, including companies no news site wrote about, but it has no investor names or round labels such as Series A. Not affiliated with Crunchbase.

#### What are the limits?

The SEC allows 10 requests per second per user. This Actor sends at most 5 (4 by default) with a declared User-Agent, so one filing takes about a quarter of a second: 1,000 filings take about 5 minutes. One run covers at most 366 days and 10,000 results. Form D amounts are self-reported, "Indefinite" amounts are returned as null, and many companies give no revenue range. When a filer typed a street line into the city field, city is returned as null.

#### Why did my run return fewer rows than expected?

Industry, place and amount filters are checked after a filing is read, so narrow filters read many filings for each match. Raise **Maximum filings to read** or widen the dates. EDGAR adds each business day's filings to its daily list in the evening, US Eastern time, so today's filings may not be there yet.

#### What happens if the SEC slows the Actor down?

It waits as the SEC asks (Retry-After) and retries up to 2 times. On a block page or repeated refusals it stops at once, keeps the rows already delivered and explains why in the status message.

# Actor input Schema

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

Read filings from this many days, counting the end date. 7 reads the end date and the 6 days before it. Leave as is when you set Filed from.

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

Read filings filed on or after this date (YYYY-MM-DD). Overrides Days back. At most 366 days per run.

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

Read filings filed on or before this date (YYYY-MM-DD). Empty means today. EDGAR publishes each business day's index in the evening, US Eastern time.

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

Return filings in these Form D industry groups only (item 4 of the form). Empty means every group. Pick Other Technology, Computers and Telecommunications for tech startups; Pooled Investment Fund is venture, private equity and hedge funds.

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

Return filings whose company address is in one of these places. Use US state codes or names (CA, New York) or a country name as EDGAR writes it (Germany, United Kingdom). Empty means everywhere.

## `minAmountRaised` (type: `integer`):

Return filings whose total amount sold so far is at least this many US dollars. Filings that report no amount sold are left out when you set this.

## `issuerNameKeywords` (type: `array`):

Return companies whose name contains one of these words or phrases, as whole words in any letter case. End a word with \* to match its start: bio\* matches Biotech and Bio Labs.

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

Also return amended filings (Form D/A). A company files one each year while an offering is open, or to correct a filing, so amendments are often not new rounds.

## `maxResults` (type: `integer`):

Stop after this many filings. Each filing is one result and one charge. Newest filing days come first.

## `maxFilingsToRead` (type: `integer`):

Read at most this many filings, matched or not, then stop. Empty means 3 times Maximum results, at least 5,000. Filters on industry, place and amount are checked after a filing is read, so narrow filters read more filings.

## `maxRequestsPerSecond` (type: `integer`):

Send at most this many requests per second to sec.gov. The SEC allows 10; this Actor stays at 5 or fewer.

## `userAgent` (type: `string`):

Send this name and contact email with every request, as the SEC asks of automated tools. Replace it with your own name and email if you prefer.

## Actor input object example

```json
{
  "daysBack": 7,
  "states": [
    "CA",
    "NY",
    "Germany"
  ],
  "issuerNameKeywords": [
    "ai",
    "therapeutics",
    "bio*"
  ],
  "includeAmendments": false,
  "maxResults": 50,
  "maxRequestsPerSecond": 4,
  "userAgent": "Don Mangu don.mangu.data@gmail.com"
}
```

# Actor output Schema

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

Dataset items: issuerName, filingDate, formType, industryGroup, city, state, country, totalAmountSold, totalOfferingAmount, dateOfFirstSale, numberOfInvestors, federalExemptions, revenueRange and filingUrl, plus every other field in the dataset schema.

## `stats` (type: `string`):

STATS record: dates read, filings read and delivered, events charged, filings that could not be read, requests, retries and the stop reason.

# 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 = {
    "daysBack": 7,
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("conserving_celerytop/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 = {
    "daysBack": 7,
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("conserving_celerytop/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 '{
  "daysBack": 7,
  "maxResults": 50
}' |
apify call conserving_celerytop/form-d-funding-rounds --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,conserving_celerytop/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/yMg3569BEnYg5qkpM/builds/3kCSgEHitPCxnFYUa/openapi.json
