# SEC Form D, Form C & Reg A Tracker: Startup Funding Rounds (`charlesmarkette/sec-form-d-funding-tracker`) Actor

New startup funding rounds from official SEC EDGAR filings: Form D private placements, Form C crowdfunding (with company websites) and Reg A offerings. Filter by date, state, industry and amount, or schedule daily runs for new filings only. Company data only. $3.50 per 1,000 filings.

- **URL**: https://apify.com/charlesmarkette/sec-form-d-funding-tracker.md
- **Developed by:** [Charles Markette](https://apify.com/charlesmarkette) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 sec 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

**SEC Funding Rounds Tracker** finds companies that just raised money, straight from the SEC's official **EDGAR** filings. It reads **Form D** private placements (Reg D), **Form C** crowdfunding raises (Reg CF) and **Form 1-A** Reg A offerings, and returns one clean row per filing: company, state, industry, amount raised and sold, investors, funding portal, website and filing links. It's built for **sales and business development teams, VCs and deal scouts, recruiters, journalists and researchers** who want a daily feed of new startup funding rounds without paying for a database subscription.

- **Form D, private placements (Reg D).** Venture and angel rounds, private companies, real estate deals and funds. Each result has the company, industry, state, how much is being raised, how much is already sold, the number of investors, the date of first sale and the exemption used.
- **Form C, crowdfunding raises (Reg CF).** Startups raising from the public on funding portals such as Wefunder, StartEngine or Republic. Each result has the **company website**, the intermediary (funding portal or broker-dealer, by legal name), the security offered and its price, the target and maximum raise, the deadline, the number of employees and headline financials (assets, cash, revenue, net income).
- **Form 1-A, Reg A offerings ("mini-IPOs").** Companies raising up to $75M from the public under Regulation A. Each result has the tier (Tier 1 or Tier 2), the security type and price, the total offering amount, the SIC code, the number of full-time employees, whether the financial statements are audited, and headline financials.

Filter by date, state, industry, size, company age or keyword, or schedule a daily run that returns **only new filings**. Download the results as CSV, Excel or JSON, call them through the Apify API, or send them on to Google Sheets, Slack or email with the related Actors below.

US companies raising money under Regulation D generally file a Form D within 15 days of their first sale. Crowdfunding issuers must file a Form C before they start raising, and Reg A issuers file a Form 1-A offering statement before the SEC qualifies the offering. All three are public, early signals that a company is raising money, often before any press release.

### Why use SEC Funding Rounds Tracker?

- **Official source only.** It reads EDGAR's daily form indexes and each filing's XML, stays well under the SEC's fair-access limit (a few requests a second, with an identified User-Agent), and does no website scraping. There's no proxy to configure and no login.
- **Three SEC forms in one tool.** Run Form D, Form C, Form 1-A or any mix of them, with the same filters, in one dataset.
- **Company data only.** Form D also lists the names and addresses of executives, directors and promoters. This Actor never returns them. The company's own street address (and, for Form D and Form 1-A, phone) are available as an opt-in.
- **Clean, typed output.** Amounts are numbers, or the text `Indefinite` when the filer says so. Exemption codes are translated (for example, `06b` becomes "Rule 506(b)"). Amendments are flagged, and Form D amendments also name the filing they amend.
- **Daily monitoring built in.** Turn on *Only filings not seen in earlier runs* and schedule the Actor, and each run returns just the new filings. Each saved task keeps its own memory.
- **Predictable price.** You pay per filing returned. Filings your filters exclude are free, and a maximum cost per run is respected.

### Use cases

- **Sales prospecting:** companies that just raised a round have budget. Filter by state and industry, and push new rows to your CRM or a Google Sheet every morning.
- **VC and angel deal sourcing:** spot young companies raising their first rounds (*Young companies only*) or crowdfunding campaigns on Wefunder, StartEngine and Republic before they close.
- **Recruiting:** freshly funded startups are about to hire.
- **Market and competitor research:** track funding activity by industry, state or offering size over a date range of up to 400 days per run.
- **Journalism and newsletters:** a daily digest of new raises in your region or sector.
- **AI agents and data pipelines:** a structured, typed funding-rounds feed through the Apify API.

### How to use SEC Funding Rounds Tracker

1. Click **Try for free** (or **Start**) on this page to open the Actor in Apify Console.
2. Pick the **Offering types**: Form D, Form C, Form 1-A or any mix.
3. Set the date range (**Days back**, default 7, or **From date** / **To date**) and any filters: states, industry groups, offering size, young companies only, keyword.
4. Click **Start**. Results appear in the **Output** tab as a table; export them as CSV, Excel or JSON, or read them through the API.
5. For a daily feed, turn on **Only filings not seen in earlier runs**, save the input as a **task**, and add a **schedule** (for example every weekday morning).

#### Send new filings somewhere after each run

Use Apify integrations to pass each run's dataset to another Actor automatically:

1. Open your saved task, go to the **Integrations** tab and click **Add integration**.
2. Search for [Google Sheets Sync](https://apify.com/charlesmarkette/google-sheets-sync) (or the notification Actor, see below), choose to start it when the run **succeeded**, and set its input. Apify fills in `{{resource.defaultDatasetId}}` with this run's dataset:

```json
{
  "spreadsheet": "https://docs.google.com/spreadsheets/d/…",
  "sheetName": "New funding rounds",
  "mode": "upsert",
  "keyFields": ["accessionNumber"],
  "datasetId": "{{resource.defaultDatasetId}}",
  "serviceAccountKey": "…"
}
```

3. Save, then use the integration's test menu to try it on a past run.

To get a Slack message or an email digest instead, connect [Send Email Report & Slack, Discord, Teams, Telegram Alerts](https://apify.com/charlesmarkette/send-email-report-slack-discord-teams-telegram-alerts) the same way.

### Input example

```json
{
  "offeringTypes": ["formD", "formC"],
  "daysBack": 7,
  "includeAmendments": false,
  "states": ["CA", "NY", "TX"],
  "excludePooledFunds": true,
  "minOfferingAmount": 1000000,
  "newCompaniesOnly": true,
  "onlyNewSinceLastRun": true,
  "maxResults": 500
}
```

| Field | What it does |
|---|---|
| Offering types | Form D (private placements), Form C (crowdfunding), Form 1-A (Reg A), or any mix. |
| Days back / From date / To date | Which filing dates to read. The default is the last 7 days; one run covers at most 400 days. |
| Include amendments | Off returns new offerings only (`D`, `C`, `1-A`). On also returns amendments (`D/A`, `C/A`, `1-A/A`). |
| Issuer states | Two-letter codes, for example `CA`, `NY`, `TX`. |
| Industry groups | Partial match on the filed industry group, for example `Biotechnology`, `Other Technology`. |
| Exclude pooled investment funds | On by default, so you see operating companies rather than hedge, PE and VC funds. |
| Minimum / maximum offering amount | In USD. |
| Young companies only | Incorporated in the filing year or the two years before it, or not yet formed. |
| Keyword | Matches the company name, industry, fund type, website, security offered or intermediary (funding portal). |
| Only filings not seen in earlier runs | For scheduled monitoring: skips filings this saved task (or this exact filter set) already returned. |
| Include company street address and phone | Opt-in. Address and phone as the company filed them; for very small companies this can be a home address. |
| Max results | Caps the run (default 1,000). |

### Output example

Every row has `offeringType`, `issuerName`, `cik`, `stateOrCountry`, `dateFiled`, `formType` and the filing links, and every row has the same columns (fields a form doesn't have are `null`). The **Output** tab shows an overview table with the most useful columns.

A Form D row:

```json
{
  "accessionNumber": "0001234567-26-000001",
  "offeringType": "Reg D private placement (Form D)",
  "formType": "D",
  "dateFiled": "2026-10-09",
  "issuerName": "Example Robotics, Inc.",
  "cik": "0001234567",
  "entityType": "Corporation",
  "jurisdictionOfIncorporation": "DELAWARE",
  "yearOfIncorporation": "2024",
  "city": "AUSTIN",
  "stateOrCountry": "TX",
  "industryGroup": "Other Technology",
  "revenueRange": "Decline to Disclose",
  "exemptions": ["06b"],
  "exemptionsDescribed": ["Rule 506(b)"],
  "securitiesOffered": ["equity"],
  "dateOfFirstSale": "2026-09-30",
  "totalOfferingAmount": 4000000,
  "totalAmountSold": 3250000,
  "totalRemaining": 750000,
  "totalInvestors": 14,
  "hasNonAccreditedInvestors": false,
  "minimumInvestment": 25000,
  "isAmendment": false,
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/.../...-index.htm",
  "xmlUrl": "https://www.sec.gov/Archives/edgar/data/.../primary_doc.xml"
}
```

A Form C row (abridged):

```json
{
  "accessionNumber": "0001234568-26-000002",
  "offeringType": "Reg CF crowdfunding (Form C)",
  "formType": "C",
  "dateFiled": "2026-10-09",
  "issuerName": "Example Coffee Co.",
  "stateOrCountry": "OR",
  "website": "https://example-coffee.com",
  "fundingPortal": "Example Funding Portal LLC",
  "securityOffered": "Common Stock",
  "pricePerSecurity": 1.5,
  "targetAmount": 25000,
  "maximumOfferingAmount": 1235000,
  "offeringDeadline": "2027-01-31",
  "currentEmployees": 6,
  "totalAssets": 182000,
  "revenue": 240000,
  "netIncome": -35000,
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/.../...-index.htm"
}
```

Both examples are illustrative, not real filings. Form D rows also include previous names, co-issuers, fund type, net-asset-value range, commissions and finder's fees, and use of proceeds. Form 1-A rows add `regATier`, `securityOffered`, `pricePerSecurity`, `issuerAggregateOffering`, `totalAggregateOffering`, `sicCode`, `fullTimeEmployees`, `financialStatementAuditStatus` and the same headline financials.

### How much does it cost to track SEC funding rounds?

SEC Funding Rounds Tracker uses pay-per-event pricing: **$0.0035 per SEC filing returned** ($3.50 per 1,000), whatever the form, plus Apify's $0.00005 run start fee. Filings your filters exclude are free.

**Apify Store discounts:** the price above is for Apify's Free plan. Paid plans pay less per 1,000 filings: $3.00 on Starter, $2.50 on Scale, $2.00 on Business. The "from" price at the top of the Store page is the Business price.

*Examples use the Free-plan rate. Where an example doesn't add it, each run also has its run-start charge, counted per GB of Actor memory (minimum one; one at the default memory); Apify Proxy (where used) is billed separately.*

**Worked example:** a weekly run that returns 200 filings costs 200 × $0.0035 = **$0.70** (plus $0.00005). A daily monitor with *Only filings not seen in earlier runs* that returns, say, 30 new filings per business day costs about 30 × $0.0035 × 21 business days ≈ **$2.21 per month**.

If you set a maximum cost per run, the Actor stops reading new filings when it gets there and remembers what it has already returned, so the next run carries on.

### FAQ

#### How fresh is the data?

EDGAR publishes a daily index for each business day after that day ends, so the most recent filings can take up to a day to appear. Schedule a morning run to pick up the previous business day.

#### How do I get only new funding rounds every day?

Turn on **Only filings not seen in earlier runs**, save the input as a task and schedule it. The memory belongs to the saved task (or, without a task, to the exact filter set), so changing the filters of an unsaved run starts a fresh memory.

#### Does it return executives, founders or investors' names?

No. Only company (issuer) and offering data is read. Names, addresses and signatures of individual people are never returned.

#### Why don't Form C filings show up when I filter by industry?

Form C has no industry group, so the industry filter excludes all Form C filings (the run log says so). Use **Keyword** instead, which also searches the company name, website, security offered and funding portal.

#### Which amount do the minimum and maximum filters use?

The total offering amount for Form D, the maximum raise (or the target, if there's no maximum) for Form C, and the total aggregate offering for Form 1-A. Filings with an `Indefinite` amount are excluded when either filter is set.

#### The run failed with "SEC is refusing requests (HTTP 403/429)". What now?

The SEC temporarily limits automated traffic. The Actor already backs off and pauses; if the SEC keeps refusing, it stops and saves what it returned. Try again later.

#### The run asks for an SEC contact email.

The SEC asks automated tools to identify themselves. Normally the Actor has one configured; if a run asks for it, fill in **SEC contact email** with your own address.

#### Can I get historical filings?

Yes. Set **From date** and **To date**. One run covers at most about 13 months (400 days); split longer periods into several runs.

#### Is this investment advice? Is the data verified?

No to both. Form D, Form C and Form 1-A are filed by the issuers and aren't verified by the SEC, so treat amounts and financials as self-reported. This tool is not affiliated with or endorsed by the SEC.

### Limitations

- New filings appear the day after they're filed (EDGAR's daily index).
- Only the original filing types listed above, and optionally their amendments. Other EDGAR forms (10-K, 8-K, Form 4 …) aren't covered.
- Form C filings have no industry group; Form C has no issuer phone number.
- A run reads up to 400 days of filings and stops at **Max results** (default 1,000).
- "Only new" remembers the most recent 200,000 filings per task or filter set.

### Related Actors

SEC Funding Rounds Tracker is part of a small suite of Actors that work together after any scraper:

| Actor | Use it to |
|---|---|
| [Google Sheets Sync](https://apify.com/charlesmarkette/google-sheets-sync) | Upsert new funding rounds into a Google Sheet, keyed by `accessionNumber`. |
| [Send Email Report & Slack, Discord, Teams, Telegram Alerts](https://apify.com/charlesmarkette/send-email-report-slack-discord-teams-telegram-alerts) | Get a Slack message or email digest of each day's new rounds. |
| [Merge & Deduplicate Datasets](https://apify.com/charlesmarkette/merge-deduplicate-datasets-only-new-items) | Merge several runs or filter sets into one list without duplicates. |
| [Dataset Delivery](https://apify.com/charlesmarkette/dataset-delivery-export-to-sftp-ftp-dropbox-google-drive) | Drop a daily CSV or Excel file on an SFTP server, Dropbox or Google Drive. |
| [Vector DB Sync](https://apify.com/charlesmarkette/vector-db-sync-pinecone-qdrant-rag-loader-delta-updates) | Load any dataset into Pinecone or Qdrant for RAG. |

# Actor input Schema

## `offeringTypes` (type: `array`):

Form D covers private rounds (VC, angels, real estate, funds). Form C covers startups raising from the public on funding portals such as Wefunder or StartEngine, and includes the company website, funding portal, target and maximum raise, deadline and headline financials. Form 1-A covers Regulation A offerings (up to $75M, often called mini-IPOs), with tier, amounts, employees and headline financials.

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

How many calendar days back from today to read (ignored if 'From date' is set). EDGAR publishes on business days.

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

Optional start date, YYYY-MM-DD.

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

Optional end date, YYYY-MM-DD. Defaults to today.

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

Amendments update earlier filings (e.g. more money sold, new deadline). Off = new offerings only.

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

Two-letter codes of the issuer's principal place of business as filed, e.g. CA, NY, TX. Empty = all.

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

Matches the Form D industry group (case-insensitive, partial match), e.g. 'Biotechnology', 'Other Technology', 'Computers', 'Restaurants', 'Other Real Estate'. Empty = all. Form C filings have no industry group, so they are excluded when this filter is set.

## `excludePooledFunds` (type: `boolean`):

Skip hedge, PE and VC fund filings to see operating companies only. (Form D only.)

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

Only offerings at least this size (Form D: total offering amount; Form C: maximum offering amount). 'Indefinite' amounts are excluded when this is set.

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

Only offerings at most this size (same amounts as the minimum). 'Indefinite' amounts are excluded when this is set.

## `newCompaniesOnly` (type: `boolean`):

Only issuers incorporated in the filing year or the two years before it, or not yet formed.

## `keyword` (type: `string`):

Case-insensitive match in company name, industry, fund type, website or security offered.

## `onlyNewSinceLastRun` (type: `boolean`):

Skip filings that this saved task (or this exact filter set) already returned in earlier runs. Ideal for scheduled daily runs.

## `includeIssuerContact` (type: `boolean`):

Adds the issuer's street address and phone as filed. For very small issuers this can be a home address. Information about individual people is never returned.

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

Stop after returning this many filings.

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

Only needed if the Actor owner hasn't configured one. SEC asks automated tools to identify themselves.

## Actor input object example

```json
{
  "offeringTypes": [
    "formD"
  ],
  "daysBack": 7,
  "includeAmendments": false,
  "excludePooledFunds": true,
  "newCompaniesOnly": false,
  "onlyNewSinceLastRun": false,
  "includeIssuerContact": false,
  "maxResults": 1000
}
```

# Actor output Schema

## `fundingRounds` (type: `string`):

All returned Form D and Form C filings, shown in the overview table.

# 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("charlesmarkette/sec-form-d-funding-tracker").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("charlesmarkette/sec-form-d-funding-tracker").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 charlesmarkette/sec-form-d-funding-tracker --silent --output-dataset

```

## MCP server setup

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

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/whm3m6mitkdSk8bBt/builds/KOkG5L2WryUg3Wn5N/openapi.json
