Skip to content
/api/v1/form-13f/holdings/search

Find which funds hold a specific security by ticker or CUSIP.

Find which funds hold a specific security by ticker or CUSIP.

free

Why use this

Reverse-lookup: given a ticker or CUSIP, find all tracked institutional funds that hold that security with their share counts and values. Automatically expands CUSIP successor chains for corporate actions.

Common use case

Answer 'Which hedge funds hold Apple?' by searching for AAPL. Useful for building institutional holder screens similar to WhaleWisdom.

Reverse-lookup: given a TICKER or CUSIP, find all tracked institutional funds that hold the security in the requested quarter — answers 'Which hedge funds hold Apple?' This is the FinRadar surface most-similar to WhaleWisdom's 'Holders' page or Whalewisdom's 13F filers of XYZ lookup.

CUSIP successor chain expansion is automatic: a query for GOOGL correctly captures BOTH the pre-2014-share-class-restructuring CUSIPs AND the post-restructuring CUSIPs (the position is preserved across corporate actions). For Berkshire's class-A and class-B shares, query each share class separately (BRK-A vs BRK-B) since they have distinct CUSIPs and economic interests.

Results are sorted by value_usd DESC (largest holder first); use pct_of_portfolio to find HIGH-CONVICTION holders — a 38% portfolio weight (e.g. Berkshire→Apple) is a far stronger conviction signal than a 0.4% weight (e.g. Vanguard→Apple). The status field surfaces position-change momentum — multiple New holders for the same security in the same quarter is a powerful institutional discovery signal.

For the per-fund full-portfolio view (forward direction) see GET /api/v1/form-13f/fund/{cik}; for split-adjusted historical aggregations (Phase 52 surface) see GET /api/v1/tickers/{ticker}/fund-trends. All monetary values in USD (post-Plan-51 thousands correction); share counts NOT split-adjusted on this endpoint (preserves as-filed view).

Parameters

NameInRequiredDefaultAllowedDescriptionExample
qqueryrequiredTicker symbol (e.g. AAPL) or CUSIP (e.g. 037833100). Min 2 chars.apple
limitqueryoptional20Max fund results (up to 100)20
periodqueryoptionalReport period filter (YYYY-MM-DD). Defaults to latest.2025Q4

Response schema

FieldTypeNullableDescription
querystringnoEchoed-back search query — the literal `q` value as received. Useful for caching keys client-side.
resolvedobjectnoCUSIP-resolution metadata: `{ ticker, cusip, name_of_issuer, cusip_chain }`. The chain expansion handles corporate actions — for example a query for `GOOGL` automatically expands to BOTH the pre-2014-share-class-restructuring CUSIPs AND the post-restructuring CUSIPs, so the holders list correctly captures the fund's economic exposure across the corporate action.
resolved.cusip_chainarraynoArray of CUSIPs that resolve to the same security after corporate-action successor mapping. For Apple: `['037833100']` (single CUSIP, no successors). For Alphabet: includes both pre- and post-2014 GOOG/GOOGL CUSIPs. The reverse-lookup query expands across the full chain.
periodstringnoISO `YYYY-MM-DD` reporting quarter. Echoed from request; defaults to the latest available quarter.
holdersarraynoArray of institutional funds holding the security in the requested period. Sorted by `value_usd DESC` (largest holder first). Page size capped by `limit` (default 20, max 100). Each row carries the fund's identity + position size — drill-down to the fund's full portfolio via [GET /api/v1/form-13f/fund/{cik}](/docs/institutional-holdings/form-13f-api/get-form-13f-fund-cik).
holders[].cikstringnoFund CIK as a 10-character zero-padded string. Stable join key against the rest of the 13F surface.
holders[].namestringnoFund's registrant name AS FILED on the 13F-HR (typically all-caps in EDGAR convention).
holders[].sharesnumbernoShare count held by this fund in the period. NOT split-adjusted (as-filed view) — for split-adjusted aggregations across history use [GET /api/v1/tickers/{ticker}/fund-trends](/docs/ticker-research/get-tickers-ticker-fund-trends). For BRK-A specifically, share counts are tiny (Berkshire-A trades at $700K+/share so even mega-holdings are only thousands of shares).
holders[].value_usdnumbernoPosition value in USD (post-Plan-51 thousands correction). Sum of `shares * price` from the filed 13F-HR.
holders[].pct_of_portfolionumberyesPosition weight as a percentage of the fund's total portfolio value. Useful for finding the fund's HIGH-CONVICTION holders ('Apple is 38% of Berkshire's book' = much stronger conviction signal than 'Apple is 0.4% of Vanguard's book'). Null when the fund's `portfolio_value` aggregation is missing.
holders[].change_sharesnumbernoQoQ share-count delta (`current_shares - prior_shares`). Positive = fund added; negative = fund trimmed. Zero for unchanged positions. NOT split-adjusted.
holders[].statusstringnoPosition-status label: `New` (no prior position), `Increased`, `Decreased`, `Unchanged`, `Closed` (in prior quarter, gone now). The most signal-rich status for momentum analysis is `New` — multiple new-buy holders for the same security is a conviction signal.
countintegernoTotal holder count after pagination cap. NVIDIA Q4 2025: ~3,200 distinct holders (heavily covered by institutions); micro-cap stocks: 5-50 holders.

Sample response

·
  • "query": "AAPL"
  • "resolved":
    • "ticker": "AAPL"
    • "cusip": "037833100"
    • "name_of_issuer": "APPLE INC"
    • "cusip_chain":
    }
  • "period": "2025-09-30"
  • "holders":
    ]
  • "count": 3
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/form-13f/holdings/search" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).