Morningstar holdings

GET https://api.api.sh/morningstar/v1/holdings
1 credit / call finance & crypto try it in the playground →

A fund's or ETF's holdings on Morningstar, largest first, 100 a page: name, ticker, ISIN, CUSIP, type, sector, country, weight, shares, share change and market value; with the portfolio date, holding counts, top 10 weight, turnover and benchmark, and (first page) the sector breakdown against the category and index and the country weights of the listed holdings.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
tickerrequired string Fund or ETF ticker. Example: SPY
type fund | etf fund or etf. Default: ETF first, then mutual fund. Example: etf
exchange string Morningstar market code. Default xnas for funds; arcx, xnas, bats, then xnys for ETFs.
page integer Page number (default 1), 100 holdings a page. next_page is null on the last page. Example: 1

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/morningstar/v1/holdings?ticker=SPY" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.