---
title: "Get ETF / index-fund holdings"
method: GET
path: "/index-funds"
tags: ["Index Funds"]
---

# Get ETF / index-fund holdings

`GET /index-funds`

Query fund holdings in two directions. Provide exactly one of `ticker` or `holding`. `?ticker=SPY` returns a fund's constituents and each position's weight (the fund's latest filing by default, or the composition in effect on/before `as_of`). `?holding=AAPL` returns the funds whose latest filing holds that security, sorted by weight.

## Query parameters

- `ticker` string
- `holding` string
- `as_of` string, date
- `asset_class` 'equity' | 'bond'
- `limit` integer
- `offset` integer

## Response `200`

Index fund holdings response. The shape depends on the query direction: `ticker` returns a fund header + constituents; `holding` returns a security header + funds.

- union
  - IndexFundHoldingsResponse — Forward response (`?ticker=...`): a fund header plus its constituents, sorted by weight descending.
    - `ticker` string — The fund ticker echoed back from the request.
    - `fund` object — Fund header: identity, the as-of period, and coverage counts for the full fund (not the returned page).
      - `name` string — Fund name.
      - `cik` string — The fund registrant's SEC CIK.
      - `asset_class` string — Fund asset class (e.g., `equity`, `bond`).
      - `as_of` string, date — Reporting period of the filing the holdings are drawn from.
      - `filing_date` string, date, nullable — Date the filing was submitted to the SEC.
      - `source` string — Provenance of the holdings.
      - `total_net_assets` number, nullable — The fund's total net assets in USD (the weight denominator).
      - `total_holdings` integer — Total number of holdings in the fund for this period.
      - `returned` integer — Number of holdings in this page.
      - `offset` integer — The pagination offset echoed back from the request.
    - `holdings` FundHolding[]
      - `ticker` string, nullable — Ticker of the held security, or null for securities without a US listing.
      - `name` string, nullable — Name of the held security.
      - `cusip` string, nullable — 9-character CUSIP, when available.
      - `isin` string, nullable — 12-character ISIN, when available.
      - `weight` number, nullable — The position as a percent of the fund's net assets.
      - `market_value` number, nullable — Position market value in USD.
      - `shares` number, nullable — Number of shares or principal amount held.
      - `asset_class` string — Friendly instrument type: `equity`, `bond`, or `other`.
  - IndexFundsForHoldingResponse — Reverse response (`?holding=...`): a security header plus the funds whose latest filing holds it, sorted by weight descending.
    - `holding` string — The held-security ticker echoed back from the request.
    - `security` object — Security header: the queried security plus result counts.
      - `ticker` string — The queried security ticker.
      - `name` string, nullable — Security name (null when no fund holds it).
      - `cusip` string, nullable — 9-character CUSIP, when available.
      - `isin` string, nullable — 12-character ISIN, when available.
      - `total_funds` integer — Total funds whose latest filing holds the security (not the returned page).
      - `returned` integer — Number of funds in this page.
      - `offset` integer — The pagination offset echoed back from the request.
    - `funds` FundPosition[]
      - `ticker` string, nullable — The fund's ticker.
      - `name` string — Fund name.
      - `cik` string — The fund registrant's SEC CIK.
      - `asset_class` string — Fund asset class (e.g., `equity`, `bond`).
      - `as_of` string, date — Reporting period of the fund's latest filing.
      - `filing_date` string, date, nullable — Date the filing was submitted to the SEC.
      - `weight` number, nullable — The security as a percent of this fund's net assets.
      - `market_value` number, nullable — The fund's position value in USD.
      - `shares` number, nullable — Shares or principal amount the fund holds.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `402` — The request requires a paid subscription
- `404` — The specified resource was not found

---

[API](https://skmtc.net/financialdatasets/apis/financial-datasets-api.md) · [All operations](https://skmtc.net/financialdatasets/apis/financial-datasets-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/financialdatasets/financial-datasets-api/revisions/df2363101891/schema)
