get_planned_insider_sales
A ticker search also returns rows this issuer FILED UNDER SYMBOLS IT NO LONGER LISTS (renames, filer typos, ADR spellings). Each row keeps ticker as SEC received it and gains current_ticker when the issuer trades under a different symbol today. Separately-listed share classes are NOT merged, and asking for a RETIRED symbol returns only rows filed under it — retired symbols get reissued to other companies. Returns Form 144 filings — notices of proposed sale by corporate insiders (officers, directors, 10%+ holders) under Rule 144 of the Securities Act. Each record is one planned-sale line from one filing. ⚠ aggregate_market_value is NULLABLE. A Form 144 that did not state a value now reports null rather than 0 — but a filer who genuinely stated 0.00 still reports 0, and that happens. Null never satisfies min_value and sorts last. ⚠ AND SOME FILERS STATE THE ISSUER'S MARKET CAP IN THAT BOX, WHICH PUTS THEM AT THE TOP OF A DESCENDING VALUE SORT. Measured 2026-09-04: 5 of the top 100 — SYF 4,000 shares stating $25.24bn ($6.31m per share), IT 860 shares stating $11.72bn. Dividing those by shares_outstanding on the same row gives $77.57 and $185.66, which are the real share prices. ⚠ THE CHECK CATCHES TWO OF THOSE FIVE, NOT ALL FIVE, AND SAYS SO RATHER THAN OVERSTATING ITSELF. TCMD, EPSM and XHR imply $36,017, $17,577 and $16,686 per share — absurd for those issuers, but below BRK.A's real $740,000 peak, so no per-row test separates them from a genuine high-priced sale. They still read 'checked'. Settling them needs a comparison against the day's actual price bar. Every row therefore carries aggregate_market_value_check: 'checked' the value implies a plausible price for the shares sold 'not_stated' no value was filed (distinct from a filed 0.00) 'no_share_count' no share count, so the check could not run 'implausible_looks_like_market_cap' implies a per-share price above any that has traded, and shares_outstanding yields a plausible one instead 'implausible_unexplained' implies an impossible price and shares_outstanding does not explain it — we can say it is not the sale value without being able to say what it is ⚠ The number is NOT corrected. SEC's bytes are served exactly as filed, and we do not invent a value the filer never stated. If you rank by this field, exclude anything whose check does not read 'checked' — otherwise the top of your list is market capitalisations. Use this when the user asks about: insiders who have announced they're about to sell, upcoming insider sales at a specific company, large planned sales by value, or which executives are signaling intent to exit positions. Form 144 is a forward-looking signal. It's filed BEFORE the actual sale, which later lands as a Form 4. The complement to get_insider_transactions: that tool tells you what insiders just did, this one tells you what they're about to do. Filing thresholds: ≥5,000 shares OR ≥$50,000 aggregate value. The aggregate_market_value is the insider's estimate at filing time; the actual sale price/value can differ. The approximate_sale_date is also an estimate — the real Form 4 transaction_date may be days later. Most Form 144 filings list one security line, but a single filing can cover multiple share classes (e.g., separate Class A + Class B). Each line is returned as its own record.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return. Default 50, max 500. | |
| since | No | ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field. | |
| until | No | ISO date (YYYY-MM-DD). Only records on or before this date. | |
| ticker | No | Stock symbol filter, e.g. 'AAPL'. Case-insensitive. | |
| sort_by | No | Field used for ordering and for the since/until date filters. Default: filing_date. | |
| min_value | No | Filter to filings with aggregate_market_value >= this amount (USD). Use to focus on large planned sales. | |
| filer_name | No | Full or partial filer name; case-insensitive substring match. Example: 'Cook' matches Tim Cook's filings. NOTE: plain substring (not word-boundary) match — a short surname can match mid-word too (e.g. 'Huang' also matches 'CHUANG'). Pass a longer/fuller name to disambiguate a specific person. | |
| sort_order | No | Default: desc (most recent / largest first). | |
| company_cik | No | SEC CIK number (10-digit, padded with leading zeros). Alternative to ticker when known. |