# SEC Form 4 Insider Monitor — Transaction Alerts (`nexgendata/sec-form-4-insider-monitor`) Actor

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

## Pricing

from $250.00 / 1,000 insider alerts

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 Monitor — Transaction Alerts

Monitor recent SEC Form 4 insider transaction filings and receive alerts when new officer, director, or beneficial-owner activity appears. This Actor watches issuers, insiders, or transaction codes, snapshots seen filings, and emits only new transactions in delta mode.

### What it does

On each run it pulls **recent** Form 4 filings using NexGenData's owned `sec-form-4-insider-trading-scraper`, explodes each filing into its individual insider transactions, labels each transaction code (purchase, sale, grant, option exercise, etc.), records what it has seen, and in delta mode emits only transactions that are new since the last run. It monitors recent filings on a rolling window — it is not a full real-time institutional feed, and it does not provide investment advice.

### Who it's for

Equity research, investor relations, event-driven funds, governance and compliance teams tracking insider activity.

### Recommended setup

**Run once in `full` mode to baseline, then schedule daily `delta` runs.** The first delta run per watch query records a baseline and emits nothing (expected); after that you get only new transactions.

### Inputs

| Field | Default | Notes |
|---|---|---|
| `tickers` | `[]` | Only alert on these issuer tickers; empty = all |
| `ciks` | `[]` | Only alert on these issuer/reporting-owner CIKs |
| `insider_names` | `[]` | Only alert on these reporting owners (whole-word name match) |
| `transaction_codes` | `[]` | Only these codes; empty = all |
| `lookback_days` | `3` | Days back to scan each run |
| `mode` | `delta` | `delta` (new only) or `full` (all in window) |
| `max_filings` | `500` | Safety cap per run |
| `include_raw` | `false` | Attach the raw source record |

### Transaction labels

`P`→purchase, `S`→sale, `A`→grant / award, `M`→option exercise / conversion, `D`→disposition, `F`→tax withholding / payment, `G`→gift, `J`→other transaction; unknown codes are kept as `unknown_code`.

### Outputs

`accession_number, change_type, cik, ticker, company, insider_name, insider_role, is_director, is_officer, is_ten_percent_owner, transaction_date, transaction_code, transaction_label, security_title, shares, price, transaction_value, ownership_nature, filing_date, filing_url, matched_watch, detected_at` (plus `raw` when enabled).

### Delta mode vs full mode

- **full** — emits every matching transaction in the window and refreshes the snapshot.
- **delta** — emits only transactions whose (accession + insider + code + date) has not been seen before. First delta run baselines and emits nothing; later runs emit only new transactions.

### Limitations

This is an **alerting tool, not investment or legal advice**. It monitors **recent** Form 4 filings on a rolling window via the owned source Actor; it is not a full real-time institutional coverage feed. Coverage and timing follow SEC EDGAR's publication of Form 4 filings. Always confirm against the official filing before acting.

# Actor input Schema

## `tickers` (type: `array`):

Only alert on Form 4 filings from these issuer tickers; empty = all issuers in the window.
## `ciks` (type: `array`):

Only alert on filings whose issuer or reporting-owner CIK matches one of these.
## `insider_names` (type: `array`):

Only alert on transactions by these reporting owners (matched on name as whole-word phrases).
## `transaction_codes` (type: `array`):

Only alert on these Form 4 codes, e.g. P=purchase, S=sale, A=grant, M=option exercise, F=tax. Empty = all.
## `lookback_days` (type: `integer`):

How many days back to scan for filings on each run.
## `mode` (type: `string`):

delta = only transactions not seen since the last run (first run baselines). full = all in window.
## `max_filings` (type: `integer`):

Safety cap on filings pulled from the source per run.
## `include_raw` (type: `boolean`):

Attach the raw source filing + transaction record to each output row.

## Actor input object example

```json
{
  "tickers": [],
  "ciks": [],
  "insider_names": [],
  "transaction_codes": [],
  "lookback_days": 3,
  "mode": "delta",
  "max_filings": 500,
  "include_raw": 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/sec-form-4-insider-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/sec-form-4-insider-monitor").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 '{}' |
apify call nexgendata/sec-form-4-insider-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC Form 4 Insider Monitor — Transaction Alerts",
        "version": "0.0",
        "x-build-id": "kDrw6HYea4tUvU9LS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~sec-form-4-insider-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-sec-form-4-insider-monitor",
                "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-form-4-insider-monitor/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-sec-form-4-insider-monitor",
                "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-form-4-insider-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-sec-form-4-insider-monitor",
                "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": {
                    "tickers": {
                        "title": "Watched tickers (optional)",
                        "type": "array",
                        "description": "Only alert on Form 4 filings from these issuer tickers; empty = all issuers in the window.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "ciks": {
                        "title": "Watched CIKs (optional)",
                        "type": "array",
                        "description": "Only alert on filings whose issuer or reporting-owner CIK matches one of these.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "insider_names": {
                        "title": "Watched insiders (optional)",
                        "type": "array",
                        "description": "Only alert on transactions by these reporting owners (matched on name as whole-word phrases).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "transaction_codes": {
                        "title": "Transaction codes (optional)",
                        "type": "array",
                        "description": "Only alert on these Form 4 codes, e.g. P=purchase, S=sale, A=grant, M=option exercise, F=tax. Empty = all.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "lookback_days": {
                        "title": "Lookback window (days)",
                        "minimum": 1,
                        "maximum": 90,
                        "type": "integer",
                        "description": "How many days back to scan for filings on each run.",
                        "default": 3
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "full",
                            "delta"
                        ],
                        "type": "string",
                        "description": "delta = only transactions not seen since the last run (first run baselines). full = all in window.",
                        "default": "delta"
                    },
                    "max_filings": {
                        "title": "Max filings per run",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Safety cap on filings pulled from the source per run.",
                        "default": 500
                    },
                    "include_raw": {
                        "title": "Include raw record",
                        "type": "boolean",
                        "description": "Attach the raw source filing + transaction record to each output row.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
