# SEC Form D Scraper - Startup Funding Rounds from EDGAR (`kadi_bence/sec-form-d-funding`) Actor

Get recent SEC Form D filings (US startup funding rounds, private placements) from EDGAR. Input: filed-within days or dates, industries, states, amount range, issuer keywords. Returns per filing: company, industry, state, amount offered and sold, investors, form URL. Default: 20 filings.

- **URL**: https://apify.com/kadi_bence/sec-form-d-funding.md
- **Developed by:** [Bence Kadi](https://apify.com/kadi_bence) (community)
- **Categories:** Lead generation, Marketing, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 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.

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 Scraper: startup funding rounds feed from EDGAR

Get a daily list of **US companies that just raised money**, straight from **SEC Form D filings** on EDGAR. One clean row per filing: company, industry, city and state, **amount offered and already sold**, investors, year of incorporation and links. Export to JSON, CSV or Excel. **No API key, no login, no Crunchbase subscription.**

### What is the SEC Form D Scraper?

Every private placement under Regulation D (seed rounds, Series A/B, SAFEs, convertible notes, real-estate and energy raises) must be reported to the SEC on Form D within 15 days of the first sale. This Actor turns those filings into a flat, typed table. More than half of all filings come from funds and SPVs; by default these are removed, leaving operating companies raising money for themselves.

**Who uses it and why:**

- **VC investors and scouts** see new seed and Series A rounds in their sector and region, often before the press does.
- **B2B sales teams** load freshly funded companies, which are buying and hiring, into their CRM each morning.
- **Lawyers, accountants, recruiters, banks and insurers** find newly funded clients.
- **Analysts** measure private capital formation by industry, state and round size, or track new funds.
- **AI agents and data pipelines** get a typed JSON feed of US private placements.

#### Data fields

Every filing is one dataset item with these fields. Examples are from a real run on 2026-10-05.

| Field | Description | Example |
|---|---|---|
| `accessionNumber` | SEC accession number of the filing (unique) | `0002157421-26-000001` |
| `formType` | `D` (new offering) or `D/A` (amendment) | `D` |
| `isAmendment` | `true` for Form D/A | `false` |
| `previousAccessionNumber` | Filing that an amendment updates | `null` |
| `filedDate` | Date the SEC accepted the filing (US Eastern) | `2026-10-02` |
| `issuerName` | Company raising the money | `Carebility, Inc.` |
| `cik` | SEC Central Index Key of the issuer | `2157421` |
| `entityType` | Legal form | `Corporation` |
| `jurisdictionOfIncorporation` | State or country of incorporation | `DELAWARE` |
| `yearOfIncorporation` | Year of incorporation (only for companies under 5 years old) | `2025` |
| `incorporatedWithinFiveYears` | Incorporated within the last five years | `true` |
| `yetToBeFormed` | The company does not exist yet | `false` |
| `city` | City of the principal place of business | `RICHARDSON` |
| `state` | State code (EDGAR country code for foreign issuers) | `TX` |
| `stateOrCountryName` | State or country name | `TEXAS` |
| `zipCode` | ZIP code | `75082` |
| `previousNames` | Earlier names of the issuer | `[]` |
| `otherIssuers` | Co-issuers named in the filing | `[]` |
| `industryGroup` | Form D industry group | `Other Technology` |
| `industrySector` | Sector of the industry group | `Technology` |
| `investmentFundType` | Fund type (funds only) | `null` |
| `isFundOrSpv` | Fund or SPV, as detected by the Actor | `false` |
| `fundOrSpvReason` | Why it counts as a fund or SPV | `null` |
| `revenueRange` | Revenue range reported by the issuer | `Decline to Disclose` |
| `aggregateNetAssetValueRange` | Net asset value range (funds only) | `null` |
| `exemptions` | Exemption codes claimed | `["06B"]` |
| `exemptionsDescription` | Exemptions in plain English | `["Rule 506(b)"]` |
| `dateOfFirstSale` | Date of the first sale | `2026-09-23` |
| `firstSaleYetToOccur` | No sale has happened yet | `false` |
| `offeringMoreThanOneYear` | Offering is expected to last more than a year | `false` |
| `securityTypes` | What is sold | `["Other: Simple Agreement for Future Equity (SAFE)"]` |
| `isBusinessCombination` | Part of a merger or acquisition | `false` |
| `minimumInvestment` | Minimum investment accepted, USD | `50000` |
| `totalOfferingAmount` | Total offering size, USD (empty if "Indefinite") | `8835000` |
| `offeringAmountIndefinite` | Offering size reported as "Indefinite" | `false` |
| `totalAmountSold` | Money already raised, USD | `8835000` |
| `totalRemaining` | Amount still to be sold, USD | `0` |
| `hasNonAccreditedInvestors` | Some investors are not accredited | `false` |
| `numberNonAccreditedInvestors` | Number of non-accredited investors | `null` |
| `totalInvestors` | Number of investors who already invested | `16` |
| `salesCommissions` | Sales commissions, USD | `0` |
| `findersFees` | Finder's fees, USD | `0` |
| `grossProceedsToInsiders` | Proceeds paid to insiders, USD | `0` |
| `brokerDealers` | Broker-dealer firm names (never individual agents) | `[]` |
| `signatureDate` | Date the form was signed | `2026-10-02` |
| `relatedPersons` | Executives' and directors' names and roles (opt-in) | `null` |
| `filingIndexUrl` | Filing index page on sec.gov | `https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/0002157421-26-000001-index.htm` |
| `formUrl` | The filing as a readable web page | `https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/xslFormDX01/primary_doc.xml` |
| `primaryDocUrl` | The official Form D XML | `https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/primary_doc.xml` |
| `companyFilingsUrl` | All EDGAR filings of the company | `https://www.sec.gov/edgar/browse/?CIK=2157421` |
| `fileNumber` | SEC file number | `021-599807` |
| `source` | Data source | `SEC EDGAR Form D` |
| `isNew` | Monitoring mode only: new filing | `true` |
| `scrapedAt` | When the Actor saved the item (UTC) | `2026-10-05T04:53:15Z` |

**Use cases:** Generate leads (build B2B prospect lists, lead enrichment & validation) · Research markets & competitors (discover startups & new launches, track financial markets & trading data, profile companies & due diligence) · Developer tools (extract government & public data).

### How to use the SEC Form D scraper

1. Click **Try for free** (free Apify account).
2. Keep the default window (**last 3 days**, funds and SPVs excluded) or set your own.
3. Optionally pick **Industries**, **US states**, a round size or **Young companies only**.
4. Set **Max results** (the prefill is 20, about 6 seconds) and click **Start**.
5. Open the **Output** tab and download CSV, Excel or JSON, or send the data to Google Sheets.
6. For a daily feed, turn on **Only new filings** and add a daily **Schedule** (see below).

#### Input guide

**Filed within the last N days** (`filedWithinDays`). Calendar days back from today, US Eastern time. `0` = today only. The default `3` always covers the last business day.

**Filed from / Filed to** (`filedFrom`, `filedTo`). A fixed range (YYYY-MM-DD) for research; it replaces the N-days setting. Electronic Form D filings start in 2009.

- Good: `2026-09-01` to `2026-09-30`. Or only `filedFrom`: "from that date until today".
- Bad: only `filedTo`. The range then starts at the beginning of EDGAR, which makes a very long run.

**Investment funds and SPVs** (`fundsAndSpvs`). `exclude` (default) keeps operating companies only, `include` returns everything, `only` tracks new fund formations. Funds are detected by industry, security type, a 3(c) exclusion or a vehicle-style name ("a Series of", "SPV", "Feeder"...); `fundOrSpvReason` says why.

**Industries / Exclude industries** (`industries`, `excludeIndustries`). Form D industry groups; "All ..." selects a whole sector.

- Good: `["All Technology", "Biotechnology", "Pharmaceuticals"]`.
- Tip: single-property real-estate and oil-and-gas partnerships count as operating companies on Form D. Exclude `All Real Estate` to remove them.
- Note: there is no "fintech", "AI" or "SaaS" group. Software, AI and internet companies fall under `Other Technology`.

**US states** (`states`). The issuer's principal place of business, not its state of incorporation (often Delaware). Leave empty for all states and foreign issuers. Foreign issuers get EDGAR codes (e.g. `P7`) in `state`.

**Min / max total offering amount** (`minOfferingAmount`, `maxOfferingAmount`). Round size in USD, for example max `3000000` for seed raises.

- Warning: "Indefinite" offerings (common for SAFEs) pass the minimum but are dropped when you set a maximum.

**Min amount already sold** (`minAmountSold`). Money already raised, e.g. `500000`.

**Young companies only** (`youngCompaniesOnly`). Issuers incorporated within the last five years or not yet formed: a good proxy for startups.

**Include amendments** (`includeAmendments`). Off = only new offerings. On = also Form D/A updates (new amount sold, more investors, annual renewal), linked by `previousAccessionNumber`.

**Regulation D exemptions** (`exemptions`). `rule506b`, `rule506c` (may advertise publicly), `rule504`, `section4a5`.

**Issuer name contains** (`issuerKeywords`). Case-insensitive match on the company name only.

- Good: `["Therapeutics", "Robotics"]`.
- Bad: `["AI"]`. It matches any part of a name, such as "Main Street" or "Retail". Use industries instead.

**Max results** (`maxResults`). Stop after N filings; `0` = no limit. Also your cost cap: 1,000 filings cost $1.80.

**Include related persons** (`includeRelatedPersons`). Off by default. Adds names and roles of executives, directors and promoters, never addresses. Needs a lawful basis for personal data.

**Only new filings / Monitor name** (`onlyNewFilings`, `monitorName`). Outputs and charges only filings not delivered in earlier runs. Changing a filter (not the dates or Max results) starts a new "already seen" list; use one monitor name per saved search.

**User-Agent contact** (`userAgent`). SEC asks automated tools to identify themselves, for example `Acme Corp research@acme.com`. Sent only to SEC.gov, never stored or logged. Empty = the Actor's generic identifier.

#### Input example: young tech and biotech startups in California and New York raising $1M to $30M

```json
{
  "filedWithinDays": 7,
  "industries": ["All Technology", "Biotechnology", "Pharmaceuticals"],
  "states": ["CA", "NY"],
  "minOfferingAmount": 1000000,
  "maxOfferingAmount": 30000000,
  "youngCompaniesOnly": true,
  "maxResults": 500,
  "onlyNewFilings": true
}
```

### Output

A real item from a run on 2026-10-05:

```json
{
  "accessionNumber": "0002157421-26-000001",
  "formType": "D",
  "isAmendment": false,
  "previousAccessionNumber": null,
  "filedDate": "2026-10-02",
  "issuerName": "Carebility, Inc.",
  "cik": "2157421",
  "entityType": "Corporation",
  "jurisdictionOfIncorporation": "DELAWARE",
  "yearOfIncorporation": 2025,
  "incorporatedWithinFiveYears": true,
  "yetToBeFormed": false,
  "city": "RICHARDSON",
  "state": "TX",
  "stateOrCountryName": "TEXAS",
  "zipCode": "75082",
  "previousNames": [],
  "otherIssuers": [],
  "industryGroup": "Other Technology",
  "industrySector": "Technology",
  "investmentFundType": null,
  "isFundOrSpv": false,
  "fundOrSpvReason": null,
  "revenueRange": "Decline to Disclose",
  "aggregateNetAssetValueRange": null,
  "exemptions": ["06B"],
  "exemptionsDescription": ["Rule 506(b)"],
  "dateOfFirstSale": "2026-09-23",
  "firstSaleYetToOccur": false,
  "offeringMoreThanOneYear": false,
  "securityTypes": ["Equity"],
  "isBusinessCombination": false,
  "minimumInvestment": 0,
  "totalOfferingAmount": 8835000,
  "offeringAmountIndefinite": false,
  "totalAmountSold": 8835000,
  "totalRemaining": 0,
  "hasNonAccreditedInvestors": false,
  "numberNonAccreditedInvestors": null,
  "totalInvestors": 16,
  "salesCommissions": 0,
  "findersFees": 0,
  "grossProceedsToInsiders": 0,
  "brokerDealers": [],
  "signatureDate": "2026-10-02",
  "relatedPersons": null,
  "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/0002157421-26-000001-index.htm",
  "formUrl": "https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/xslFormDX01/primary_doc.xml",
  "primaryDocUrl": "https://www.sec.gov/Archives/edgar/data/2157421/000215742126000001/primary_doc.xml",
  "companyFilingsUrl": "https://www.sec.gov/edgar/browse/?CIK=2157421",
  "fileNumber": "021-599807",
  "source": "SEC EDGAR Form D",
  "scrapedAt": "2026-10-05T04:53:15Z"
}
```

With `includeRelatedPersons`, `relatedPersons` is a list like `[{"name": "...", "roles": ["Executive Officer", "Director"], "clarification": "CEO"}]`. In monitoring mode every item also has `"isNew": true`.

**Fill rates** in a live run of 500 operating-company filings: issuer, location, industry, exemptions, amount sold and investors 100%; numeric offering amount 89% (the rest "Indefinite"); date of first sale 83%; exact year of incorporation 76% (the form gives it only for companies under 5 years old).

**Dataset views.** The **Output** tab shows two tables:

- **Funding rounds**: date, company, industry, location, amounts, investors, year of incorporation, form link.
- **Offering details**: entity type, revenue range, exemptions, security types, fees, broker-dealers, fund/SPV flag.

**Run summary.** Every run saves `RUN_SUMMARY` in the key-value store with counts, skip reasons and any problems (prefilled run, trimmed):

```json
{
  "source": "SEC EDGAR full-text search + Form D primary documents",
  "dateFrom": "2026-10-02",
  "dateTo": "2026-10-05",
  "filingsInRange": 303,
  "filingsListed": 41,
  "documentsFetched": 20,
  "filingsSaved": 20,
  "skipped": { "fundOrSpv": 20 },
  "documentsFailed": 0,
  "stoppedEarly": true,
  "requests": 24,
  "seconds": 7.4,
  "requestsPerSecond": 3.24,
  "...": "..."
}
```

**Export.** Download any view as JSON, CSV, Excel, XML, HTML or RSS from the Output tab or the API.

### Pricing

This Actor uses **pay per event**: **$1.80 per 1,000 filings** saved ($0.0018 per filing). Apify also charges a start fee of **$0.00005 per run**. Platform compute is included in the price.

| Typical run | Filings | Cost |
|---|---|---|
| First test with the prefilled input | 20 | about $0.04 |
| One-off export of 500 filings | 500 | $0.90 |
| Daily feed of all US operating companies (40-70 per business day x 21 days) | 840 to 1,470 a month | about $1.50 to $2.65 per month |
| One year of operating companies (40-70 x 250 business days) | 10,000 to 17,500 | about $18 to $31.50 |

**What is free:**

- Filings removed by your filters (funds, SPVs, amendments...) are not charged.
- In monitoring mode, filings delivered in earlier runs are skipped, not downloaded again and not charged.
- A search with no matches costs only the $0.00005 start fee.
- Apify's free plan includes monthly platform credit (see apify.com/pricing).

You can cap spending with **Max results** or with **Max charge per run** in the run options.

### Use it via API

Replace `MY_APIFY_TOKEN` with your token from Apify Console > Settings > API & Integrations.

**JavaScript / Node.js** (`npm install apify-client`):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('kadi_bence/sec-form-d-funding').call({
    filedWithinDays: 7,
    industries: ['All Technology'],
    states: ['CA', 'NY', 'MA'],
    youngCompaniesOnly: true,
    maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]?.issuerName, items[0]?.totalAmountSold);
```

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("MY_APIFY_TOKEN")
run = client.actor("kadi_bence/sec-form-d-funding").call(run_input={
    "filedFrom": "2026-09-01",
    "filedTo": "2026-09-30",
    "industries": ["Biotechnology", "Pharmaceuticals"],
    "minOfferingAmount": 1000000,
    "maxResults": 1000,
    "userAgent": "Acme Corp research@acme.com",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["issuerName"], item["state"], item["totalOfferingAmount"], item["totalAmountSold"])
```

**cURL** (runs the Actor and returns the items in one call):

```bash
curl -X POST "https://api.apify.com/v2/acts/kadi_bence~sec-form-d-funding/run-sync-get-dataset-items?token=MY_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filedWithinDays": 3, "fundsAndSpvs": "exclude", "states": ["TX"], "maxResults": 100}'
```

**Apify CLI:**

```bash
apify call kadi_bence/sec-form-d-funding --input '{"filedWithinDays": 3, "industries": ["All Health Care"], "maxResults": 50}' --output-dataset
```

**MCP (AI agents such as Claude, Cursor or VS Code).** Add this to your MCP client config. The client will ask you to sign in to Apify (or send your token as an `Authorization: Bearer` header):

```json
{"mcpServers":{"apify":{"url":"https://mcp.apify.com/?actors=kadi_bence/sec-form-d-funding"}}}
```

Then ask: "Which Massachusetts biotech startups filed a Form D this week?"

### Integrations and scheduling

- **Schedules.** **Schedules > Create new** in Apify Console, pick this Actor or a saved task, set a time.
- **Webhooks.** Call your own URL when a run finishes.
- **Zapier, Make and n8n.** "Run Actor" action or "Actor run finished" trigger; send rows to Slack, e-mail or outbound tools.
- **Google Sheets.** Append each run's results via the **Integrations** tab.
- **CRM.** Create HubSpot, Pipedrive or Salesforce companies from new filings through Zapier, Make or n8n.

**Recipe: every newly funded fintech startup in California each morning**

1. Set **Industries** = `Finance: Other banking and financial services` and `Technology: Other technology`, **US states** = `CA`, **Young companies only** = on. Optionally add **Issuer name contains** = `Payments`, `Lending`, `Fintech`.
2. Turn on **Only new filings** and give the monitor a name, such as `ca-fintech`.
3. Click **Save as a new task**, then add a schedule: every day at 07:00.
4. Connect the task to Google Sheets, Slack or your CRM. Each morning you get only unseen filings.

**Recipe: new VC funds being raised.** **Investment funds and SPVs** = Only, **Industries** = `Finance: Pooled investment fund`, **Filed within the last N days** = 7, weekly schedule, export to a sheet.

### Related actors by the same developer

- [New Business Filings USA](https://apify.com/kadi_bence/us-new-business-filings): newly registered LLCs and companies from US state registries.
- [Website Tech Stack Detector](https://apify.com/kadi_bence/tech-stack-detector): once you know a funded company's website, see which technologies it uses.

### FAQ

**How does it work, and where does the data come from?**
All data comes from **SEC EDGAR**, the SEC's public filing system. The Actor lists Form D filings with EDGAR full-text search and reads each matching filing's official XML document. Form D notices are public by law, and works of the US federal government are in the public domain. The Actor respects sec.gov's robots.txt. This Actor is not affiliated with or endorsed by the SEC.

**Does it respect SEC's rate limits?**
Yes. SEC's fair-access policy allows at most 10 requests per second and asks tools to declare a User-Agent. The Actor never sends more than 5 per second, declares itself in the User-Agent header and backs off when SEC is busy. If SEC still refuses (HTTP 403), the run stops with a clear message instead of retrying.

**Are there limits?**
EDGAR search lists at most 10,000 hits per query, so long ranges are split into one query per day automatically. Use **Max results** to cap size and cost.

**How fast is it?**
The prefilled run takes about 6 seconds; 500 filings took about 2.5 minutes, because the Actor stays below SEC's rate limit. Industry, amount and company-age filters need each document, so they are slower over long ranges than the other filters.

**How fresh is the data?**
Form D is due within 15 days of the first sale, so compare `dateOfFirstSale` with `filedDate`. New filings usually appear in EDGAR search on the day they are accepted (US business days, 6 a.m. to 10 p.m. Eastern; after 5:30 p.m. they get the next business day's date). A daily schedule with **Only new filings** catches everything.

**Why are my results different from EDGAR full-text search?**
Funds, SPVs and amendments are excluded by default; states mean the place of business, not incorporation; **Issuer name contains** searches names only; and monitoring mode skips filings you already received. `RUN_SUMMARY` shows the filings in range and why each group was skipped.

**Why is the offering amount sometimes empty?**
The issuer reported it as "Indefinite" (`offeringAmountIndefinite: true`), common for SAFEs and funds. `totalAmountSold` is still filled in.

**Is it legal? What about personal data (GDPR, CCPA)?**
Form D notices are public filings. They also list executives, directors and promoters with their addresses. By default the Actor outputs **company-level data only**. With `includeRelatedPersons` you get names and roles, never addresses, and e-mails and phone numbers are stripped from the role text. Signers, the issuer's phone and street address, and individual sales agents are never output (only broker-dealer firm names). If you collect names, you need a lawful basis (e.g. GDPR legitimate interest) and must honor CCPA opt-outs.

**Can I use it from Python, Google Sheets or my CRM?**
Yes. See **Use it via API** and **Integrations and scheduling**.

**How does "Only new filings" work?**
Accession numbers of delivered filings are kept in a named key-value store in your account. The next run with the same filters and monitor name skips them before downloading. Only delivered filings are remembered, so filings cut off by **Max results** arrive next time. A new monitor name starts a fresh list.

**What if a run fails?**
Invalid input fails at once with a message saying what to fix. If SEC blocks or stays down after retries, the Actor keeps what it saved and explains the problem in the status message and `RUN_SUMMARY`; the run fails only if nothing was saved. Please open an issue on the **Issues** tab with the run link. Fixes usually land within 24 to 48 hours.

**What changed recently?**
See the changelog below.

### Need a custom version?

I build custom scrapers, scheduled data feeds and integrations (CSV, Excel, Google Sheets, API, MCP for AI agents). Tell me the sites and fields you need:

- Email: bence.kadi@gmail.com
- Apify profile: https://apify.com/kadi_bence

### Related Actors

More low-cost Actors by the same developer, built on official APIs and public data:

- [New Business Filings USA](https://apify.com/kadi_bence/us-new-business-filings) — newly registered LLCs and companies
- [Website Tech Stack Detector](https://apify.com/kadi_bence/tech-stack-detector) — CMS, ecommerce, analytics and frameworks of any website
- [Greenhouse, Lever & Ashby Jobs Scraper](https://apify.com/kadi_bence/ats-jobs-scraper) — all open jobs of a company from 6 applicant systems, plus Workday
- [Workday Jobs Scraper](https://apify.com/kadi_bence/workday-jobs-scraper) — open jobs of any company by name (NVIDIA, Salesforce), plus Greenhouse/Lever fallback
- [Bulk WHOIS & RDAP Domain Lookup](https://apify.com/kadi_bence/domain-whois-lookup) — registrar, dates and DNS for many domains
- [SAM.gov Scraper](https://apify.com/kadi_bence/sam-gov-scraper) — US federal contract opportunities and awards
- [TED Tenders Scraper](https://apify.com/kadi_bence/ted-tenders-scraper) — EU public tenders and contract award winners

All my Actors: [apify.com/kadi_bence](https://apify.com/kadi_bence)

### Changelog

- **1.0 (2026-10-05):** First release.
  - Form D and D/A filings from EDGAR full-text search plus the official XML documents.
  - Fund/SPV filter, industry, sector, state, amount, young-company, exemption and keyword filters.
  - Monitoring mode, run summary, company-level data by default with optional names of related persons.

# Actor input Schema

## `filedWithinDays` (type: `integer`):

Form D filings filed with the SEC in the last N days (US Eastern dates; 0 = today only). EDGAR has no filings on weekends and federal holidays, so 3 days always covers the last business day. Ignored when you set a date range below.

## `filedFrom` (type: `string`):

First filing date (YYYY-MM-DD). Overrides 'Filed within the last N days'. EDGAR has electronic Form D filings since 2009.

## `filedTo` (type: `string`):

Last filing date (YYYY-MM-DD). Defaults to today. Set 'Filed from' too: without it the range starts at the beginning of EDGAR, which makes a very long run.

## `fundsAndSpvs` (type: `string`):

More than half of all Form D filings come from investment funds and single-deal SPVs ('Fund I, a Series of ...'), not from operating companies. 'Exclude' keeps only companies raising money for themselves: the startup funding feed.

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

Form D industry groups. 'All ...' selects the whole sector. Leave empty for all industries.

## `excludeIndustries` (type: `array`):

Drop these industry groups, e.g. 'Real estate (all)' to remove single-property real-estate raises.

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

2-letter state codes of the issuer's principal place of business (not the state of incorporation, which is often Delaware). Leave empty for all states and countries.

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

Only rounds of at least this size (Form D 'total offering amount'). Offerings with an indefinite amount pass this filter.

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

Only rounds up to this size, e.g. 3000000 for seed-stage raises. Offerings with an indefinite amount are left out.

## `minAmountSold` (type: `integer`):

Only filings where at least this much money was already raised.

## `youngCompaniesOnly` (type: `boolean`):

Keeps issuers that were incorporated within the last five years (or are yet to be formed): a good proxy for startups.

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

Amendments update an earlier Form D (new amount sold, more investors, annual renewal). Off = only new offerings.

## `exemptions` (type: `array`):

Only offerings that claim one of these exemptions. 506(c) offerings may advertise publicly. Leave empty for all.

## `issuerKeywords` (type: `array`):

Only issuers whose name contains one of these words (case-insensitive), e.g. 'Therapeutics', 'Robotics'. Matches any part of the name, so very short words like 'AI' also match 'Retail' or 'Main Street': use Industries for those.

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

Stop after this many filings. 0 = no limit. The default without input (API, MCP and AI-agent calls) is 20.

## `includeRelatedPersons` (type: `boolean`):

Adds the names and roles (executive officer, director, promoter) of the people listed in the filing. Off by default because these are personal data: only turn it on if you have a lawful basis to process them (e.g. GDPR legitimate interest). Addresses are never included.

## `onlyNewFilings` (type: `boolean`):

Remember delivered filings and output only NEW ones on the next runs with the same filters. Ideal for a daily schedule: you only pay for new filings.

## `monitorName` (type: `string`):

Keeps separate 'already seen' lists for different schedules.

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

SEC asks automated tools to identify themselves in the User-Agent header, e.g. 'Acme Corp research@acme.com'. Leave empty to use the Actor's generic identifier. Sent only to SEC.gov; never stored or logged.

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

Not needed: SEC EDGAR is a free public service.

## Actor input object example

```json
{
  "filedWithinDays": 3,
  "fundsAndSpvs": "exclude",
  "youngCompaniesOnly": false,
  "includeAmendments": false,
  "maxResults": 20,
  "includeRelatedPersons": false,
  "onlyNewFilings": false,
  "monitorName": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Form D filings: issuer, industry, state, amounts raised (table view).

## `filingsFull` (type: `string`):

All scraped filings with every field.

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

Date range, filings listed, documents read, filings saved, skip reasons and any problems.

# 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 = {
    "filedWithinDays": 3,
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kadi_bence/sec-form-d-funding").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 = {
    "filedWithinDays": 3,
    "maxResults": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("kadi_bence/sec-form-d-funding").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 '{
  "filedWithinDays": 3,
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call kadi_bence/sec-form-d-funding --silent --output-dataset

```

## MCP server setup

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

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/4obGeAU9lqtlswqwH/builds/wr8qKvF7Yil81y6AH/openapi.json
