Find Holders
secedgar_find_holdersFind which institutional managers reported holding an issuer, by searching 13F-HR information tables for one reporting quarter. This is the reverse direction of secedgar_get_institutional_holdings: that tool takes a manager and returns its portfolio, this one takes an issuer and returns its managers — pass a returned filer_cik plus the same quarter to read the actual position. Searching by cusip is the precise path, matching the identifier the information table itself carries; without it the issuer name is matched as a phrase against the filing text, which both over-matches (unrelated issuers sharing a word) and under-matches (managers writing the name differently), so prefer cusip whenever one is known. A CUSIP cannot be derived from a ticker here — read one off any 13F information table returned by secedgar_get_institutional_holdings. The returned list is unranked: the search index scores by text relevance, which carries no signal about position size, and no ordering by shares or market value is available without opening each filing. Managers holding under $100M in 13(f) securities are exempt from filing at all.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cusip | No | The issuer's 9-character CUSIP (e.g. "037833100" for Apple common stock; foreign issuers use a CINS starting with a letter, e.g. "H1467J104"). The precise match key — information tables identify every position by CUSIP, so this avoids the name-phrase misses. Each share class has its own CUSIP, so a multi-class issuer needs one call per class. Read a CUSIP off the holdings returned by secedgar_get_institutional_holdings. | |
| limit | No | Filer rows returned inline. The full fetched set (up to 500 rows) is materialized as a dataframe when a canvas is available. Default 20. | |
| issuer | Yes | The portfolio company whose holders you want — a ticker ("AAPL"), a 10-digit CIK ("0000320193"), or a company name. Without cusip, this resolves to the company's EDGAR-conformed name and that name is phrase-matched against 13F information tables, so it must identify one company. With cusip supplied, it is used only to label the result. | |
| quarter | No | Reporting quarter to search, "YYYY-QN" (e.g. "2026-Q1"). Omit for the newest quarter whose 45-day filing deadline has passed — the applied quarter and its filing window are echoed in the response. A quarter still inside its deadline returns nothing, because the filings do not exist yet. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | The limit cap applied. | |
| error | No | Present when the call failed. Absent on success. | |
| shown | No | Number of filers shown inline. | |
| issuer | No | The issuer input, echoed. | |
| notice | No | Guidance when the search returned no filers — names the likely cause. | |
| dataset | No | Canvas dataframe holding every fetched filer row, each carrying the issuer key and quarter so it joins across issuers and quarters. Absent when the result fits inline, canvas is unavailable, or materialization failed. Query with secedgar_dataframe_query. | |
| fetched | No | Filings retrieved from the index, capped by the fetch budget of 500. Equals total_filings when the whole window fit inside the budget. | |
| holders | No | One page of filers, capped at limit. Order carries no position-size meaning — see the ordering note. | |
| quarter | No | Reporting quarter searched, "YYYY-QN" — the requested one, or the applied default. | |
| filed_to | No | End of the filing window searched (YYYY-MM-DD). | |
| ordering | No | How the holder list is ordered, and what that ordering does not mean. | |
| truncated | No | True when the inline holders list was capped. | |
| filed_from | No | Start of the filing window searched (YYYY-MM-DD). | |
| search_key | No | The exact term searched — the CUSIP, or the quoted phrase. | |
| search_mode | No | Which key matched the information tables. "cusip" matches the identifier the table itself carries; "name" phrase-matches the filing text and is looser in both directions. | |
| total_filings | No | Total 13F-HR filings matching the search key inside the filing window, as reported by the index. A slight over-count of this quarter's holders on two counts, both of which the returned rows correct for: a few percent are amendments restating an older quarter, and a few more are managers amending their own report for this quarter, which puts them in the window twice. | |
| total_is_exact | No | False when total_filings is a lower bound (the index capped the count). | |
| holders_in_quarter | No | Distinct managers among the fetched filings reporting this quarter as their period — the set paged by limit and materialized on the dataframe. Lower than fetched by the filings dropped as amendments restating other quarters, and by managers that amended this quarter (kept once, at their latest filing). | |
| resolved_issuer_cik | No | CIK of the resolved issuer, zero-padded to 10 digits. Absent when cusip was supplied. | |
| resolved_issuer_name | No | EDGAR-conformed company name the issuer resolved to, and the phrase that was searched. Absent when cusip was supplied (no company lookup runs). |