> ## Documentation Index
> Fetch the complete documentation index at: https://docs.llmquantdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 13F Holders by Ticker

> Find which Top 1,000 institutional managers hold a given U.S. ticker for a given quarter — the reverse 13F lookup.

<Note icon="sparkles">
  **Available as MCP tool**: `sec_13f_list_ticker_holders` — call directly from Claude / Cursor / any MCP client. See [MCP Server](/en/integration/mcp-server) for the 60-second setup.
</Note>

<Badge color="green" icon="circle-check">Live</Badge>
 
<Badge color="blue" size="sm">1 credit per call</Badge>

## What it does for your agent

`sec_13f_list_ticker_holders` is the **reverse direction** of the 13F smart-money lookup: given a U.S. ticker and a quarter, return the list of Top 1,000 institutional managers that held the ticker, with each holder's position size plus manager-level reportable value / scope rank. Use it to answer "who's behind this name?" — the position list is sorted by `value_usd` desc, and clients can derive a top-N-by-AUM-proxy holder cohort locally.

This tool is **not semantic search**: it's parameterized lookup by `(ticker, period)`. Coverage is restricted to the **requested quarter's top 1,000 managers** (an AUM-proxy ranking; each quarter has its own top 1,000) — the result is not the full set of 13F filers holding the ticker.

## Response

<ResponseField name="data" type="TickerHoldersResult" required>
  <Expandable title="TickerHoldersResult fields">
    <ResponseField name="ticker" type="string" required>Normalized ticker (e.g. `BRK.B → BRK-B`).</ResponseField>
    <ResponseField name="ranking_period" type="string" required>Quarter-end this snapshot reflects (`YYYY-MM-DD`); equals the quarter-end matching your `(year, quarter)` input.</ResponseField>

    <ResponseField name="total_holders_in_scope" type="integer" required>
      Number of Top 1000 managers that held the ticker (≤ 1000). Use this to size the cohort before iterating.
    </ResponseField>

    <ResponseField name="aggregate_value_usd" type="number" required>
      Sum of `value_usd` across all in-scope holders.
    </ResponseField>

    <ResponseField name="holders" type="HolderEntry[]" required>
      Sorted by `value_usd` descending.

      <Expandable title="HolderEntry fields">
        <ResponseField name="manager_cik" type="string" required>Holder CIK.</ResponseField>
        <ResponseField name="manager_name" type="string" required>Canonical manager name.</ResponseField>
        <ResponseField name="manager_period_reportable_value_usd" type="number" nullable>Manager's 13F reportable value (AUM proxy) for `ranking_period`. **Null when ranking data is not yet available for that quarter** — the holding is still returned, only the ranking value is missing.</ResponseField>
        <ResponseField name="manager_period_of_report" type="string" nullable>Period of the manager's reportable value; null when ranking is missing.</ResponseField>
        <ResponseField name="manager_period_rank" type="integer" nullable>Manager's rank within the Top 1000 manager set for `ranking_period`; null when ranking is missing.</ResponseField>
        <ResponseField name="accession_number" type="string" required>SEC accession number.</ResponseField>
        <ResponseField name="cusip" type="string" required>CUSIP of the position.</ResponseField>
        <ResponseField name="title_of_class" type="string" required>Security class.</ResponseField>
        <ResponseField name="value_usd" type="number" required>Position market value in USD.</ResponseField>
        <ResponseField name="shares" type="number" required>Number of shares.</ResponseField>
        <ResponseField name="shares_type" type="string" required>`SH` or `PRN`.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="meta.creditsUsed" type="number">Credits consumed (always `1`).</ResponseField>
<ResponseField name="meta.remainingCredits" type="number">Credits left after this call.</ResponseField>
<ResponseField name="meta.notice" type="string">Plain-English coverage note, when the response needs one.</ResponseField>

```json title="200 OK · sec_13f_list_ticker_holders" expandable theme={null}
{
  "data": {
    "ticker": "NVDA",
    "ranking_period": "2025-12-31",
    "total_holders_in_scope": 187,
    "aggregate_value_usd": 123456789000,
    "holders": [
      {
        "manager_cik": "1067983",
        "manager_name": "BERKSHIRE HATHAWAY INC",
        "manager_period_reportable_value_usd": 302459211458,
        "manager_period_of_report": "2025-12-31",
        "manager_period_rank": 7,
        "accession_number": "0000950123-26-001234",
        "cusip": "67066G104",
        "title_of_class": "COM",
        "value_usd": 1234567890,
        "shares": 9000000,
        "shares_type": "SH"
      }
    ]
  },
  "meta": {
    "creditsUsed": 1,
    "remainingCredits": 999,
    "notice": "Holders list is restricted to the Top 1,000 manager set; not full-market ownership. 13F coverage: Top 1,000 managers for quarter 2025-12-31 (each quarter has its own Top 1,000). Ranking data available for 4 quarters: 2025-03-31 … 2025-12-31. Reportable value is an AUM proxy excluding fixed income, options, non-U.S. holdings, and shorts."
  }
}
```

## Notes

<Tip>
  **Canonical workflow**: pair this reverse lookup with `sec_13f_list_top_managers` (to size the covered manager set) and `sec_13f_list_manager_holdings` (to drill into a specific holder's full book). This tool answers "who holds X?"; the manager-direction tool answers "what does this fund hold?".
</Tip>

<Tip>
  Use `manager_period_rank` and `manager_period_reportable_value_usd` to filter holders client-side — e.g. only display the Top 30 managers among holders to avoid surfacing tiny long-tail positions.
</Tip>

<Tip>
  **Typical agent queries**: this tool returns a single-quarter holder list only; quarter-over-quarter comparisons require the agent to call it twice and diff locally.

  <Prompt description="Single-quarter holders for one ticker">
    Show me NVDA's smart-money holders in the latest 13F quarter — top 20 by position size.
  </Prompt>

  <Prompt description="Quarter-over-quarter holder change for one ticker">
    Compare NVDA's smart-money holders between the latest two quarters — who newly entered, who exited, and who added the most to their position?
  </Prompt>

  Coverage is the requested quarter's Top 1000 covered manager set only, not full-market ownership; a manager's quarter-to-quarter visibility change may also reflect "dropped out of that quarter's Top 1000" rather than truly "exited the stock". Agents should keep this caveat in mind.
</Tip>

<Warning>
  **Top 1,000 manager scope only.** This is **not** full-market ownership. Funds outside the requested quarter's covered manager set (and all retail / direct holders) are excluded.
</Warning>

<Warning>
  If no Top 1,000 manager in the requested quarter held the ticker, the tool returns `200 OK` with empty `holders` plus `meta.notice`.
</Warning>

<Warning>
  Confidential / delayed-disclosure holdings are not exposed.
</Warning>

## Direct invocation

<Accordion title="HTTP / SDK examples" icon="terminal">
  <CodeGroup>
    ```typescript MCP (Claude / Cursor) theme={null}
    {
      "method": "tools/call",
      "params": {
        "name": "sec_13f_list_ticker_holders",
        "arguments": { "ticker": "NVDA", "year": 2025, "quarter": 4, "limit": 100 }
      }
    }
    ```

    ```python Python (HTTP) theme={null}
    import os, requests

    resp = requests.get(
        "https://api.llmquantdata.com/api/filings/13f/by-ticker",
        headers={"Authorization": f"Bearer {os.environ['LLMQUANT_API_KEY']}"},
        params={"ticker": "NVDA", "year": 2025, "quarter": 4, "limit": 50},
    ).json()
    data = resp["data"]
    print(f"{data['ticker']} {data['ranking_period']}: {data['total_holders_in_scope']} holders")
    for h in data["holders"][:10]:
        print(f"  #{h['manager_period_rank']:>4}  {h['manager_name']:<40}  ${h['value_usd']:>15,}")
    ```

    ```bash cURL theme={null}
    curl "https://api.llmquantdata.com/api/filings/13f/by-ticker?ticker=NVDA&year=2025&quarter=4&limit=50" \
      -H "Authorization: Bearer $LLMQUANT_API_KEY"
    ```
  </CodeGroup>
</Accordion>

## Full parameter reference

<Accordion title="sec_13f_list_ticker_holders — request parameters" icon="sliders">
  <ParamField query="ticker" type="string" required>
    U.S. equity ticker (e.g. `NVDA`, `TSLA`, `AAPL`). Case-insensitive; the server normalizes `BRK.B → BRK-B`.
  </ParamField>

  <ParamField query="year" type="integer">
    Calendar year of the quarter to query (e.g. `2025`). Range `[2013, 2030]`. **Must be paired with `quarter`**; omit both for the most recent covered quarter.
  </ParamField>

  <ParamField query="quarter" type="integer">
    Calendar quarter `1-4` (Q1=Jan-Mar, Q4=Oct-Dec). **Must be paired with `year`**.
  </ParamField>

  <ParamField query="limit" type="integer" default={100}>
    Maximum holders to return. Default `100`. Max `1000` — use a high limit if the consumer wants the full Top 1000 holder list and will trim by manager AUM proxy client-side.
  </ParamField>
</Accordion>

## Related

<Columns cols={3}>
  <Card title="13F Holdings by Manager" icon="briefcase" href="/en/api/filings/13f-by-manager">
    Forward direction — list a single fund's full holdings for one quarter.
  </Card>

  <Card title="13F Top Managers" icon="ranking-star" href="/en/api/filings/13f-top-managers">
    Enumerate the covered Top 1000 manager set to size or filter the holder cohort.
  </Card>

  <Card title="MCP Server setup" icon="plug" href="/en/integration/mcp-server">
    Connect Claude / Cursor / any harness in 60 seconds.
  </Card>
</Columns>
