# Insider Trading Alert — Executive Buy & Sell Signals (`m_ctim/insider-trading-alert`) Actor

Track SEC Form 4 filings: which company executives, directors, and 10% owners just bought or sold stock, how many shares, at what price. Search market-wide or by ticker.

- **URL**: https://apify.com/m\_ctim/insider-trading-alert.md
- **Developed by:** [Timothy Kelvin](https://apify.com/m_ctim) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

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

## Insider Trading Alert — Executive Buy & Sell Signals

Track SEC Form 4 filings: which company executives, directors, and 10%+
owners just bought or sold stock, how many shares, at what price, and how
many shares they hold now. Search one company by ticker, or scan the
market-wide feed of the newest insider filings across all companies.

Built for investors and analysts screening for insider conviction (or
concern), and sales/research teams using insider buying as a signal
alongside other buying-intent data.

### Input

```json
{
  "ticker": "AAPL",
  "transactionType": "disposed",
  "minTransactionValue": 100000,
  "maxFilings": 20
}
```

| Field | Type | Description |
|---|---|---|
| `ticker` | string | Stock ticker for one company. Leave blank to scan the market-wide feed of the newest Form 4 filings across all companies. |
| `transactionType` | string | `all`, `acquired` (buys), or `disposed` (sells). Default `all`. |
| `minTransactionValue` | number | Only return transactions worth at least this much (shares × price). Leave blank for no minimum. |
| `maxFilings` | number | How many recent filings to fetch and parse (each can contain multiple transactions). Default `20`, max `50`. Market-wide scans draw from SEC's latest ~100-filing buffer, so very high values may return fewer unique filings than requested when filing activity is low. |

### Output

One record per transaction:

```json
{
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126025622/0001140361-26-025622-index.htm",
  "accessionNumber": "0001140361-26-025622",
  "issuerName": "Apple Inc.",
  "issuerTicker": "AAPL",
  "issuerCik": 320193,
  "reportingOwnerName": "Newstead Jennifer",
  "reportingOwnerCik": 1780525,
  "coReportingOwners": [],
  "isOfficer": true,
  "officerTitle": "SVP, GC and Secretary",
  "isDirector": false,
  "isTenPercentOwner": false,
  "securityTitle": "Common Stock",
  "transactionDate": "2026-06-15",
  "transactionCode": "F",
  "acquiredDisposedCode": "D",
  "shares": 16238,
  "pricePerShare": 296.42,
  "transactionValue": 4813267.96,
  "sharesOwnedAfter": 41546
}
```

`transactionCode` is SEC's own code (`P` open-market purchase, `S` open-market
sale, `A` grant/award, `M` option exercise, `F` shares withheld for taxes,
`G` gift, etc.) — `acquiredDisposedCode` (`A`/`D`) is the simpler acquired-vs-disposed
split used by the `transactionType` filter. This actor covers non-derivative
(common stock) transactions; option/derivative exercises are not included.

### How it works

Reads directly from the official [SEC EDGAR](https://www.sec.gov/edgar) system:
the public filings feed to discover recent Form 4 filings, then the filing's
own XML ownership document for full transaction detail. No proxy, no login,
no scraping of rendered pages — this is the same structured data EDGAR
itself is built on.

### Pricing note

Billed per **search**, not per transaction returned — one charge whether
the search returns 1 transaction or 50.

### Related products

Looking for company-level buying signals instead of insider trades?

- [Company Buying Signal Report](https://github.com/timmKal01/company-buying-signal-report) — hiring, tech stack & contact info combined per company
- [Federal Contract Award Tracker](https://github.com/timmKal01/federal-contract-award-tracker) — who just won government contracts

# Actor input Schema

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

Stock ticker (e.g. "AAPL") to get insider filings for one company. Leave blank to scan the market-wide feed of the newest Form 4 filings across all companies.

## `transactionType` (type: `string`):

Filter to shares acquired (buys), disposed (sells), or all transactions.

## `minTransactionValue` (type: `integer`):

Only return transactions worth at least this much (shares x price). Leave blank for no minimum.

## `maxFilings` (type: `integer`):

How many recent Form 4 filings to fetch and parse. Each filing can contain multiple transactions.

## Actor input object example

```json
{
  "transactionType": "all",
  "maxFilings": 20
}
```

# 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("m_ctim/insider-trading-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 = {}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,m_ctim/insider-trading-alert"
        }
    }
}

```

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/BYa9J9Q9sB3vNwHrz/builds/EKdaxixC53n0wcUwG/openapi.json
