---
title: "Top institutional holders (13F filers) of an exact stock or ETF listing, ranked by reported quantity. A row's quantity is common shares, an option position's notional underlying shares, or a principal amount, so the total is aggregate 13F exposure rather than pure ownership. While the newest quarter's 13F filing window is open, non-ETF primary stocks use the combined view (new filings + prior-quarter carry-forward); ETF listings remain exact and as-filed because carry-forward is filer-wide. Share counts are restated onto today's basis. Each row carries the holder's entity type from regulatory records, never from its name, and its style band measured from its filed 13F book in one quarter for every row."
method: GET
path: "/v1/securities/{ticker}/institutional-holders"
tags: ["Holdings"]
---

# Top institutional holders (13F filers) of an exact stock or ETF listing, ranked by reported quantity. A row's quantity is common shares, an option position's notional underlying shares, or a principal amount, so the total is aggregate 13F exposure rather than pure ownership. While the newest quarter's 13F filing window is open, non-ETF primary stocks use the combined view (new filings + prior-quarter carry-forward); ETF listings remain exact and as-filed because carry-forward is filer-wide. Share counts are restated onto today's basis. Each row carries the holder's entity type from regulatory records, never from its name, and its style band measured from its filed 13F book in one quarter for every row.

`GET /v1/securities/{ticker}/institutional-holders`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/securities/{ticker}/institutional-holders`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/securities/:ticker/institutional-holders/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Query parameters

- `reportDate` string, date
- `limit` integer
- `offset` integer
- `holderTypes` string
- `styles` string

## Response `200`

OK

- TopHoldersResponse
  - `listingNotice` ListingNotice: What happened to a requested ticker that no longer trades. "delisted": the company has no current US listing, so the answer is its history. "renamed": the company now trades as successorTicker, its current US presentation ticker (possibly another share class). A listed series (short volume, short interest, off-exchange volume, fails-to-deliver, congressional trades) is the retired ticker's own; a company-level read is the company's data.
    - `status` string, nullable: "delisted" or "renamed".
    - `ticker` string, nullable: The retired ticker as listed.
    - `delistedOn` string, date, nullable: The day the retired listing stopped trading, when known.
    - `successorTicker` string, nullable: For "renamed", the company's current US presentation ticker; null for "delisted".
  - `data` TopHolderDto[], nullable
    - `name` string, nullable
    - `cik` string, nullable: SEC CIK of the institution — the identifier accepted by the v1/institutions/{cik}/* endpoints.
    - `shares` integer: Share count restated onto today's split basis (matching every other 13F surface).
    - `value` integer: Published position value in dollars: normally shares × the split-restated quarter-end close, with the filer's value used as a fallback; zero can mean unavailable.
    - `percentOfTotal` number, double: Share of the total reported INSTITUTIONAL quantity at the report date (not of shares outstanding). That denominator sums common-share, put/call notional-underlying and any tracked principal-denominated rows, so it is a share of aggregate 13F exposure, not of ownership. Each exact listing is restated onto today's split basis before the ratio is computed.
    - `listedTicker` string, nullable: The exact listed share class this position is in (e.g. "GOOG" beside the primary "GOOGL"). Null = the primary listing.
    - `positionType` string, nullable: The security this line reports: "Common" = shares held outright, "Principal" = a principal-denominated security, and "Put" or "Call" = an option position reported at the notional value of underlying shares. A put is a bearish bet, not ownership.
    - `holderType` string, nullable: The holder's entity type from regulatory records (Form ADV rosters, the SEC filer profile, 13D/13G type codes, N-CEN), never from its name: "Registered adviser", "Exempt adviser", "Adviser", "Bank", "Insurer", "Broker-dealer", "Registered fund", "Benefit plan", "Non-US", "Holding company" or "Unknown" (no record decides it). Null when the holder is not yet classified.
    - `style` string, nullable: The holder's style band measured from its filed 13F book in meta.styleReportDate's quarter, never the firm's own description: "Index-like", "Systematic-like", "Concentrated", "Diversified active" or "Unknown" (book too small or unvalued to band). Null when the holder is not measured that quarter.
  - `meta` TopHoldersMeta: Paging meta extended with the report-date context and the whole-quarter totals the MCP GetTopHolders tool reports alongside its ranked list.
    - `reportDate` string, date
    - `isCombinedQuarter` boolean: True while the newest quarter's 13F filing window is open and the positions are presented as the combined view (funds that have not filed yet carry their prior-quarter positions).
    - `totalInstitutions` integer
    - `totalShares` integer: Total reported institutional quantity at the report date, restated onto today's split basis. It sums common-share, put/call notional-underlying and any tracked principal-denominated rows, so it is aggregate 13F exposure, not pure share ownership.
    - `totalValue` integer: Sum of published position values in dollars. Each value normally derives from reported shares × report-date close, may fall back to the filer's value, and can be zero when unavailable.
    - `styleReportDate` string, date, nullable: The measured quarter every row's style comes from: the newest measured quarter on or before the report date. Null when no such quarter is measured yet.
    - `matchingRows` integer, nullable: With holderTypes or styles: the holding rows the filters keep, which limit and offset page through (additive). Omitted without a filter.
    - `matchingInstitutions` integer, nullable: With holderTypes or styles: the distinct institutions among the kept rows (additive). Omitted without a filter.
    - `limit` integer
    - `offset` integer
    - `count` integer
    - `hasMore` boolean
    - `total` integer, nullable

## Other responses

- `400`: Bad Request
- `404`: Not Found

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/666e06778588?raw)
