# Funding Alert — New Form D Filing Watch (`zinin/funding-alert`) Actor

Watch SEC Form D filings by company name or sector keyword and get ONLY the new filings since your last check. Run it on a schedule and stop re-reading the same filings every time.

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

## Pricing

from $8.50 / 1,000 change founds

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/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

## Funding Alert — New Form D Filing Watch

Watch SEC Form D filings by company name or sector keyword and get only the filings
that are NEW since your last check — not the same filings you already saw last week.
Runs on our own live SEC EDGAR search engine under the hood.

### What you get

- A named "watch" (company name or sector keyword) that remembers what it has already
  shown you.
- Every scheduled run reports ONLY filings that were not there last time — company
  name, CIK, filing date, form type and a direct link to the filing.
- Run several independent watches from one Actor (e.g. one for AI startups, one for
  biotech seed rounds) — each has its own memory.
- The very first run for a new watch tells you honestly that it's establishing a
  baseline, not hiding a "no new filings" run as if it found something.
- Runs on Apify: schedule it, monitor it, call it from the API, export to
  JSON/CSV/Excel or push straight into your own pipeline.

### How to run it

1. Click **Try for free** — no card needed on the free plan.
2. Paste your company name or sector keyword into **Search queries**, optionally a
   name for this watch.
3. Hit **Start**. The first run creates the baseline; schedule it to run again (daily
   or weekly) to get a stream of only the NEW filings each time.

### Pricing

Pay-per-event: **$0.005 per run start + $0.01 per NEW filing / baseline
created**. The "no new filings" notice on a quiet run and any error/notice row are
never charged. 10 new filings cost about $0.11 (the one-time start fee plus 10 billed rows).

### Input

| Field | Required | What it does |
|---|---|---|
| `queries` | yes | Company names or sector keywords, e.g. `"artificial intelligence"`. Up to 25. |
| `sinceDays` | no | Lookback window for the underlying search, in days (1-730, default 90). |
| `baseline_key` | no | Name for this watch, so you can run several independent watches. |
| `limit` | no | Filings requested per query, per run (1-100, default 20). |
| `max_items` | no | Max NEW-filing rows delivered (and charged) per run (1-200, default 20). |

```json
{
    "queries": ["artificial intelligence"],
    "sinceDays": 180,
    "baseline_key": "ai-startups"
}
```

### Output

Baseline-created row (first run for a watch — real output, live run 30.07.2026):

```json
{
    "baselineKey": "selftest-funding-2",
    "found": true,
    "isNew": false,
    "baselineCreated": true,
    "company": null,
    "ciks": [],
    "filedAt": null,
    "form": null,
    "accessionNumber": null,
    "url": null,
    "currentFilingsCount": 5,
    "newFilingsCount": null,
    "error": "",
    "summary": "First check for \"selftest-funding-2\" — baseline created with 5 current filing(s) matching the filter. Future runs report only NEW filings against this baseline.",
    "checkedAt": "2026-07-30T08:37:17.804Z"
}
```

New-filing row (real output, live run 30.07.2026):

```json
{
    "baselineKey": "selftest-funding-2",
    "found": true,
    "isNew": true,
    "baselineCreated": false,
    "company": "UserFirst Software, Inc.",
    "ciks": ["0001698513"],
    "filedAt": "2026-06-29",
    "form": "D",
    "accessionNumber": "0001698513-26-000002",
    "url": "https://www.sec.gov/Archives/edgar/data/1698513/000169851326000002/0001698513-26-000002-index.htm",
    "currentFilingsCount": null,
    "newFilingsCount": 1,
    "error": "",
    "summary": "New filing for \"selftest-funding-2\": UserFirst Software, Inc. — Form D filed 2026-06-29.",
    "checkedAt": "2026-07-30T08:37:47.546Z"
}
```

| Field | Meaning |
|---|---|
| `baselineKey` | Which watch this row belongs to. |
| `found` | `true` for a real result row (new filing or baseline-created); `false` for a notice/error row. |
| `isNew` | `true` only for an actual new-filing row. |
| `baselineCreated` | `true` only on the first-ever run for this watch. |
| `company`, `ciks`, `filedAt`, `form`, `accessionNumber`, `url` | The filing's own fields, straight from SEC EDGAR. |
| `currentFilingsCount` | Only set on the baseline-created row: how many filings matched at that moment. |
| `newFilingsCount` | Total new filings detected this run (may exceed the rows actually delivered if capped by `max_items` or your remaining budget). |
| `error` | Empty string when the check completed cleanly (including "nothing new"); non-empty only on a real problem. |
| `summary` | Human-readable one-liner. |

### Other tools we built

#### Related tools

Related tools for adjacent workflows in financial signals and markets.

| Actor | What it does |
|---|---|
| [Funding Round Tracker](https://apify.com/zinin/funding-round-tracker) | Pair it in the financial signals and markets workflow: Track recent SEC Form D filings by company name or sector keyword — the notice a company files when it... |
| [SEC Filing Watcher](https://apify.com/zinin/sec-edgar-watcher) | Pair it in the financial signals and markets workflow: Watch stock tickers for new SEC filings — 10-K, 10-Q, 8-K, S-1 and more |
| [Insider Trading Tracker](https://apify.com/zinin/insider-trading-tracker) | Pair it in the financial signals and markets workflow: Track insider stock trades — SEC Form 3/4/5 filings — for any list of tickers |
| [Patent Filing Monitor](https://apify.com/zinin/patent-monitor) | Pair it in the financial signals and markets workflow: Watch keywords or technologies for newly granted US patents |
| [13F Portfolio Tracker](https://apify.com/zinin/thirteen-f-tracker) | Pair it in the financial signals and markets workflow: Track institutional managers (hedge funds, family offices) by SEC CIK or name and get their recent 13F-HR... |

### FAQ / Limitations

**Does this cover funding rounds outside the US?** No — SEC Form D covers private
placements filed with the US Securities and Exchange Commission only.

**What happens if I change my `queries` for an existing `baseline_key`?** The watch
keeps comparing against whatever it last saw, so changing the filter can produce a
burst of "new" filings that simply weren't checked for under the old filter. Use a
new `baseline_key` for an intentionally different watch.

**What this is NOT.** This is not investment advice, and a Form D filing does not mean
a deal has closed or is verified — it's a regulatory notice. Verify independently
before acting on it.

Found a bug or need a custom watch? Issues on the Actor's page.

# Actor input Schema

## `queries` (type: `array`):

Company names or sector keywords to watch for new SEC Form D filings (e.g. "artificial intelligence", "biotech", or a specific company name). Every scheduled run re-checks these same queries and reports ONLY filings not seen on a previous run for this watch.

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

Only consider filings from the last N days when checking for matches — keep this generous (well beyond your run schedule) so a filing near the edge of the window is never missed because of clock drift between runs.

## `baseline_key` (type: `string`):

A name for THIS watch, so you can run several independent filing watches from one Actor (e.g. "ai-startups", "biotech-seed") without one overwriting another's memory of what's already been seen. Each name is scoped to YOUR OWN Apify account. The prefilled value is only there so this Actor's own daily test run has a stable, obviously-a-test name; replace it with your own watch name.

## `limit` (type: `integer`):

Max number of filings requested per query, per run.

## `max_items` (type: `integer`):

Caps how many NEW-filing rows a single run will deliver and charge for, even if more were found.

## Actor input object example

```json
{
  "queries": [
    "artificial intelligence"
  ],
  "sinceDays": 90,
  "baseline_key": "apify-daily-test",
  "limit": 5,
  "max_items": 20
}
```

# Actor output Schema

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

API URL for the default dataset items produced by this run.

# 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 = {
    "queries": [
        "artificial intelligence"
    ],
    "baseline_key": "apify-daily-test",
    "limit": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("zinin/funding-alert").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 = {
    "queries": ["artificial intelligence"],
    "baseline_key": "apify-daily-test",
    "limit": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("zinin/funding-alert").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 '{
  "queries": [
    "artificial intelligence"
  ],
  "baseline_key": "apify-daily-test",
  "limit": 5
}' |
apify call zinin/funding-alert --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/xbo0VcSudGBrA38Ai/builds/O7hR4qHqtAG3yk9QD/openapi.json
