# SEC Form D Scraper — Startup Funding Data (`sourcesauce/sec-form-d-funding`) Actor

Every new US private raise as clean issuer-level records: who raised, how much, industry, exemption, investor count. Direct from SEC EDGAR daily, no third-party dependency. Track venture capital and startup fundraising, Reg D private placements and new funding rounds the day they are filed.

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

## Pricing

$5.00 / 1,000 form d records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEC Form D Scraper — Startup Funding Data

Every new US private capital raise, as clean structured records — pulled directly from SEC EDGAR
the day it's filed. Who raised, how much they've sold, what industry, under which exemption.
Companies must file Form D within 15 days of first sale, which makes this the earliest public,
legally-mandated signal that a startup or fund has money.

### What you get

One record per filing (new notices **D** and amendments **D/A**):

| field | example |
|---|---|
| issuer\_name | `AI Software Holdings, LLC` |
| form / filing\_date | `D` / `2026-07-31` |
| industry\_group | `Other Technology` |
| entity\_type / jurisdiction\_of\_inc | `Limited Liability Company` / `DELAWARE` |
| city / state\_or\_country | `ST. LOUIS` / `MISSOURI` |
| amount\_sold\_usd | `703000` |
| total\_investors | `5` |
| revenue\_range | `$25,000,001 - $100,000,000` |
| federal\_exemptions | `["06b"]` |
| date\_of\_first\_sale | `2026-07-14` |
| source\_url | direct link to the SEC filing |

34 fields per record — full schema in the input tab's sample run. Amounts that issuers file as
"Indefinite" are kept verbatim in the raw fields with `null` in the numeric ones, never invented.

### Who uses this

- **B2B sales & agencies** — companies that just raised are the classic high-intent lead: budget,
  urgency, and a legal filing to prove it. ~150-300 new filings every business day.
- **VC / market intelligence** — track which sectors, states, and fund structures are raising.
- **Journalists & researchers** — a raise is public the moment Form D hits EDGAR, usually well
  before any press release.

### How it works

- `days: 1` (default) pulls the most recent EDGAR index day — run it daily for the full feed.
  Weekends/holidays are skipped automatically; a Saturday run returns Friday's filings.
- Or set `startDate`/`endDate` for an explicit range (about 45s per business day — the actor
  respects SEC's fair-use rate limit).
- `maxRecords: 25` makes a cheap preview run.
- **contactEmail is required**: the SEC requires every EDGAR consumer to identify themselves in
  the User-Agent. Your email goes only to the SEC, never anywhere else.

### Honest limitations

- **Issuer-level records only, by design.** Form D filings also name related persons
  (officers/directors); this actor deliberately never outputs person data — records are about
  companies and offerings. If you need person-level data, this is not your tool.
- Amounts are what issuers filed, including "Indefinite" and $0 for raises not yet closed;
  amendments (D/A) often carry the updated sold amount — keep `includeAmendments` on.
- Same-day coverage: EDGAR's daily index builds during the day; a run at noon shows the morning's
  filings, the evening run has the full day.
- US SEC filings only.

### Pricing

Pay per record delivered — nothing else. No start fees, no synthetic events. Failed fetches
(rare; SEC outages) are pushed as uncharged error rows, so you pay for data, not for problems.

*Unofficial: not affiliated with or endorsed by the U.S. Securities and Exchange Commission.*

# Actor input Schema

## `days` (type: `integer`):

How many most-recent EDGAR index days to pull, walking back from today (weekends/holidays are skipped automatically — running on a Saturday returns Friday's filings).

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

Explicit range start, YYYY-MM-DD. Use together with endDate; overrides 'days'. Larger ranges take longer (~45s per business day at SEC's polite rate limit).

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

Explicit range end, YYYY-MM-DD. Use together with startDate.

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

Amendments update earlier notices (often with the actual amount sold). Disable for new notices only.

## `maxRecords` (type: `integer`):

Stop after this many records — handy for a cheap preview. 0 = no cap (a full business day is roughly 150-300 filings).

## `contactEmail` (type: `string`):

Required by the SEC: EDGAR requests must carry a User-Agent identifying the requester with a contact email. Your email is sent only to the SEC, never stored or shared otherwise. Replace the prefilled address with your own for production use.

## Actor input object example

```json
{
  "days": 1,
  "includeAmendments": true,
  "maxRecords": 25,
  "contactEmail": "smazing.actors@gmail.com"
}
```

# 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 = {
    "days": 1,
    "maxRecords": 25,
    "contactEmail": "smazing.actors@gmail.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourcesauce/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 = {
    "days": 1,
    "maxRecords": 25,
    "contactEmail": "smazing.actors@gmail.com",
}

# Run the Actor and wait for it to finish
run = client.actor("sourcesauce/sec-form-d-funding").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "days": 1,
  "maxRecords": 25,
  "contactEmail": "smazing.actors@gmail.com"
}' |
apify call sourcesauce/sec-form-d-funding --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sourcesauce/sec-form-d-funding",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YofYmMPHLJESKQldP/builds/BKlFDqbic5EZVFyJW/openapi.json
