# SEC Form D Scraper: Startup Funding & Reg D Filings (`guileless_concerto/sec-form-d-offerings`) Actor

Daily list of new SEC Form D filings: companies raising private money under Reg D. Filter by industry, state, amount sold and company age. Official EDGAR data. No personal data.

- **URL**: https://apify.com/guileless_concerto/sec-form-d-offerings.md
- **Developed by:** [Scott P](https://apify.com/guileless_concerto) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 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 & Reg D private placements from EDGAR

Get a clean, filterable list of companies that **just filed a Form D** with the U.S. SEC. A Form D is the notice companies and funds file when they raise money in a private, exempt offering under **Regulation D** (Rule 506(b), 506(c), Rule 504) or certain other exemptions. Hundreds are filed every business day. This Actor reads them straight from **SEC EDGAR's** official daily index and returns one flat record per filing, ready for spreadsheets, CRMs, or alerts.

**Use it to find recently funded startups, track private placements and capital raises, and monitor deal flow.** No proxies, no login, no personal data.

### What you can use it for

- **Lead generation / sales prospecting:** find companies that just raised money (they have new budget) in your industry and region.
- **Investor and market research:** track private fundraising activity by sector, state, size, and company age.
- **Monitoring:** schedule the Actor daily and send new filings to Slack, email, Google Sheets, or a webhook using Apify integrations.

### What you get (per filing)

Filing date, issuer name, CIK, entity type, state/year of incorporation, company age bucket, business city/state/ZIP, **industry group**, revenue range, exemptions claimed (06b, 06c, 04, 3C...), date of first sale, securities offered, minimum investment, **total offering amount, amount sold so far, amount remaining**, number of investors so far, sales commissions / finders' fees, and direct links to the filing on EDGAR.

#### Example record

```json
{
  "filingDate": "2026-10-05",
  "issuerName": "1Stayz Inc",
  "industryGroup": "Other Technology",
  "issuerCity": "SHERIDAN",
  "issuerStateOrCountry": "WY",
  "yearOfIncorporation": "2026",
  "federalExemptions": ["06b"],
  "dateOfFirstSale": "2026-09-22",
  "totalOfferingAmountUsd": 500000,
  "totalAmountSoldUsd": 20000,
  "totalInvestorsSoFar": 1,
  "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/2157706/000215770626000001/0002157706-26-000001-index.htm"
}
```

### Filters

| Input | What it does |
|---|---|
| Days back / Start date / End date | Which filing dates to cover (max 31 days per run). |
| Industry groups | E.g. *Other Technology*, *Biotechnology*, *Pharmaceuticals*, *Commercial* (real estate). |
| Issuer states / countries | Two-letter codes such as `CA`, `NY`, `TX`. |
| Minimum amount already sold / minimum offering size | Skip tiny raises. |
| Only young companies | Incorporated within the last 5 years. |
| Exclude pooled investment funds | On by default. Hedge, PE, VC, and real-estate funds file a large share of Form Ds. |
| Form types | `D` (new) and/or `D/A` (amendments). |
| Issuer name contains | Simple keyword match. |
| Max results | Hard cap on returned (and charged) results. |

### Pricing

Pay per event: a small flat **start fee per run** plus a fee per **filing returned** that matches your filters. Filings that are scanned but filtered out are free. The Actor stops automatically when it reaches *Max results* or your run's spending limit.

### Data source, privacy, and fair use

- Data comes from **SEC EDGAR** daily index files and each filing's `primary_doc.xml`. These are public U.S. government records. Index files for a business day appear around 10 pm ET.
- **No personal data is output.** Form D also lists "related persons" (executives, directors, promoters) and an issuer phone number. This Actor deliberately drops them and returns only a `relatedPersonsCount`.
- The Actor follows the SEC's [fair-access policy](https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data): it declares a User-Agent with a contact address, defaults to **4 requests/second** (the SEC allows 10), and backs off on HTTP 403/429. It does not use proxies or any disallowed paths.
- This is not investment advice. Form D data is self-reported by issuers and may contain errors. Some fields, such as revenue, are often "Decline to Disclose".

### Tips

- A daily schedule with **Days back = 1** gives you a fresh feed of each business day's filings.
- Narrow filters scan many filings to find few matches. That's fine, because you're only charged for matches, but such runs take longer (about 4 filings/second).

### Limitations

- Only electronic Form D filings that have an XML primary document are covered (essentially all filings since 2009).
- Filings removed by the SEC after acceptance are skipped.
- There's no full-text search. Filters work on the structured Form D fields.

### FAQ

**Does it return founders' or executives' names?** No. Form D lists "related persons" (executive officers, directors, promoters), but this Actor intentionally does not output them, nor the issuer phone number. You get a `relatedPersonsCount` and a link to the filing on EDGAR.

**How fresh is the data?** EDGAR publishes each business day's index at about 10 pm ET. A daily schedule with *Days back = 1* catches new filings within a day.

**Is Form D the same as a funding announcement?** Not exactly. Form D is a legal notice filed by the issuer. Many raises appear on EDGAR before or without a press release, but some companies never file one. Amounts are self-reported.

**How far back can I go?** Up to 31 days per run. Run it repeatedly to backfill longer periods.

### Changelog

- 0.1: Initial version: daily index scan, filters, pay-per-event charging, US Eastern date handling.

# Actor input Schema

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

Look at filings from the last N calendar days (ignored if Start date is set; max 31). EDGAR publishes each business day's index around 10 pm ET.

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

Optional. First filing date (YYYY-MM-DD). The range may span at most 31 days.

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

Optional. Last filing date (YYYY-MM-DD). Defaults to today.

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

Only return these Form D industry groups. Leave empty for all.

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

Two-letter EDGAR state or country codes of the issuer's principal place of business (e.g. CA, NY, TX, DE). Leave empty for all.

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

Only filings that report at least this much already raised.

## `minOfferingAmountUsd` (type: `integer`):

Only offerings at least this large ('Indefinite' offerings are kept).

## `onlyYoungCompanies` (type: `boolean`):

Keep only issuers that report incorporation within the last five years (or not yet formed).

## `excludePooledInvestmentFunds` (type: `boolean`):

Hedge/PE/VC/real-estate funds make up a large share of Form D filings. On by default so you get operating companies.

## `formTypes` (type: `array`):

D = new notices, D/A = amendments.

## `nameKeyword` (type: `string`):

Optional case-insensitive keyword filter on the issuer name.

## `maxItems` (type: `integer`):

Stop after this many matching filings (you are charged per result).

## `maxRequestsPerSecond` (type: `number`):

Rate limit toward sec.gov. SEC allows 10/s; we default to 4 to stay polite.

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

SEC asks automated tools to declare a contact in the User-Agent header. Leave empty to use the Actor publisher's contact.

## Actor input object example

```json
{
  "daysBack": 3,
  "industryGroups": [
    "Other Technology",
    "Biotechnology"
  ],
  "onlyYoungCompanies": false,
  "excludePooledInvestmentFunds": true,
  "formTypes": [
    "D"
  ],
  "maxItems": 100,
  "maxRequestsPerSecond": 4
}
```

# Actor output Schema

## `results` (type: `string`):

Form D filings (one row per filing) in the default dataset.

# 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 = {
    "industryGroups": [
        "Other Technology",
        "Biotechnology"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("guileless_concerto/sec-form-d-offerings").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 = { "industryGroups": [
        "Other Technology",
        "Biotechnology",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("guileless_concerto/sec-form-d-offerings").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 '{
  "industryGroups": [
    "Other Technology",
    "Biotechnology"
  ]
}' |
apify call guileless_concerto/sec-form-d-offerings --silent --output-dataset

```

## MCP server setup

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

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/euD82e5ZjyEaiUUlN/builds/rZYst1f5I3D9ibzk7/openapi.json
