etf
Analyze exchange-traded funds and other funds to retrieve holdings, profiles, sector and country weightings, tracking metrics, concentration, overlap, and liquidity by ticker.
Instructions
Analysis of ETFs and other funds. Requires tickers='VOO' — use comma-separated values for several funds; tickers that are not an ETF or fund return no data. get_holdings: the 25 largest holdings of each fund by weight (shares, weight and market value) unless limit= asks for more, limit=-10 for the smallest; the holdings carry no sector or country, so use get_sector_weightings and get_country_weightings for those breakdowns, or the Finance Database server to classify the holdings. get_information: everything published about each fund, including its identifiers, description and website. get_profile: name, issuer, asset class, domicile, inception date, expense ratio, assets under management, NAV, latest price, premium/discount to NAV (the close of the NAV's own date against the NAV; empty for a NAV that is not current unless stale_nav=true), holdings count and average (dollar) volume. get_tracking: tracking difference (annualized return gap, about minus the expense ratio for an index fund), tracking error, correlation, beta and R Squared against benchmark_ticker (set it to the fund's index or another fund of the same index, e.g. benchmark_ticker='SPY' for VOO); yearly=true gives the gap per calendar year. get_concentration: number of holdings, largest holding, top 10 weight, Herfindahl-Hirschman index and effective number of holdings. get_overlap: the overlap of every pair of funds (sum of the smaller weight over shared holdings). get_look_through_valuation: weighted (harmonic) P/E, P/B, P/S and P/FCF, dividend yield and net margin of the largest holdings (holdings=25) with the coverage. get_liquidity: average volume and dollar volume, dollar volume to assets and the price impact per $100 million traded (Amihud).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The rows to return, like head and tail: 5 for the first five, -5 for the last five (the most recent of a time series). A table with its periods as columns (financial statements, ratios) keeps its first or last periods instead. For ETF holdings the largest (or, negative, the smallest) by weight, and for a list (e.g. news or a screener) its length. Leave unset to use the default of the indicator you selected. Defaults are 25 for get_holdings. | |
| period | No | Observation frequency, e.g. 'daily', 'weekly', 'monthly', 'quarterly', or 'annual' (supported values differ per method). | daily |
| yearly | No | Whether to return the tracking difference per year. | |
| tickers | No | Comma-separated ticker symbols, e.g. 'AAPL,MSFT,GOOGL'. | |
| end_date | No | End of the date range in YYYY-MM-DD format. | 2026-10-27 |
| holdings | No | The number of largest holdings to value per fund. | |
| indicator | Yes | Name of the specific metric to calculate, one of the listed values. Required — search_metrics finds the indicator (and its tool) for a metric by name. | |
| quarterly | No | Return quarterly data instead of annual when True. | |
| stale_nav | No | Whether to give the premium for a NAV that is not current, comparing it with the nearest close available. | |
| start_date | No | Start of the date range in YYYY-MM-DD format. | 2021-10-28 |
| show_columns | No | Comma-separated names to filter the output. For historical data use the key names visible in any response record (e.g. 'Close,Volume,Return'). For financial statements use the 'metric' field values from the response (e.g. 'Revenue,Net Income,EBITDA'). Call the tool once without this parameter to see all available names, then repeat with show_columns to reduce response size and token usage. | |
| benchmark_ticker | No | Ticker used as the market benchmark, e.g. 'SPY' or '^GSPC'. | SPY |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |