# 👁️ SEC Form 4 Insider Trading Tracker — CEO/CFO Buys & Sells (`nexgendata/sec-form4-insider-tracker`) Actor

Track SEC Form 4 insider trading filings across US-listed companies. CEO, CFO, Director, 10%-owner buys & sells with shares, price, total value, post-transaction ownership. Cluster-buy detection. Bloomberg insider-flow alternative for hedge funds, quants, smart-money followers. Pay-per-result.

- **URL**: https://apify.com/nexgendata/sec-form4-insider-tracker.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 form 4 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 4 Insider Trading Tracker — CEO/CFO Buys & Sells

> **Track every Form 4 filing the SEC publishes — CEOs, CFOs, Directors, and 10% owners buying or selling their own company's stock. Cluster-buy detection. Real shares × price × total value × post-transaction ownership. Bloomberg insider-flow alternative for hedge funds, quants, and retail smart-money followers — without the $24K/year terminal.**

### 📊 Sample Output

[![👁️ SEC Form 4 Insider Trading Tracker — CEO/CFO Buys & Sells sample output — 👁️ SEC Form 4 Insider Trading Tracker — CEO/CFO Buys & Sells, premium API, JSON output, NexGenData premium dataset for anal](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/sec-form4-insider-tracker-output.png)](https://apify.com/nexgendata/sec-form4-insider-tracker)

When the CEO of a company buys $5M of his own stock with cash, that's a signal. Academic research consistently shows that **insider buying — especially cluster buying by multiple officers simultaneously — outperforms the S&P 500 by 6–12% over the following 12 months**. The data is free, public, and filed within 2 business days of every transaction. The problem is that nobody on Wall Street wants to pay $24K/year for a Bloomberg terminal just to monitor it, and the SEC's raw filing system is unusable at scale.

This actor solves that. It pulls **every Form 4 filing across every US-listed company** — sortable by ticker, date range, transaction type (buys vs sells), insider role (CEO / CFO / Director / 10% owner), minimum dollar value, and cluster-buy flag — and returns a clean, structured dataset ready for your trading model, dashboard, alert system, or compliance audit.

---

### What Form 4 Is (And Why It Matters)

Under SEC Section 16(a), **every officer, director, and 10% beneficial owner** of a US-listed company must file a Form 4 within **2 business days** of any transaction in that company's stock. The filing is public, free, and the official source of truth for "insider trading" — the legal kind, where insiders disclose their trades, not the illegal kind.

The signal value is well-documented:
- **Open-market CEO buys**: highest-conviction signal. The CEO is using personal after-tax cash to buy stock they could already get cheaper via options.
- **Cluster buys** (3+ insiders buying in 30 days): strongest documented insider signal — Lakonishok & Lee (2001), Cohen-Malloy-Pomorski (2012) both find 6–12% annualized alpha.
- **CFO sells under 10b5-1 plans**: weak signal (pre-scheduled). Discretionary CFO sells outside a plan: strong negative signal.
- **10% owner activity**: signals strategic positioning by large holders (Berkshire, BlackRock, activist funds).

---

### Output Schema

Each dataset item is one Form 4 transaction line:

| Field | Type | Example |
|---|---|---|
| `filing_date` | `str` | `2026-05-08` |
| `filing_time` | `str` | `18:48:54` |
| `transaction_date` | `str` | `2026-05-08` |
| `filer_name` | `str` | `Martell Frank` |
| `filer_title` | `str` | `CEO` |
| `relationship` | `str` | `Officer` / `Director` / `10% Owner` / `Other` |
| `company_ticker` | `str` | `SMRT` |
| `company_name` | `str` | `Smartrent, Inc.` |
| `transaction_code` | `str` | `P` (Purchase) / `S` (Sale) / `A` (Award) / `G` (Gift) / `F` (Tax) / `M` (Option Exercise) |
| `transaction_type` | `str` | `Open Market Purchase` |
| `shares_transacted` | `int` | `50000` (signed: + buy, − sell) |
| `shares_transacted_abs` | `int` | `50000` |
| `price_per_share` | `float` | `1.12` |
| `total_value_usd` | `int` | `56220` |
| `total_value_usd_abs` | `int` | `56220` |
| `shares_owned_after` | `int` | `3065266` |
| `pct_change_owned_pct` | `float` | `2.0` |
| `form_4_url` | `str` | `https://www.sec.gov/Archives/edgar/data/...` |
| `is_cluster_buy` | `bool` | `true` if 3+ insiders bought this ticker in 30 days |
| `is_cluster_sell` | `bool` | `true` if 3+ insiders sold this ticker in 30 days |
| `data_source` | `str` | `openinsider.com + sec.gov` |

---

### Input Filters

| Filter | Type | Description |
|---|---|---|
| `limit` | int (1–5000) | Max records to return. Default 100. |
| `transaction_type` | enum | `buys` / `sells` / `all`. Default `buys` (highest signal). |
| `date_range` | enum | `last_7d` / `last_30d` / `last_90d` / `last_180d` / `all`. Default `last_30d`. |
| `min_value_usd` | int | Minimum transaction dollar value. 0 = no filter. |
| `ticker` | str | Single ticker symbol to filter (e.g. `AAPL`). Blank = all. |
| `insider_role` | enum | `all` / `ceo` / `cfo` / `officer` / `director` / `10%_owner`. |
| `cluster_only` | bool | If true, return only cluster trades (3+ insiders same direction in 30 days). |

---

### Use Cases

#### 1. Hedge Funds & Quant Shops
Build a quant signal: long companies with 3+ open-market officer buys in the last 30 days, short companies with 3+ officer sells outside 10b5-1 plans. Backtest against the last 5 years using the `last_180d` window iterated through historical date ranges.

#### 2. Retail "Smart Money" Followers
Screen for high-conviction CEO/CFO buys above $1M. These are personal-cash trades — the CEO can't claim "tax-loss harvesting" or "diversification" when they're concentrating *more* into their own company.

#### 3. Compliance & Risk Teams
Monitor insider activity at your top suppliers, customers, and competitors. Sudden CFO sells before a quarterly earnings release? Get notified before the market.

#### 4. M&A Bankers
Track 10% owner activity at potential takeover targets. Activist accumulation patterns often precede public 13D filings by weeks.

#### 5. Journalists & Researchers
Audit-grade SEC links on every record. Drop the CSV into a story without worrying about source attribution.

---

### Comparison vs Bloomberg / FactSet / Refinitiv / TipRanks / OpenInsider Pro

| Capability | This Actor | Bloomberg | FactSet | Refinitiv | TipRanks | OpenInsider Pro |
|---|---|---|---|---|---|---|
| Form 4 transaction-level data | ✅ | ✅ | ✅ | ✅ | ⚠ summary | ✅ |
| CEO/CFO/Director role filter | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠ manual |
| Cluster-buy detection | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Min-value filter | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| Post-transaction ownership | ✅ | ✅ | ✅ | ✅ | ⚠ partial | ✅ |
| Direct SEC EDGAR link | ✅ | ⚠ separate | ⚠ separate | ⚠ separate | ❌ | ✅ |
| API / programmatic access | ✅ | ✅ ($24K/yr) | ✅ ($30K/yr) | ✅ ($22K/yr) | ⚠ paid | ❌ scrape only |
| Pay-per-result pricing | ✅ $0.10 | ❌ flat | ❌ flat | ❌ flat | ❌ flat | ❌ subscription |
| Annual cost @ 10K records/yr | **$1,001** | $24,000+ | $30,000+ | $22,000+ | $2,400 | $948 |

**Bottom line:** if you don't need a full Bloomberg terminal (and 99% of teams don't), this actor gets you the same insider-flow data for **3–4% of the cost**.

---

### Example Output

```json
{
  "filing_date": "2026-05-08",
  "filing_time": "18:48:54",
  "transaction_date": "2026-05-08",
  "filer_name": "Martell Frank",
  "filer_title": "CEO",
  "relationship": "Officer",
  "company_ticker": "SMRT",
  "company_name": "Smartrent, Inc.",
  "transaction_code": "P",
  "transaction_type": "Open Market Purchase",
  "shares_transacted": 50000,
  "shares_transacted_abs": 50000,
  "price_per_share": 1.12,
  "total_value_usd": 56220,
  "total_value_usd_abs": 56220,
  "shares_owned_after": 3065266,
  "pct_change_owned_pct": 2.0,
  "form_4_url": "https://www.sec.gov/Archives/edgar/data/1837014/000119312526215194/xslF345X03/ownership.xml",
  "is_cluster_buy": false,
  "is_cluster_sell": false,
  "data_source": "openinsider.com (Form 4 aggregator) + sec.gov (audit link)"
}
````

***

### Quickstart

#### Apify Console

1. Click **Start** on the actor page.
2. Set `transaction_type` to `buys`, `date_range` to `last_30d`, `min_value_usd` to `100000`.
3. Hit Run. Results appear in the dataset within ~30 seconds.

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/nexgendata~sec-form4-insider-tracker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"limit": 100, "transaction_type": "buys", "date_range": "last_30d", "min_value_usd": 250000}'
```

#### Python SDK

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("nexgendata/sec-form4-insider-tracker").call(run_input={
    "limit": 500,
    "transaction_type": "buys",
    "date_range": "last_90d",
    "insider_role": "ceo",
    "min_value_usd": 1000000,
    "cluster_only": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['filing_date']} {item['company_ticker']} {item['filer_name']} "
          f"({item['filer_title']}) bought ${item['total_value_usd_abs']:,}")
```

***

### Pricing

**$0.10 per Form 4 transaction record returned**, plus **$0.01 per actor start**.

- Smoke test (10 records): **$1.01**
- Daily monitor (100 records/day): **$3.01/day**, ~$90/month
- Full universe pull (5,000 records): **$500.01**

Compare to: Bloomberg ($2,000+/month), FactSet ($2,500+/month), Refinitiv ($1,800+/month). Even TipRanks Premium ($199/month) doesn't expose transaction-level Form 4 data via API.

***

### How It Works

**Primary data source:** [OpenInsider](http://openinsider.com) — a clean HTML aggregator that mirrors every SEC Form 4 filing within seconds of publication. We chose OpenInsider over the raw SEC EDGAR full-text search because:

1. **Pre-parsed cluster flags** — OpenInsider's `X` column already tags cluster activity.
2. **Transaction-pricing context** — OpenInsider parses the `price` and `quantity` fields out of the SEC XML reliably; SEC EDGAR returns the raw XML which is hostile to parse.
3. **Per-row SEC link** — every OpenInsider row links directly to the SEC EDGAR Form 4 XML for the audit trail.
4. **Doesn't rate-limit** under reasonable use.

**Audit trail:** Every record includes `form_4_url` pointing to the official SEC EDGAR XML filing. You can verify any transaction independently in 1 click.

**Cluster detection:** Computed locally on the returned dataset — we count distinct insiders per (ticker, direction) over the last 30 days and tag any company with 3+ insiders trading the same way.

***

### FAQ

**Q: How fresh is the data?**
A: OpenInsider re-scans SEC EDGAR every ~15 minutes. The SEC's own 2-business-day filing window is the binding constraint — even Bloomberg can't show you a Form 4 before the insider files it.

**Q: Does this include Form 144 (planned sales)?**
A: No — Form 144 is filed *before* a planned sale, and is a different filing. This actor tracks Form 4 (the actual transaction record). Form 144 is much noisier and has lower signal value.

**Q: How are 10b5-1 plan sales handled?**
A: The SEC requires insiders to flag 10b5-1 sales on the filing. We do not currently expose that flag explicitly, but you can identify likely 10b5-1 sales by clicking through to the `form_4_url` — they're typically routine, evenly-sized, and recur monthly.

**Q: What about international (non-US-listed) insiders?**
A: Form 4 is a US-only filing. For non-US insider disclosures, see local equivalents (UK FSA "PDMR" notices, Japanese "TOSHO" filings).

**Q: Can I get historical data going back 10 years?**
A: The `all` date range pulls the full OpenInsider screener window (~2 years). For deeper history, query the actor in a loop with rolling date windows — each Form 4 filing has its SEC URL preserved.

***

### Related Actors — Build A Full SEC / Smart-Money Stack

| Actor | What It Does |
|---|---|
| [SEC Form 13F Holdings Tracker](https://apify.com/nexgendata/sec-form-13f-holdings-tracker) | Quarterly institutional holdings — Berkshire, Renaissance, every hedge fund with $100M+ AUM. |
| [SEC Schedule 13D/G Activist Tracker](https://apify.com/nexgendata/sec-schedule-13dg-activist-tracker) | 5%+ ownership stakes by activists (Icahn, Ackman, Loeb). |
| [SEC Form 8-K Material Events Scraper](https://apify.com/nexgendata/sec-form-8k-material-events-scraper) | Real-time material disclosures — M\&A, CEO changes, restatements. |
| [Finviz Stock Screener](https://apify.com/nexgendata/finviz-stock-screener) | Filter the full US-listed universe by 60+ technical & fundamental criteria. |
| [Chinese ADRs Stock Screener](https://apify.com/nexgendata/chinese-adrs-stock-screener) | Track Chinese companies listed on US exchanges with risk and delisting flags. |
| [Finance MCP Server](https://apify.com/nexgendata/finance-mcp-server) | LLM-ready finance data — give Claude / GPT access to insider flows, fundamentals, charts. |

***

### Disclaimer

This actor returns **public SEC Form 4 filing data** sourced from SEC EDGAR (via OpenInsider as an aggregator). All transaction details are filed by the insiders themselves under SEC regulation; we add no proprietary signal, ranking, or recommendation. **This is not investment advice.** Insider trading data is one input among many; past performance does not predict future results.

***

### Affiliate / Referral

Like this actor? **Sign up for Apify with our referral link** to support more builds like this one:
[**https://apify.com/nexgendata?fpr=2ayu9b**](https://apify.com/nexgendata?fpr=2ayu9b)

You get the same free tier; we get a small commission. No price difference for you.

### 🔗 Related NexGenData Actors

Part of the NexGenData **SEC Filing** suite — pair this Actor with:

- [SEC Form 8-K Material Events Tracker](https://apify.com/nexgendata/sec-form-8k-material-events-scraper?fpr=2ayu9b)
- [SEC Form 13F Holdings Tracker  Hedge Fund Filings](https://apify.com/nexgendata/sec-form-13f-tracker-pro?fpr=2ayu9b)
- [SEC Form D Tracker  Private Capital Raises & Exempt Offerings](https://apify.com/nexgendata/sec-form-d-tracker?fpr=2ayu9b)
- [SEC Form ADV Investment Adviser Registration Tracker](https://apify.com/nexgendata/sec-form-adv-investment-adviser-tracker?fpr=2ayu9b)

# Actor input Schema

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

Maximum number of Form 4 transaction records to push to the dataset (one row per insider transaction line). OpenInsider returns the most recent records first, sorted by filing date descending. Typical insider-flow analysts pull 100–500 records per refresh.

## `transaction_type` (type: `string`):

Filter to open-market insider buys (P codes), open-market sells (S codes), or all transactions. 'Buys' is the highest-signal subset — directors and officers typically only buy with their own cash when they believe the stock is undervalued. 'Sells' includes both informed sales and routine 10b5-1 plan sales.

## `date_range` (type: `string`):

How far back to look for Form 4 filings (by SEC filing date, not transaction date — insiders have 2 business days to file). Use last\_7d for breaking news / event-driven flow; last\_30d for the standard insider-monitor window; last\_90d for backtests; all for the full OpenInsider history available on the screener.

## `min_value_usd` (type: `integer`):

Skip transactions below this dollar value. The dollar value is shares × price per share. Common thresholds: $25,000 (filter routine awards/gifts), $100,000 (material trades by mid-level officers), $1,000,000 (meaningful CEO/CFO conviction trades). Leave at 0 for no filter.

## `ticker` (type: `string`):

Restrict results to a single US-listed ticker symbol (e.g. 'AAPL', 'TSLA', 'NVDA'). Leave blank to pull all tickers — the screener covers every US-listed common stock with a Form 4 filing in the requested window.

## `insider_role` (type: `string`):

Filter by the insider's reported role / relationship. 'CEO' isolates the highest-signal trades (CEO buys are the strongest documented insider signal in academic studies). '10%\_owner' surfaces large strategic holders. 'all' returns every officer + director + 10% owner.

## `cluster_only` (type: `boolean`):

If true, return only transactions where 3+ insiders at the same company traded in the same direction within the prior 30 days (cluster-buy / cluster-sell signal). Cluster buys are widely considered the strongest insider conviction signal — the academic consensus is that they outperform the market by 6–12% in the following 12 months.

## Actor input object example

```json
{
  "limit": 100,
  "transaction_type": "buys",
  "date_range": "last_30d",
  "min_value_usd": 0,
  "ticker": "",
  "insider_role": "all",
  "cluster_only": false
}
```

# 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 = {
    "limit": 100,
    "transaction_type": "buys",
    "date_range": "last_30d",
    "min_value_usd": 0,
    "ticker": "",
    "insider_role": "all",
    "cluster_only": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/sec-form4-insider-tracker").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 = {
    "limit": 100,
    "transaction_type": "buys",
    "date_range": "last_30d",
    "min_value_usd": 0,
    "ticker": "",
    "insider_role": "all",
    "cluster_only": False,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/sec-form4-insider-tracker").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 '{
  "limit": 100,
  "transaction_type": "buys",
  "date_range": "last_30d",
  "min_value_usd": 0,
  "ticker": "",
  "insider_role": "all",
  "cluster_only": false
}' |
apify call nexgendata/sec-form4-insider-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/sec-form4-insider-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "👁️ SEC Form 4 Insider Trading Tracker — CEO/CFO Buys & Sells",
        "description": "Track SEC Form 4 insider trading filings across US-listed companies. CEO, CFO, Director, 10%-owner buys & sells with shares, price, total value, post-transaction ownership. Cluster-buy detection. Bloomberg insider-flow alternative for hedge funds, quants, smart-money followers. Pay-per-result.",
        "version": "0.0",
        "x-build-id": "CXou68aaCWJeHuZ6j"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~sec-form4-insider-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-sec-form4-insider-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~sec-form4-insider-tracker/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-sec-form4-insider-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~sec-form4-insider-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-sec-form4-insider-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "title": "Max Form 4 records to return",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of Form 4 transaction records to push to the dataset (one row per insider transaction line). OpenInsider returns the most recent records first, sorted by filing date descending. Typical insider-flow analysts pull 100–500 records per refresh.",
                        "default": 100
                    },
                    "transaction_type": {
                        "title": "Transaction type",
                        "enum": [
                            "buys",
                            "sells",
                            "all"
                        ],
                        "type": "string",
                        "description": "Filter to open-market insider buys (P codes), open-market sells (S codes), or all transactions. 'Buys' is the highest-signal subset — directors and officers typically only buy with their own cash when they believe the stock is undervalued. 'Sells' includes both informed sales and routine 10b5-1 plan sales.",
                        "default": "buys"
                    },
                    "date_range": {
                        "title": "Filing date range",
                        "enum": [
                            "last_7d",
                            "last_30d",
                            "last_90d",
                            "last_180d",
                            "all"
                        ],
                        "type": "string",
                        "description": "How far back to look for Form 4 filings (by SEC filing date, not transaction date — insiders have 2 business days to file). Use last_7d for breaking news / event-driven flow; last_30d for the standard insider-monitor window; last_90d for backtests; all for the full OpenInsider history available on the screener.",
                        "default": "last_30d"
                    },
                    "min_value_usd": {
                        "title": "Minimum transaction value (USD)",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Skip transactions below this dollar value. The dollar value is shares × price per share. Common thresholds: $25,000 (filter routine awards/gifts), $100,000 (material trades by mid-level officers), $1,000,000 (meaningful CEO/CFO conviction trades). Leave at 0 for no filter.",
                        "default": 0
                    },
                    "ticker": {
                        "title": "Ticker symbol filter (optional)",
                        "type": "string",
                        "description": "Restrict results to a single US-listed ticker symbol (e.g. 'AAPL', 'TSLA', 'NVDA'). Leave blank to pull all tickers — the screener covers every US-listed common stock with a Form 4 filing in the requested window.",
                        "default": ""
                    },
                    "insider_role": {
                        "title": "Insider role filter",
                        "enum": [
                            "all",
                            "ceo",
                            "cfo",
                            "officer",
                            "director",
                            "10%_owner"
                        ],
                        "type": "string",
                        "description": "Filter by the insider's reported role / relationship. 'CEO' isolates the highest-signal trades (CEO buys are the strongest documented insider signal in academic studies). '10%_owner' surfaces large strategic holders. 'all' returns every officer + director + 10% owner.",
                        "default": "all"
                    },
                    "cluster_only": {
                        "title": "Cluster trades only",
                        "type": "boolean",
                        "description": "If true, return only transactions where 3+ insiders at the same company traded in the same direction within the prior 30 days (cluster-buy / cluster-sell signal). Cluster buys are widely considered the strongest insider conviction signal — the academic consensus is that they outperform the market by 6–12% in the following 12 months.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
