13F Top Holders of a Ticker
thirteenf_holdersGet the institutional holders of a ticker from 13F filings (postgres-backed). Returns the honest FULL holder base (total_holders count, not a top-20 cap), each holder with rank, filer_name, shares, value_usd, qoq_action (new/add/trim/exit/unchanged/reporting_started), and manager classification (manager_type / tier / is_notable). Plus top-level v3 signals: consecutive_accum_qtrs (sustained accumulation), is_cluster_entry (≥3 notable funds entered this quarter), is_quiet_accumulation (stealth pattern), accel_4q (this Q net change vs trailing 4Q), corporate_action_suspect. Use for 'who owns ticker X' questions.
Pass is_notable_only=true to filter the holders list to notable (smart-money) managers only — cuts response size on mega-caps. Recommended for any workflow citing holders by name.
limit caps the returned holder rows (default 20); total_holders reports the true full count. For a manager+security multi-quarter trail use thirteenf_position_history. Data mirrors EDGAR 13F on a ~4h cycle; report_date defaults to the latest mature quarter. Coverage artifacts (#2168, 2025Q4 on): when a security joins the SEC 13(f) list (or its old CUSIP leaves as the new one joins), a holder that already owned it starts or stops reporting it; that reads reporting_started / reporting_stopped (cusip_changed when the old CUSIP left and the new one joined) with no flow, not new / exit.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "thirteenf_holders"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cusip | No | 9-character CUSIP (e.g. 67066G104 for NVDA). Either ticker or cusip required. | |
| limit | No | Number of top holders to return (default: 20, max: 20 — only top 20 are stored) | |
| ticker | No | Stock ticker symbol (e.g. NVDA, AAPL). Either ticker or cusip required. | |
| report_date | No | Point-in-time quarter (YYYY-MM-DD). Default: latest. When historical, routes to postgres `current_holdings_mat` keyed by (cusip, report_date) — same PIT-correct backend as `thirteenf_holders_full`. Resolves to MAX(report_date)<=as_of for mid-quarter dates. Echoes as_of_effective. **As of 2026-07-03 (per smart_money team-mail)**: the PIT response now carries the v3 Layer-3 signals top-level (consecutive_accum_qtrs, consecutive_dist_qtrs, accel_4q, avg_position_value, is_cluster_entry, is_cluster_exit, is_quiet_accumulation, corporate_action_suspect) via `holdings_company_quarterly`, plus `qoq_action` per holder via `holdings_events` — same field names as the latest-quarter Qdrant payload, so replays match live workups. CAVEAT (per smart_money 2026-06-12): reflects current amendment state for the quarter; late RESTATEMENT amendments can retroactively change historical answers (~3.4K amendments in corpus, mostly old — rarely material). | |
| is_notable_only | No | If true, return only the notable-manager subset of top holders (smart money). Cuts response size 4-5x on mega-caps by dropping no-name funds. Default false. |