# SEC Insider Trading Tracker – Form 4 (`sfoln/sec-insider-trading`)

Insider trades from SEC Form 4 and Form 5 filings: one row per transaction with the insider's name and role, date, transaction code, shares, price, value, holdings after and 10b5-1 flag. By company ticker, CIK or name, or for all companies. $2 per 1,000 transactions.

- Family: Compliance & public records
- Categories: News, AI, Automation
- Store: https://apify.com/sfoln/sec-insider-trading (Markdown: https://apify.com/sfoln/sec-insider-trading.md)
- JSON: https://www.sfoln.com/actors/sec-insider-trading.json
- MCP: https://mcp.apify.com?tools=sfoln/sec-insider-trading
- REST (sync): POST https://api.apify.com/v2/actors/sfoln~sec-insider-trading/run-sync-get-dataset-items
- REST (async): POST https://api.apify.com/v2/actors/sfoln~sec-insider-trading/runs

Track insider trading from SEC Form 4 and Form 5 filings: one clean row per transaction with the insider's name and role as filed (director, officer and title, 10% owner), transaction date, SEC transaction code and its meaning (open-market purchase, sale, award, option exercise, tax withholding, gift), shares, price, dollar value, shares owned afterwards, direct or indirect ownership, the Rule 10b5-1 flag and the filing's footnotes. Look up companies by ticker, CIK or name, or read the latest filings of all companies to spot insider buying across the market. Built for investors, quant and research teams, journalists and AI agents.

## Price per delivered record

| Event | Price | Per 1,000 | Charged for |
| --- | --- | --- | --- |
| Insider transaction (`insider-transaction`) | $0.002 | $2 / 1,000 | One transaction reported on SEC Form 4 or 5: insider, role, date, code, shares, price, value, holdings after. |

Pay-per-event, USD, billed by Apify; no platform usage charge. Only records with status `ok` are charged. Cap a run with `maxTotalChargeUsd`. Apify free plan: up to 10 per run.

## Run

```bash
curl -X POST "https://api.apify.com/v2/actors/sfoln~sec-insider-trading/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies":["AAPL"],"maxTransactionsPerCompany":5}'
```

MCP client configuration:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=sfoln/sec-insider-trading"
    }
  }
}
```

Example prompt: Show the five most recent insider transactions at Apple from SEC Form 4 filings, with who traded, the price and the value.

## Input

Companies (issuers) by ticker, CIK or name: one dataset row per Form 4/5 transaction plus one summary per company. Leave companies empty for the latest filings of all companies.

| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| `companies` | array | — | Companies: Issuers by ticker (AAPL), CIK (320193) or name, one per line. Leave empty to get the latest Form 4/5 transactions of all companies in the date window (default: the last 3 days). Accounts on the Apify free plan can process up to 10 companies per run and 20 transactions per company. |
| `transactionCodes` | array | — | Transaction codes: Only these Form 4 codes, e.g. P (open-market purchase), S (sale), A (award), M (option exercise), F (tax withholding), G (gift). Empty: all. |
| `dateFrom` | string | — | Filed from: Earliest filing date: YYYY-MM-DD or a span such as "30 days". Default: none for companies, the last 3 days for all companies. |
| `dateTo` | string | — | Filed to: Latest filing date (YYYY-MM-DD or a span such as "7 days"). Empty: today. |
| `minTransactionValue` | integer | — | Minimum transaction value (USD): Only transactions with shares × price of at least this many dollars (transactions without a price are then left out). |
| `includeDerivative` | boolean | `true` | Include derivative transactions: Also return option, RSU and warrant transactions (Table II of Form 4). |
| `includeAmendments` | boolean | `true` | Include amendments: Also read amended filings (4/A, 5/A). |
| `maxTransactionsPerCompany` | integer | `50` | Max transactions per company: Transactions returned per company, newest filings first (for all companies: transactions in total). |
| `maxCompanies` | integer | `100` | Max companies: Safety cap on companies processed in this run; the rest are ignored and counted as inputItemsDropped in the OUTPUT record. |
| `concurrency` | integer | `2` | Concurrency: Companies processed in parallel. All requests share SEC's rate limit (8 requests per second). |
| `includeRaw` | boolean | `false` | Include raw upstream data: Attach the transaction as parsed from the filing's XML to each row. |

Example input:

```json
{
  "companies": [
    "AAPL"
  ],
  "maxTransactionsPerCompany": 5
}
```

## Output

One record per input item with `status` (`ok` is charged; `not_found`, `error`, `skipped_*` are free) and `charged`. The run stores an `OUTPUT` summary record.

| Field | Type | Meaning |
| --- | --- | --- |
| `input` | string | object | Input: The company as entered, or latest-filings for all companies. |
| `recordType` | string | Record type: transaction (one per delivered transaction, charged) \| summary (one per input, not charged). |
| `position` | integer | Position: 1-based position of the transaction within its input (newest filings first). |
| `accessionNumber` | string | Accession number |
| `form` | string | Form: 4, 4/A, 5 or 5/A. |
| `filingDate` | string | null | Filed |
| `periodOfReport` | string | null | Period of report |
| `issuerCik` | integer | null | Issuer CIK |
| `issuerName` | string | null | Issuer |
| `issuerTicker` | string | null | Ticker |
| `ownerName` | string | null | Insider: Reporting owner as filed (first owner of a joint filing). |
| `ownerCik` | integer | null | Insider CIK |
| `ownerRelationship` | string | null | Relationship: As filed, e.g. "Director, Officer (Chief Financial Officer)", "10% owner". |
| `isDirector` | boolean | Director |
| `isOfficer` | boolean | Officer |
| `officerTitle` | string | null | Officer title |
| `isTenPercentOwner` | boolean | 10% owner |
| `reportingOwners` | array | Reporting owners: Every owner of the filing: [{ name, cik, relationship }]. |
| `table` | string | Table: non-derivative (shares) \| derivative (options, RSUs, warrants). |
| `securityTitle` | string | null | Security |
| `transactionDate` | string | null | Transaction date |
| `transactionCode` | string | null | Code: SEC transaction code: P purchase, S sale, A award, M exercise, F tax withholding, G gift, … |
| `transactionCodeDescription` | string | null | Code meaning |
| `acquiredDisposed` | string | null | A/D: A = acquired, D = disposed. |
| `shares` | number | null | Shares |
| `pricePerShare` | number | null | Price per share |
| `transactionValue` | number | null | Value (USD): shares × price (null without a price). |
| `sharesOwnedAfter` | number | null | Owned after |
| `directOrIndirect` | string | null | Ownership: D = direct, I = indirect. |
| `ownershipNature` | string | null | Nature of indirect ownership |
| `conversionOrExercisePrice` | number | null | Exercise price |
| `exerciseDate` | string | null | Exercisable from |
| `expirationDate` | string | null | Expires |
| `underlyingSecurityTitle` | string | null | Underlying security |
| `underlyingShares` | number | null | Underlying shares |
| `deemedExecutionDate` | string | null | Deemed execution date |
| `equitySwapInvolved` | boolean | null | Equity swap |
| `isRule10b5_1` | boolean | null | Rule 10b5-1 plan: The filing's Rule 10b5-1(c) checkbox (filings since 2023; null when absent). |
| `footnotes` | array | Footnotes: Texts of the footnotes the transaction references. |
| `xmlUrl` | string | Filing XML |
| `filingIndexUrl` | string | Filing index |
| `query` | string | Query: Summary records: the company as entered. |
| `found` | boolean | Found |
| `matchedBy` | string | Matched by: cik \| ticker \| name \| name-search. |
| `dateFrom` | string | null | From |
| `dateTo` | string | null | To |
| `filingsInWindow` | integer | null | Filings in window: All-companies summary: Form 4/5 filings EDGAR lists for the date window. |
| `filingsScanned` | integer | Filings read |
| `resultsDelivered` | integer | Transactions delivered |
| `stopReason` | string | Stop reason: limit \| free_plan \| end \| budget \| aborted \| deadline \| max_pages \| error |
| `status` | string | Status: ok \| not_found \| error \| skipped_budget \| skipped_free_plan \| skipped_unmetered |
| `charged` | boolean | Charged |
| `chargedEvent` | string | Charged event |
| `chargedCount` | integer | Events charged |
| `source` | string | Source: sec-edgar |
| `fetchedAt` | string | Fetched at |
| `error` | object | Error: { code, message, provider?, status? } when status is not ok. Runtime codes: budget_exhausted, free_plan_limit, unmetered, aborted, charge_failed, record_too_large, invalid_record, dataset_push_failed; upstream codes: auth, rate_limit, timeout, network, server, client, invalid_response, not_found. |
| `warnings` | array | Warnings |
| `raw` | object | Raw: The transaction as parsed from the filing XML (only with includeRaw). |

Example record:

```json
[
  {
    "input": "AAPL",
    "recordType": "transaction",
    "position": 3,
    "accessionNumber": "0001140361-26-038674",
    "form": "4",
    "filingDate": "2026-10-05",
    "periodOfReport": "2026-10-01",
    "issuerCik": 320193,
    "issuerName": "Apple Inc.",
    "issuerTicker": "AAPL",
    "ownerName": "DOE JANE Q",
    "ownerCik": 9990001,
    "ownerRelationship": "Director, Officer (Executive Chair)",
    "isDirector": true,
    "isOfficer": true,
    "officerTitle": "Executive Chair",
    "isTenPercentOwner": false,
    "reportingOwners": [
      {
        "name": "DOE JANE Q",
        "cik": 9990001,
        "relationship": "Director, Officer (Executive Chair)"
      }
    ],
    "table": "non-derivative",
    "securityTitle": "Common Stock",
    "transactionDate": "2026-10-02",
    "transactionCode": "S",
    "transactionCodeDescription": "Open market or private sale",
    "acquiredDisposed": "D",
    "shares": 23143,
    "pricePerShare": 331.44,
    "transactionValue": 7670515.92,
    "sharesOwnedAfter": 3432778,
    "directOrIndirect": "D",
    "ownershipNature": null,
    "conversionOrExercisePrice": null,
    "exerciseDate": null,
    "expirationDate": null,
    "underlyingSecurityTitle": null,
    "underlyingShares": null,
    "deemedExecutionDate": null,
    "equitySwapInvolved": false,
    "isRule10b5_1": true,
    "footnotes": [
      "This transaction was made pursuant to a Rule 10b5-1 trading plan adopted by the reporting person on May 28, 2026.",
      "This transaction was executed in multiple trades at prices ranging from $330.66 to $331.655; the price reported above reflects the weighted average sale price."
    ],
    "xmlUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126038674/form4.xml",
    "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126038674/0001140361-26-038674-index.htm",
    "status": "ok",
    "charged": true,
    "chargedEvent": "insider-transaction",
    "source": "sec-edgar",
    "fetchedAt": "2026-10-14T10:00:00.000Z"
  },
  {
    "input": "AAPL",
    "query": "AAPL",
    "issuerCik": 320193,
    "issuerName": "Apple Inc.",
    "issuerTicker": "AAPL",
    "matchedBy": "ticker",
    "filingsScanned": 5,
    "recordType": "summary",
    "resultsDelivered": 50,
    "stopReason": "limit",
    "status": "ok",
    "charged": false,
    "source": "sec-edgar",
    "fetchedAt": "2026-10-14T10:00:00.000Z"
  }
]
```

## FAQ

**Which transactions are included?**

Every transaction in Table I (shares) and, unless switched off, Table II (options, RSUs, warrants) of Forms 4 and 5, including amendments. Holdings reported without a transaction are not rows. Filter by transaction code, for example P for open-market purchases.

**Can I see trades across all companies?**

Yes: leave companies empty to read the latest Form 4 and 5 filings of all companies in the date window (default: the last 3 days), newest filing date first, combined with code and value filters to find, for example, large open-market purchases.


## Related

- [SEC EDGAR Filings Scraper – 10-K, 10-Q, 8-K](https://www.sfoln.com/actors/sec-edgar-filings.md) (`sfoln/sec-edgar-filings`)
- [SEC Form D Startup Funding Leads](https://www.sfoln.com/actors/sec-form-d-leads.md) (`sfoln/sec-form-d-leads`)
- [Website Contact Details Scraper](https://www.sfoln.com/actors/company-contacts-finder.md) (`sfoln/company-contacts-finder`)

Publisher: SFOLN LLC, contact@sfoln.com. Catalogue: https://www.sfoln.com/catalog.json. Agent guide: https://www.sfoln.com/agents.md.
