Skip to main content
Reverse lookup against the same Top 1,000 manager seed window as /filings/13f/by-manager. The result is not the full set of 13F filers holding the ticker — only those within the seeded universe.

Endpoint

GET
string
https://api.llmquantdata.com/filings/13f/by-ticker

Parameters

ticker
string
required
U.S. ticker symbol (e.g. NVDA). Case-insensitive; normalized server-side (BRK.B → BRK-B).
period
string
Quarter-end date YYYY-MM-DD. Omit for the latest seeded quarter.
limit
integer
default:100
Maximum holders to return (max 1000). Use higher limits if the consumer wants the full Top 1000 holder list and will trim by manager AUM proxy client-side.

Response

data
object

Caching

  • Backed by the local canonical.sec_13f_holdings index used for the manager-direction route.
  • Permanent cache (seed-only, no upstream refresh).
  • Cache misses (ticker absent from every Top 1000 manager’s seeded quarters) return empty holders + meta.scope_notice.

Coverage Scope

{
  "meta": {
    "creditsUsed": 1,
    "scope": {
      "managers_seeded": 1000,
      "latest_period": "2025-12-31",
      "earliest_period": "2025-03-31",
      "selection_basis": "latest quarter 13F reportable value desc",
      "is_top_1000_only": true
    },
    "scope_notice": "Holders list is restricted to the latest-quarter top 1,000 managers ranked by 13F reportable value, not full-market ownership."
  }
}

Code Examples

from __future__ import annotations

import requests

API_URL = "https://api.llmquantdata.com/filings/13f/by-ticker"
HEADERS = {"X-API-KEY": "your_api_key_here"}


def fetch_ticker_holders(ticker: str, period: str, limit: int = 100) -> dict:
    response = requests.get(
        API_URL,
        params={
            "ticker": ticker,
            "period": period,
            "limit": limit,
        },
        headers=HEADERS,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()["data"]


def main() -> None:
    data = fetch_ticker_holders("NVDA", "2025-12-31", limit=50)
    holders = data["holders"]

    print(
        f"{data['ticker']}{data['total_holders_in_scope']} holders, "
        f"aggregate ${data['aggregate_value_usd']:,}"
    )

    for holder in holders[:10]:
        print(
            f"  #{holder['manager_scope_rank']:>4} "
            f"{holder['manager_name']}: ${holder['value_usd']:,}"
        )


if __name__ == "__main__":
    main()

Example Response

{
  "data": {
    "ticker": "NVDA",
    "period_of_report": "2025-12-31",
    "total_holders_in_scope": 187,
    "aggregate_value_usd": 123456789000,
    "holders": [
      {
        "manager_cik": "1067983",
        "manager_name": "BERKSHIRE HATHAWAY INC",
        "manager_reportable_value_usd": 302459211458,
        "manager_reportable_value_period": "2025-12-31",
        "manager_scope_rank": 7,
        "sec_13f_filing_id": "uuid",
        "accession_number": "0000950123-26-001234",
        "cusip": "67066G104",
        "title_of_class": "COM",
        "value_usd": 1234567890,
        "shares": 9000000,
        "shares_type": "SH"
      }
    ]
  }
}

Current Limitations

  • Top 1,000 manager scope only — not full-market ownership
  • No aggregate ranking (e.g. “this quarter’s top net buys”)
  • No long-tail managers
  • No confidential holdings