SEC Form 4 Watchlist Monitor avatar

SEC Form 4 Watchlist Monitor

Pricing

from $5.00 / 1,000 alerts

Go to Apify Store
SEC Form 4 Watchlist Monitor

SEC Form 4 Watchlist Monitor

Monitors SEC tickers/CIKs for new insider-trading and ownership filings (Forms 3, 4, 5, 13F): one alert per new filing. Use cases: compliance watchlist alerting, M&A screening, quant insider-flow feeds. No new filings means no per-alert charges. Public SEC data only; deterministic; no inference.

Pricing

from $5.00 / 1,000 alerts

Rating

0.0

(0)

Developer

Valunex

Valunex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Monitors a watchlist of SEC tickers/CIKs for new insider-trading and ownership filings — Form 4 (default), and optionally Form 3, Form 5 and 13F — and emits one dataset item (alert) per new filing since the last run.

Who it is for

Compliance officers, quant/research desks, M&A professionals and watchdog analysts who need to know when officers, directors or 10% owners file Form 4 trades, when new insiders file Form 3, when annual Form 5 changes are reported, or when institutions file 13F holdings — without re-polling SEC EDGAR manually.

What users run it for

Concrete ways buyers use the Actor. These are example uses of a general watchlist monitor — not customer claims, and the Actor makes no promises about any specific filing or outcome.

Compliance alerting on an insider watchlist

A compliance officer monitors officers, directors and 10% owners on a firm watchlist for personal-account-dealing and front-running risk.

  • Input: tickers = watchlist tickers/CIKs, formTypes: ["3", "4", "5"], lookbackDays: 1, deliveryWebhookUrl = the alert inbox webhook.
  • The run POSTs each new Form 3/4/5 to the webhook as it is detected.
  • If no one filed, the run emits zero items — there are no per-alert charges.

M&A screening of target-company insiders

An M&A analyst screens a target company's insiders for abnormal trading ahead of deal announcements.

  • Input: tickers = the target company, formTypes: ["4", "5"], lookbackDays: 30, transactionCodes: ["P", "S"], minTransactionValueUsd: 250000 — large purchases and sales only.

Quant desk insider-flow feed

A quant desk feeds insider buys and sells into an alpha model.

  • Input: formTypes: ["4"], transactionCodes: ["P", "S"], maxResultsPerTicker: 100, deliveryWebhookUrl = the data pipeline webhook.
  • Each alert is POSTed as JSON as it is detected; you pay only on alerts.

Default run (no decisions needed)

{ "tickers": ["AAPL", "TSLA", "1651777"] }

Monitors Form 4 filings from the last 1 day, up to 10 new filings per ticker. Repeat runs resume from the per-ticker checkpoint and emit only filings newer than the last run, so nothing repeats and nothing is missed.

Free when nothing changes

The Actor checkpoints the last-checked date and seen accession numbers per ticker in its key-value store. Repeat runs only emit genuinely new filings, so no new filings means zero dataset items: you pay the $0.0001 run start, but no $0.005 per-alert fees. Pay only on signal, not on silence.

Form types monitored

FormWhat it isWhat the Actor emits
3Initial statement of beneficial ownership (a new insider)Reporting person name, title, officer flag, issuer name/CIK
4Statement of changes in beneficial ownership (insider trade)Insider, transaction code (P/S/A/M…), value, shares, ownership after
5Annual statement of changes in beneficial ownershipSame trade fields as Form 4 plus issuer name/CIK
13FInstitutional investment manager holdings reportManager name, report period, holdings count, total holdings value

Use the formTypes input to select which forms to scan (default: ["4"], which preserves the original Form 4–only behavior exactly).

What makes it different

Existing Apify Store actors for insider trading are typically on-demand fetchers: you run them, get a batch, and run again when you want an update. This Actor keeps a watchlist and remembers what it already reported, so repeat runs emit only genuinely new filings — free when nothing changes.

Data source

Public SEC data only, via official SEC endpoints:

No credentials, no proxies, no scraping of rate-limited or anti-bot pages, no commercial inference (no LLMs) inside the product. SEC rate guidance (~10 requests/s) is respected; a failing ticker never aborts the whole run.

Pricing (pay-per-event, Apify Store)

  • Actor start: $0.0001 per run (one-time)
  • New alert (dataset item): $0.005 per alert — any supported form type
  • Price changes are limited to no more than once per month, with at least 14 days' notice before they take effect (per Apify Terms).

Apify retains a 20% commission on revenue; payouts are monthly and require completed identity verification (KYC). See knowledge/decisions.md for the full margin model and kill test.

Input

See actor/.actor/input_schema.json. Required: tickers (array of SEC tickers or CIKs, max 50). Example inputs for each use case are the top-level examples in input-schema.json.

  • formTypes: array of "3", "4", "5", "13F", default ["4"].
  • transactionCodes: optional array of transaction codes (e.g. ["P", "S"] for purchases and sales) — filters Forms 4 and 5 only.
  • minTransactionValueUsd: optional minimum parsed transaction value in USD — filters Forms 4 and 5 only.
  • lookbackDays (1-30, default 1), maxResultsPerTicker (1-100, default 10), deliveryWebhookUrl: each new alert is POSTed as JSON to that URL as it is detected. Webhook failures are logged and never abort the run.

Example:

{ "tickers": ["AAPL", "TSLA", "1651777"], "lookbackDays": 1, "maxResultsPerTicker": 10, "formTypes": ["4", "5"] }

Output

One dataset item per new filing. Common fields are always present; form-type-specific fields are null when not parseable or not applicable:

{
"ticker": "AAPL",
"cik": "0000320193",
"companyName": "Apple Inc.",
"form": "4",
"filingDate": "2026-10-28",
"reportDate": "2026-10-27",
"accessionNumber": "0000320193-26-000123",
"primaryDocument": "aapl-20261027.htm",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000123/aapl-20261027.htm",
"newSinceLastRun": true,
"insiderName": "John Appleseed",
"insiderTitle": "Chief Executive Officer",
"insiderCik": null,
"isOfficer": null,
"issuerName": null,
"issuerCik": null,
"transactionCode": "P",
"transactionDate": "2026-10-27",
"transactionValueUsd": 1234567.0,
"shares": 10000.0,
"ownershipAfter": 450000.0,
"managerName": null,
"managerCik": null,
"holdingsCount": null,
"totalValueUsd": null
}

Every field is null when it could not be parsed from the filing document — the Actor never guesses. A 13F item instead fills managerName, holdingsCount and totalValueUsd and leaves the insider/trade fields null.

Output examples by form type

The items below illustrate the output shape per form type. Values are examples, not records of actual filings, and every field the Actor cannot parse is null.

Form 4 — insider transaction

{
"ticker": "NVDA",
"cik": "0001045810",
"companyName": "NVIDIA Corp.",
"form": "4",
"filingDate": "2026-10-27",
"reportDate": "2026-10-23",
"accessionNumber": "0001045810-26-000123",
"primaryDocument": "nvda-20261023.xml",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/1045810/000104581026000123/nvda-20261023.xml",
"newSinceLastRun": true,
"insiderName": "Jane Director",
"insiderTitle": "Chief Financial Officer",
"insiderCik": null,
"isOfficer": true,
"issuerName": "NVIDIA Corp.",
"issuerCik": "0001045810",
"transactionCode": "S",
"transactionDate": "2026-10-23",
"transactionValueUsd": 1250000.0,
"shares": 10000.0,
"ownershipAfter": 45000.0,
"managerName": null,
"managerCik": null,
"holdingsCount": null,
"totalValueUsd": null
}

Form 3 — initial statement of beneficial ownership

{
"ticker": "AAPL",
"cik": "0000320193",
"companyName": "Apple Inc.",
"form": "3",
"filingDate": "2026-10-26",
"reportDate": null,
"accessionNumber": "0000320193-26-000045",
"primaryDocument": "form3.xml",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000045/form3.xml",
"newSinceLastRun": true,
"insiderName": "New Officer",
"insiderTitle": "EVP, Commercial",
"insiderCik": null,
"isOfficer": true,
"issuerName": "Apple Inc.",
"issuerCik": "0000320193",
"transactionCode": null,
"transactionDate": null,
"transactionValueUsd": null,
"shares": null,
"ownershipAfter": null,
"managerName": null,
"managerCik": null,
"holdingsCount": null,
"totalValueUsd": null
}

Form 5 — annual statement of changes in beneficial ownership

{
"ticker": "JPM",
"cik": "0000019617",
"companyName": "JPMorgan Chase & Co.",
"form": "5",
"filingDate": "2026-03-27",
"reportDate": "2025-12-31",
"accessionNumber": "0000019617-26-000012",
"primaryDocument": "jpm-20251231.xml",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/19617/000001961726000012/jpm-20251231.xml",
"newSinceLastRun": true,
"insiderName": "Ten Percent Owner",
"insiderTitle": null,
"insiderCik": null,
"isOfficer": null,
"issuerName": "JPMorgan Chase & Co.",
"issuerCik": "0000019617",
"transactionCode": "A",
"transactionDate": "2025-12-15",
"transactionValueUsd": 340000.0,
"shares": 2500.0,
"ownershipAfter": 180000.0,
"managerName": null,
"managerCik": null,
"holdingsCount": null,
"totalValueUsd": null
}

13F — institutional investment manager holdings report

{
"ticker": "0001067983",
"cik": "0001067983",
"companyName": "Berkshire Hathaway Inc.",
"form": "13F",
"filingDate": "2026-02-17",
"reportDate": "2025-12-31",
"accessionNumber": "0001104659-26-012345",
"primaryDocument": "infotable.xml",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000110465926012345/infotable.xml",
"newSinceLastRun": true,
"insiderName": null,
"insiderTitle": null,
"insiderCik": null,
"isOfficer": null,
"issuerName": null,
"issuerCik": null,
"transactionCode": null,
"transactionDate": null,
"transactionValueUsd": null,
"shares": null,
"ownershipAfter": null,
"managerName": "Berkshire Hathaway Inc.",
"managerCik": "0001067983",
"holdingsCount": 55,
"totalValueUsd": 150000000000.0
}

Limits

  • Max 50 tickers per run, 100 alerts per ticker per run.
  • Only forms listed in formTypes in the company's recent filings feed are considered; older filings outside the SEC's recent feed are not scanned.
  • Checkpoints persist per ticker in the Actor key-value store; resetting the store re-emits filings within the lookback window.

Verification

Run pytest actor/tests before release (builder acceptance criterion).