View as markdown
Endpoints · Tickers

ETF holdings

GEThttps://api.tickerbot.io/v2/tickers/{ticker}/holdings

Returns an ETF's constituents and their weights, heaviest first.

stringrequired

ETF symbol. Case-insensitive.

integerdefault 500

Max holdings returned. Max 5000. When the cap cuts the list, the response sets truncated: true and total (the ETF's full holding count) — raise limit to at least total to get the full set, possible whenever total is within the 5000 cap (an over-cap limit is clamped to 5000, not an error). No truncated in the response means the list is complete.

as_ofstring

Server time this response was assembled (ISO 8601).

tickerstring

The ETF you asked for.

is_etfboolean

Whether the symbol is an ETF, from the instrument type on its ticker record.

countnumber

Holdings in this page.

truncatedboolean

`true` when `limit` cut the list short.

totalnumber

Total constituents held, before `limit`.

holdingsarray

Constituents, heaviest first, each with its weight.

200
Success — the response shape is documented under Returns above.
400
Invalid ticker (malformed symbol).
404
not_found — the symbol is not in the tracked universe. A tracked non-ETF answers 200 with is_etf: false instead.
  • is_etf reports whether the symbol is an ETF, from the instrument type on its ticker record. For a non-ETF it is false and holdings is empty; is_etf: true with count: 0 means a real ETF whose holdings have not been ingested yet.
  • The reverse lookup — "which ETFs hold NVDA" — is a /v2/scan filter on the etf_holders column, not an endpoint.
  • Holdings data comes from a nightly post-close vendor refresh (AlphaVantage ETF profiles) — expect it to be up to a day behind.