Skip to content
noxstock
Guides

Insider scan

Review trailing 90-day Form 4 insider activity without turning it into a recommendation.

Short answer: call /v2/insider?symbol=...&limit=..., preserve the 90-day rollup, and report caps/notices if returned.

Use this when

Use this for prompts like:

  • “Any notable insider activity in AAPL?”
  • “Was there recent insider buying or selling?”
  • “Show recent Form 4 activity.”

Do not use this for

  • Institutional ownership, 13F holders, or fund ownership. noxstock does not provide those today.
  • ETF insider activity. ETFs return freshness: "unsupported".
  • Buy/sell recommendations. Insider activity is context, not a trade signal.

Route plan

REST sequence:

# If the user gave a company name:
GET /v2/search?query=<company-name>

# Confirm support and asset type:
GET /v2/coverage?symbol=<symbol>

# Scan recent Form 4 activity:
GET /v2/insider?symbol=<symbol>&limit=20

/v2/insider returns a true trailing 90-day summary_90d plus recent transactions. Heavy filers can be slow cold because each Form 4 fetch is SEC-backed.

The endpoint scans up to the latest 200 Form 4 filings in the trailing 90 days. If that cap or a recent-row cap matters, summary_90d.notices carries the note. Preserve it.

MCP sequence

# Optional name lookup:
noxstock_search({ "query": "Apple" })

# Confirm support:
noxstock_coverage({ "symbol": "AAPL" })

# Insider scan:
noxstock_insider({ "symbol": "AAPL", "limit": 20 })

What to preserve in the answer

  • freshness, as_of, market_status, and cache_age_seconds.
  • summary_90d.market_activity.buy_count, sell_count, net_shares_market_only, net_value_usd, and net_direction.
  • summary_90d.all_activity.transactions, net_shares_all_kinds, and transactions_by_kind.
  • unique_insiders, officer_share_pct, director_share_pct, and ten_b5_1_plan_ratio_pct when present.
  • summary_90d.notices exactly as returned.
  • Recent rows: filing_date, transaction_date, insider_name, insider_role, transaction_code, transaction_kind, shares, price_per_share, value_usd, shares_remaining, ten_b5_1, and accession.
  • Unavailable price_per_share, value_usd, or shares_remaining values on non-market transactions. Do not treat them as zero-dollar trades.

Answer pattern:

Answer: <notable / not notable / not available, based on returned activity>

90-day summary
- Open-market activity: <buy/sell counts, net_shares_market_only, and net_value_usd with sign>
- All Form 4 activity: <transactions and net_shares_all_kinds>
- Notices: <notices or none returned>

Recent rows
- <date>: <insider>, <kind>, <shares/value if available>, <10b5-1 if true>

Freshness
- Insider: <freshness>, as_of <timestamp>, market_status <status>

Calls used
- GET /v2/insider?symbol=...&limit=...

Common mistakes

  • Treating all Form 4 codes as open-market buys/sells. Use market_activity for cash market trades.
  • Dropping the sign on net_value_usd, net_shares_market_only, or net_shares_all_kinds.
  • Ignoring ten_b5_1 plan flags.
  • Hiding summary_90d.notices.
  • Calling filings sections for Form 4 rows when /v2/insider already returned the structured view.
  • Presenting insider selling as automatic bearish advice or buying as automatic bullish advice.

Next