# Insider Trading Feed — SEC Form 4 Buys & Sells as Clean JSON (`jdepablos/insider-trading-feed`) Actor

Insider transactions for any US-listed company, parsed from official SEC Form 4 filings: open-market buys and sells with insider name and role, shares, prices, totals and post-transaction holdings. Built for investors, quants and AI agents.

- **URL**: https://apify.com/jdepablos/insider-trading-feed.md
- **Developed by:** [Juan de Pablos](https://apify.com/jdepablos) (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 $15.00 / 1,000 company scans

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Insider Trading Feed — SEC Form 4 Buys & Sells as Clean JSON

**When executives buy their own stock, you want to know.** One call per company: every recent SEC Form 4 filing parsed into structured insider transactions — who bought or sold, how many shares, at what price, and what they hold now.

Most EDGAR scrapers hand you raw filing lists. This Actor answers the question investors actually ask: **"Are insiders buying or dumping this stock — and how much?"**

### What you get per company

```json
{
  "ticker": "NVDA",
  "company": "NVIDIA CORP",
  "cik": 1045810,
  "daysBack": 30,
  "summary": {
    "filings": 7,
    "buys": 2, "sells": 5,
    "buyValueUsd": 1250000.00,
    "sellValueUsd": 18400000.00
  },
  "filings": [
    {
      "filedAt": "2026-06-29",
      "insider": { "name": "STEVENS MARK A", "isDirector": true, "isOfficer": false, "officerTitle": null },
      "transactions": [
        {
          "security": "Common Stock", "date": "2026-06-27",
          "code": "P", "type": "buy",
          "shares": 10000, "pricePerShare": 125.00, "valueUsd": 1250000.00,
          "sharesOwnedAfter": 11544612, "ownership": "D"
        }
      ],
      "url": "https://www.sec.gov/Archives/edgar/data/1045810/..."
    }
  ]
}
````

### Why this beats raw filings

- **The signal, pre-filtered**: by default only open-market buys (`P`) and sells (`S`) — the codes with information value. Grants, option exercises and gifts are noise unless you ask for them.
- **Role context included**: a CEO buying is not the same as a 10%-owner rebalancing. `isDirector` / `isOfficer` / `officerTitle` / `isTenPercentOwner` on every filing.
- **Totals computed**: `buyValueUsd` vs `sellValueUsd` per window — the insider-sentiment ratio in one glance.
- **Official source, auditable**: parsed live from SEC EDGAR, every filing carries its official URL and accession number.

### Use cases

- **Investors / quants**: daily watchlist sweep — alert when net insider buying turns positive.
- **Research / journalism**: who sold before the crash, with documents linked.
- **AI agents**: "did any NVDA insiders buy this month?" — one tool call, structured answer.
- **Screeners**: feed 25 tickers per run, rank by `buyValueUsd`.

### Input

| Field | Description |
|---|---|
| `ticker` / `tickers` | US-listed ticker(s), up to 25 per run |
| `daysBack` | Filing window (default 30, max 365) |
| `transactionCodes` | Default `["P", "S"]` (open-market only); empty = all codes |
| `maxFilingsPerCompany` | Cap per ticker (default 25) |

### Use with AI agents (MCP)

This Actor is exposed as a tool on the [Apify MCP Server](https://mcp.apify.com):

```json
{
  "mcpServers": {
    "insider-trading-feed": {
      "url": "https://mcp.apify.com?tools=jdepablos/insider-trading-feed",
      "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
    }
  }
}
```

### Pricing

Pay per event: **one flat fee per company scanned** — all filings in the window, parsed and totaled. Failed tickers are never charged.

### FAQ

**Is this investment advice?** No. It is structured public regulatory data (SEC Form 4). What it means for a stock is your call.

**How fresh is it?** Form 4 must be filed within 2 business days of the transaction; this Actor reads EDGAR live, so you see filings minutes after they land.

**Foreign companies?** Any company that files Form 4 with the SEC (US-listed, including ADRs of foreign issuers that file).

### More data tools by this developer

- [eBay Sold Price Appraiser — real market value from confirmed sales](https://apify.com/jdepablos/ebay-sold-price-appraiser)
- [Second-hand Deal Scanner EU — Vinted/Wallapop/Milanuncios deals vs eBay sold](https://apify.com/jdepablos/second-hand-deal-scanner-es)
- [Spanish Company Feed (BORME) — daily registry acts as JSON](https://apify.com/jdepablos/borme-company-feed)
- [Spain Public Auctions (BOE) — judicial auctions with market comparison](https://apify.com/jdepablos/spain-boe-auctions)
- [Global Trademark Watch (TMview) — new filings & opposition deadlines](https://apify.com/jdepablos/trademark-watch-tmview)

# Actor input Schema

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

US-listed ticker, e.g. AAPL. For multiple companies use 'tickers'.

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

Up to 25 tickers per run, e.g. \["AAPL", "NVDA", "TSLA"].

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

Only include Form 4 filings from this window.

## `transactionCodes` (type: `array`):

SEC codes to include. P = open-market buy (the bullish signal), S = open-market sale. Empty = all codes (grants, option exercises, gifts, ...).

## `maxFilingsPerCompany` (type: `integer`):

Cap of Form 4 filings fetched per ticker.

## Actor input object example

```json
{
  "ticker": "NVDA",
  "daysBack": 30,
  "transactionCodes": [
    "P",
    "S"
  ],
  "maxFilingsPerCompany": 25
}
```

# 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 = {
    "ticker": "NVDA"
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdepablos/insider-trading-feed").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 = { "ticker": "NVDA" }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Insider Trading Feed — SEC Form 4 Buys & Sells as Clean JSON",
        "description": "Insider transactions for any US-listed company, parsed from official SEC Form 4 filings: open-market buys and sells with insider name and role, shares, prices, totals and post-transaction holdings. Built for investors, quants and AI agents.",
        "version": "0.1",
        "x-build-id": "17j2sewRAOlEND3hl"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jdepablos~insider-trading-feed/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jdepablos-insider-trading-feed",
                "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/jdepablos~insider-trading-feed/runs": {
            "post": {
                "operationId": "runs-sync-jdepablos-insider-trading-feed",
                "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/jdepablos~insider-trading-feed/run-sync": {
            "post": {
                "operationId": "run-sync-jdepablos-insider-trading-feed",
                "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": {
                    "ticker": {
                        "title": "Ticker",
                        "type": "string",
                        "description": "US-listed ticker, e.g. AAPL. For multiple companies use 'tickers'."
                    },
                    "tickers": {
                        "title": "Watchlist (optional)",
                        "type": "array",
                        "description": "Up to 25 tickers per run, e.g. [\"AAPL\", \"NVDA\", \"TSLA\"]."
                    },
                    "daysBack": {
                        "title": "Days back",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "Only include Form 4 filings from this window.",
                        "default": 30
                    },
                    "transactionCodes": {
                        "title": "Transaction codes",
                        "type": "array",
                        "description": "SEC codes to include. P = open-market buy (the bullish signal), S = open-market sale. Empty = all codes (grants, option exercises, gifts, ...).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "P",
                                "S",
                                "A",
                                "M",
                                "G",
                                "F",
                                "D",
                                "C"
                            ],
                            "enumTitles": [
                                "P — open-market buy",
                                "S — open-market sale",
                                "A — grant/award",
                                "M — option exercise",
                                "G — gift",
                                "F — tax withholding",
                                "D — disposition to issuer",
                                "C — conversion"
                            ]
                        },
                        "default": [
                            "P",
                            "S"
                        ]
                    },
                    "maxFilingsPerCompany": {
                        "title": "Max filings per company",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Cap of Form 4 filings fetched per ticker.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
