# Startup Funding Feed: New Private Raises from SEC Form D (`jtpalms/startup-funding-feed`) Actor

Fresh US private fundraising from official SEC Form D filings: company, state, industry, amount offered and sold, first sale date. Funds and real estate are filtered out. Schedule daily with only-new for funding alerts. A free-data route to funding signals. USD 2.50 per 1,000 filings.

- **URL**: https://apify.com/jtpalms/startup-funding-feed.md
- **Developed by:** [JT Palms](https://apify.com/jtpalms) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 funding 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 Feed: New Private Raises from SEC Form D

**New private raises from the SEC, every business day, with no people data.** This actor reads the official SEC EDGAR daily index and each new Form D filing, and returns one row per raise: company, state, industry, how much was offered and sold, the date of first sale, the type of securities and a link to the filing. Pooled investment funds are left out by default and real estate is always left out. Schedule it with **Only new filings** and it becomes a funding alert that charges only for filings you have not seen.

USD 2.50 per 1,000 filings. A run that finds nothing new costs only the start fee.

### What people use it for

- **Prospect lists of freshly funded companies.** Banking, payroll, insurance, legal, recruiting, SaaS and cloud sellers reach companies in the weeks after they raise. Filter by state, industry and size.
- **VC and angel scouting.** Every Reg D raise by industry and state, including SAFE and convertible note rounds that never get a press release.
- **Weekly "who raised" newsletter or market report.** A clean table of the week's raises above a size you choose.
- **Triggers for outreach and CRM.** Daily only-new run, sent to Slack, a sheet or your CRM through an Apify integration.
- **Raised and hiring.** Pair it with our [Hiring Signals](https://apify.com/JTPalms/hiring-signals) actor to find companies that raised and are hiring.

### Sample output

Real rows from filings of 2026-10-05 (prefill filters: no funds, no real estate, offerings of USD 250,000 or more):

| Filed | Company | Location | Industry | Offering (USD) | Sold (USD) | First sale | Securities |
|---|---|---|---|---|---|---|---|
| 2026-10-05 | Metaview Technologies Inc. | United Kingdom | Other Technology | 59,999,954 | 59,999,954 | 2026-07-24 | equity |
| 2026-10-05 | Adden Energy, Inc. | MA | Other Energy | 26,641,463 | 16,897,972 | 2026-09-18 | equity |
| 2026-10-05 | Goated Ventures Inc. | NV | Other Technology | 15,000,000 | 8,000,000 | 2026-09-29 | equity |
| 2026-10-05 | Zonaliz, Inc. | CA | Biotechnology | Indefinite | 2,500,000 | 2026-09-21 | other (SAFE) |
| 2026-10-05 | Swarm Defense Technologies, Inc. | MI | Other Technology | 2,000,000 | 2,000,000 | 2026-09-24 | other (SAFE) |

One full row (JSON):

```json
{
  "id": "0002157706-26-000001",
  "filingType": "D",
  "filedAt": "2026-10-05",
  "issuerName": "1Stayz Inc",
  "cik": "2157706",
  "entityType": "Corporation",
  "entityTypeOther": null,
  "jurisdictionOfIncorporation": "WYOMING",
  "city": "SHERIDAN",
  "state": "WY",
  "country": "United States",
  "edgarLocationCode": "WY",
  "yearOfIncorporation": 2026,
  "industrySector": "Technology",
  "industryGroup": "Other Technology",
  "fundType": null,
  "revenueRange": "No Revenues",
  "netAssetValueRange": null,
  "offeringAmountUsd": 500000,
  "offeringIndefinite": false,
  "amountSoldUsd": 20000,
  "amountRemainingUsd": 480000,
  "percentSold": 4,
  "minimumInvestmentUsd": 20000,
  "investorsCount": 1,
  "nonAccreditedInvestorsCount": 0,
  "hasNonAccreditedInvestors": false,
  "dateOfFirstSale": "2026-09-22",
  "firstSaleYetToOccur": false,
  "offeringOverOneYear": true,
  "securityTypes": ["equity"],
  "otherSecurityDescription": null,
  "federalExemptions": ["06b"],
  "federalExemptionLabels": ["Rule 506(b)"],
  "isBusinessCombination": false,
  "salesCommissionsUsd": 0,
  "findersFeesUsd": 0,
  "isAmendment": false,
  "previousAccessionNumber": null,
  "otherIssuersCount": 0,
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/2157706/000215770626000001/",
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/2157706/000215770626000001/primary_doc.xml",
  "source": "sec-edgar-form-d",
  "fetchedAt": "2026-10-06T19:39:10.250Z"
}
```

A USD 20,000 raise by a one-person company, like this one, is typical of the long tail. The **Minimum offering size** default of USD 250,000 and **Minimum amount already sold** exist for that reason.

### What Form D is, and what it is not

A Form D is the short notice a company or fund files with the SEC within 15 days after the first sale in a private offering that relies on Regulation D (Rule 504, 506(b) or 506(c)) or Section 4(a)(5). It states the issuer, its industry, the size of the offering, how much has been sold, the number of investors and the exemption used.

- It is **US exempt offerings only**. Many startups never file one: most non-US companies, and some small convertible note or SAFE rounds. Treat this as a free, official funding signal, not a complete list of every round and not a replacement for a paid funding database.
- It has **no company description, no investor names and no valuation**.
- **Amounts are what the issuer filed.** Some are placeholders, some offerings are "Indefinite" in size, and amounts sold are often updated later in an amendment (D/A).
- Filings reach this feed **the evening of the day they are filed**: EDGAR publishes each day's index after the close, New York time, so a morning run reads up to yesterday.

### What is always left out, and why

These exclusions have no switch and are never charged:

| Left out | How | Why |
|---|---|---|
| The whole Form D **real estate** industry group: Commercial, Construction, REITS and Finance, Residential, Other Real Estate | Item 4 industry value (the five values of the SEC's schema list `REAL_ESTATE_INDUSTRY_LIST`, checked 2026-10-06) | This actor carries no real estate or property data of any kind. |
| Tenant-in-common securities | Item 9 securities type | Co-ownership of real property. |
| Real estate in other clothing | Issuer names, or descriptions of "other" securities, containing whole words such as real estate, realty, REIT, apartments, multifamily, property, properties, residential, housing, condos, homes, estate, land, hotel, resort, lodging, medical office, shopping center, plaza, town center, self storage, mortgage, DST, 1031, tenant in common, EB-5 | On 2026-10-02 and 10-05 this caught "Elm Villa Apartments LLC" and "SHORE CAPITAL REAL ESTATE PARTNERS FUND II-CV" (filed as funds) and a "Life Estate & Trust" (filed as Other). Whole words only, so Landmark, Homeward or Propel are not affected. |
| A future industry value the SEC might add that looks like real estate | Fail closed | So a schema change cannot leak real estate filings. |
| Phone numbers, officers, directors, promoters, signers, sales agents and brokers, street addresses, ZIP codes, free-text clarifications | Never read from the filing | No people data. Only issuer-level and offering-level facts come out. |

**Pooled investment funds** (venture, private equity, hedge and other funds raising from their own investors) are left out by default because they are not startups; they were 58% of the filings we sampled. Turn on **Include funds** to add them (real estate funds still stay out). Every run's SUMMARY counts what each rule left out.

### Filters

All filters combine with AND; values inside one filter combine with OR.

| Input | What it does |
|---|---|
| `sinceDays` | How many of the most recent EDGAR business days to read (1 to 31, default 3). Weekends and holidays do not count. About 130 to 230 Form D filings per day. |
| `industries` | Form D industry values (Other Technology, Computers, Biotechnology, Pharmaceuticals, Telecommunications, Manufacturing...) or a whole sector (Technology, Health Care, Energy, Banking and Financial Services, Travel). Real estate values are not offered. |
| `states` | US state codes (CA, NY), Canadian province codes (ON, BC, QC) or EDGAR country codes (X0 United Kingdom, E9 Cayman Islands, P7 Netherlands). |
| `minOfferingUsd` / `maxOfferingUsd` | Offering size range. For "Indefinite" offerings the amount already sold is compared instead. Default minimum USD 250,000; 0 keeps everything. |
| `minAmountSoldUsd` | Keep only filings that already sold at least this much. |
| `keywords` | Whole words in the company name, any case: `therapeutics`, `robotics`, `ai`. `bio*` matches word starts. |
| `entityTypes` | Corporation, Limited Liability Company, Limited Partnership, General Partnership, Business Trust, Other. |
| `includeFunds` | Add pooled investment funds (with `fundType`: Venture Capital Fund, Private Equity Fund, Hedge Fund, Other Investment Fund). |
| `includeAmendments` | Add D/A amendments, marked `isAmendment: true` with `previousAccessionNumber`. |
| `onlyNew`, `firstRunOutput` | Alert mode, below. |
| `maxResults` | Hard cap per run (default 1,000). Days are read newest first and, within a day, newest EDGAR registrants (highest CIK) first, so a capped run favours new companies. |

### Scheduling recipe: a daily funding alert

1. Save your filters as a task with **Only new filings** on and **Business days to read** at 3 (the overlap is free: filings already seen are skipped without being downloaded again).
2. Schedule the task once a day, for example 07:00 New York time.
3. Add an Apify integration: Slack, email, a spreadsheet, a webhook or Zapier on "Run succeeded", or read the dataset from the API.

The first run outputs the current matches (or nothing, with **First run with Only new** = None, which also downloads no filing documents). Later runs output only filings no earlier run processed for the same filters. If a scheduled run is missed, the next one reads back to the last day it finished (up to 31 business days). The memory is kept per set of filters in your own `startup-funding-feed-state` key-value store (up to 100,000 filings, 90 days), so tasks with different filters never hide each other's filings. Filings cut off by **Maximum results** come out in a later run while their day is still inside **Business days to read**.

### Input example

```json
{
  "sinceDays": 3,
  "industries": ["Technology", "Biotechnology"],
  "states": ["CA", "NY", "MA", "TX"],
  "minOfferingUsd": 1000000,
  "minAmountSoldUsd": 250000,
  "onlyNew": true,
  "maxResults": 500
}
```

### Output fields

| Field | Meaning |
|---|---|
| `id` | SEC accession number of the filing. |
| `filingType`, `isAmendment`, `previousAccessionNumber` | `D` or `D/A`; amendments point to the filing they amend. |
| `filedAt` | Filing date (EDGAR daily index). |
| `issuerName`, `cik` | Company name and SEC Central Index Key. |
| `entityType`, `entityTypeOther`, `jurisdictionOfIncorporation`, `yearOfIncorporation` | Legal form, where it is incorporated, and the year (or `over five years`, `yet to be formed`). |
| `city`, `state`, `country`, `edgarLocationCode` | Issuer's city, US state or Canadian province code, country, and the raw EDGAR code. No street address. |
| `industrySector`, `industryGroup`, `fundType` | Form D Item 4 industry, its sector, and the fund type for funds. |
| `revenueRange`, `netAssetValueRange` | Size bracket as filed (many issuers choose "Decline to Disclose"). |
| `offeringAmountUsd`, `offeringIndefinite` | Total offering size; null with `offeringIndefinite: true` when the filer wrote "Indefinite". |
| `amountSoldUsd`, `amountRemainingUsd`, `percentSold` | Sold so far, remaining, and sold as a percentage of the offering. |
| `minimumInvestmentUsd`, `investorsCount`, `nonAccreditedInvestorsCount`, `hasNonAccreditedInvestors` | Investor facts as filed (counts, never names). |
| `dateOfFirstSale`, `firstSaleYetToOccur`, `offeringOverOneYear` | Timing of the offering. |
| `securityTypes`, `otherSecurityDescription` | `equity`, `debt`, `option`, `option-underlying`, `pooled`, `mineral`, `other`; the filer's description of "other" (often "Simple Agreement for Future Equity (SAFE)"). |
| `federalExemptions`, `federalExemptionLabels` | Item 6 codes and the SEC's labels, for example `06c` = Rule 506(c) (general solicitation allowed). |
| `isBusinessCombination`, `salesCommissionsUsd`, `findersFeesUsd`, `otherIssuersCount` | Other offering facts (amounts only, no recipient names). |
| `filingUrl`, `documentUrl` | The filing folder on sec.gov and the Form D XML. |
| `source`, `fetchedAt` | `sec-edgar-form-d` and when this run wrote the row. |

### Pricing

| Event | Price (FREE and BRONZE plans) |
|---|---|
| Run start | USD 0.002 |
| Funding filing (one output row) | USD 0.0025, so USD 2.50 per 1,000 |

SILVER plans pay 10% less and GOLD and above 20% less per filing. Funds and real estate are never returned, so never charged. Examples:

- The prefill (2 business days, USD 250,000 minimum, up to 30 rows) returned 30 rows in about 31 seconds on Apify on 2026-10-06 (132 requests to the SEC): USD 0.077.
- A daily only-new task with about 15 new rows a day (for example technology and health care raises of USD 1 million or more): about USD 1.20 a month.
- Everything the default filters keep (USD 250,000 or more, no funds, no real estate): 34 to 45 rows a business day on 2026-10-05 and 10-02, about USD 0.09 to 0.12 a day.
- A weekly report of every non-fund raise of USD 1 million or more: 5 business days, about 130 to 190 rows (27 and 37 a day on 2026-10-05 and 10-02), about USD 0.34 to 0.47 a run.
- Set **Maximum cost per run** in the run options to cap any run; the actor stops cleanly at that limit and keeps what it saved.

### Source, attribution and SEC fair access

Data: U.S. Securities and Exchange Commission, EDGAR (https://www.sec.gov/edgar). The SEC states that information on sec.gov is public and may be copied or redistributed, and asks for citation of the SEC as the source; every row links to its filing on sec.gov.

The actor follows the SEC's fair-access rules: every request declares `JTPalms startup-funding-feed/1.0 (deals@jtpalmieri.com; +https://apify.com/JTPalms)`, asks for gzip, and requests start at most 5 per second (the SEC allows 10). It reads only the EDGAR daily index (`/Archives/edgar/daily-index/...`) and each filing's `primary_doc.xml`, one index per day and one document per filing, with no proxies. If the SEC answers 429 or refuses access, the actor backs off, and if the refusal continues it stops with a clear message, keeping and charging only the filings already saved.

### Limits and honest notes

- Coverage is what EDGAR receives: US Regulation D filings only. A quiet day is quiet because few companies filed, not because of an error.
- Industry is self-reported and "Other" is common; use keywords and the sector filters together.
- The real estate name screen is deliberately cautious: a non-real-estate company with one of the listed words in its name (for example a hotel software company called "... Hotels") is left out.
- A full day takes about 30 to 50 seconds (one request per filing at 5 per second), so a 31-day backfill with no cap takes up to about 25 minutes.

### Related actors

- [Company News Triggers: Funding, Layoffs, M\&A and More](https://apify.com/JTPalms/company-news-triggers): Watch a list of companies for buying-signal news from open GDELT data: funding, acquisitions, layoffs, expansions, leadership changes,...
- [Hiring Signals: Companies Hiring by Role, Team & Location](https://apify.com/JTPalms/hiring-signals): Find companies hiring right now, one row per company: open roles by team, seniority and location, roles posted in the last 7 and 30...
- [Business Registry Search: Status, Type, Formation Date, LEI](https://apify.com/JTPalms/company-registry-search): Company registry search: verify companies by name or id in official open registries (New York, Colorado and Connecticut state records,...
- [Company Enrichment From Domain: Tech Stack, Socials, Hiring](https://apify.com/JTPalms/company-profile): Company enrichment from a list of website domains: company name, description, official social links, tech stack (CMS, ecommerce,...

# Actor input Schema

## `sinceDays` (type: `integer`):

How many of the most recent EDGAR business days to read (days with a published daily index; weekends and holidays do not count). EDGAR publishes each day's index in the evening, New York time, so a morning run reads up to yesterday. About 130 to 230 Form D filings per day; each takes one request at 5 per second.

## `industries` (type: `array`):

Form D Item 4 industry values or whole sectors. Empty = every industry except real estate (never returned) and pooled investment funds (see Include funds).

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

Issuer location: US state codes (CA, NY, TX), Canadian province codes (ON, BC, QC) or EDGAR country codes (X0 United Kingdom, E9 Cayman Islands, P7 Netherlands). Empty = everywhere.

## `minOfferingUsd` (type: `integer`):

Skip small offerings. For offerings with no stated size (Indefinite) the amount already sold is compared instead. 0 keeps everything.

## `maxOfferingUsd` (type: `integer`):

Optional upper bound (same rule for Indefinite offerings).

## `minAmountSoldUsd` (type: `integer`):

Keep only filings that report at least this much sold. 0 keeps everything.

## `keywords` (type: `array`):

Whole words in any case, for example therapeutics, robotics, ai. End a word with \* to match word starts (bio\* matches Biosciences). Empty = no keyword filter.

## `entityTypes` (type: `array`):

Empty = all.

## `includeFunds` (type: `boolean`):

Add pooled investment funds (venture, private equity, hedge and other funds raising from their investors). Off by default: they are about half of all Form D filings and are not startups. Real estate funds are never returned.

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

Add amended filings, marked isAmendment. Amendments often report updated amounts sold.

## `onlyNew` (type: `boolean`):

Remember which filings earlier runs processed and output only new ones. Schedule daily for funding alerts; a run with nothing new costs only the start. If runs were missed, the next one reads back to the last day it finished. Memory is kept per set of filters in your startup-funding-feed-state key-value store.

## `firstRunOutput` (type: `string`):

All: the first run outputs the current matches. None: the first run outputs nothing and only records what is there (no filing documents are downloaded), so alerts start with the next run.

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

Hard cap per run. Days are read newest first and, within a day, newest EDGAR registrants first; reading stops once the cap is reached.

## Actor input object example

```json
{
  "sinceDays": 2,
  "minOfferingUsd": 250000,
  "minAmountSoldUsd": 0,
  "includeFunds": false,
  "includeAmendments": false,
  "onlyNew": false,
  "firstRunOutput": "all",
  "maxResults": 30
}
```

# Actor output Schema

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

One row per matching Form D filing in the default dataset (JSON, CSV, Excel via the format parameter).

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

Days read, filings listed and fetched, filings left out by reason (funds, real estate, your filters), rows output and charged, SEC requests made.

# 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 = {
    "sinceDays": 2,
    "minOfferingUsd": 250000,
    "maxResults": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("jtpalms/startup-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 = {
    "sinceDays": 2,
    "minOfferingUsd": 250000,
    "maxResults": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("jtpalms/startup-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 '{
  "sinceDays": 2,
  "minOfferingUsd": 250000,
  "maxResults": 30
}' |
apify call jtpalms/startup-funding-feed --silent --output-dataset

```

## MCP server setup

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