Screen ETFs
screen_etfsScreen the full ETF universe by numeric thresholds and fund attributes to identify funds that meet specific expense, size, yield, performance, liquidity, holdings, or wrapper criteria.
Instructions
Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 concentration, fund age and holdings count — combined with issuer, index, domicile, UCITS status, distribution policy, currency hedging and constituent look-through (holdingSearch finds funds by what they hold). Prefer this over search_etfs for any "cheapest / largest / best performing / most liquid" question: search_etfs only filters a bounded candidate scan, while this evaluates the full universe and reports evaluatedCount and matchCount. Percentages are percentage points. This full-universe screen is an expensive read, and request limits depend on your connection and plan. Build one precise screen to conserve your allowance. Read-only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum ETFs to return, 1-100. | |
| order | No | Sort direction. Nulls always sort last regardless of direction. | desc |
| rules | No | Numeric rules. A fund with no value for a ruled metric never matches that rule. | |
| issuer | No | Substring match on the fund family/issuer, e.g. "iShares", "Amundi", "Vanguard". | |
| region | No | Exact investment-region string. | |
| search | No | Free-text match on ticker, fund name or ISIN. Omit to screen the whole universe. | |
| sortBy | No | Sort field applied to the returned rows. | totalAssets |
| category | No | Exact category string. Call get_etf_filter_options for the valid values; a wrong guess silently returns zero rows. | |
| currency | No | Exact trading currency, e.g. EUR, USD, GBX. | |
| domicile | No | Exact fund domicile, e.g. "Ireland", "Luxembourg", "United States". | |
| exchange | No | Exact listing exchange, e.g. XETRA, LSE, "NYSE ARCA". | |
| indexKey | No | Exact tracked-index key, e.g. SP500, MSCI_WORLD, NASDAQ100. Use get_etf_index_group to compare every fund on one index instead. | |
| strategy | No | Exact strategy classification string. | |
| assetClass | No | Exact asset-class group: EQUITY, FIXED_INCOME, COMMODITY, REAL_ESTATE, MULTI_ASSET, CASH, CURRENCY, DIGITAL_ASSETS, ALTERNATIVES or OTHER. | |
| holdingMode | No | INCLUDES keeps funds holding the constituent. EXCLUDES keeps only funds with a holdings snapshot that confirms absence — funds with no snapshot are dropped, never assumed clean. | INCLUDES |
| productType | No | Exact wrapper type, e.g. UCITS_FUND. | |
| ucitsStatus | No | UCITS restricts to wrappers a European retail investor can actually buy. | |
| holdingSearch | No | Look-through filter: find funds by a CONSTITUENT ticker or company name, e.g. "NVDA" or "NVIDIA". Only funds with a stored holdings snapshot can match. | |
| currencyHedged | No | HEDGED selects funds labelled currency-hedged. NOT_LABELLED_HEDGED selects funds not so labelled — absence of a label is not proof a fund is unhedged. | |
| benchmarkSearch | No | Substring match on the stated benchmark name. | |
| includeSecondary | No | Return every venue listing as its own row. Default false: one row per FUND (by fund ISIN), showing its most liquid listing with the others under otherListings. Use exchange/currency to choose the venue, e.g. exchange "SW" for the SIX line. | |
| marketDevelopment | No | Exact market-development classification, e.g. developed vs emerging. | |
| distributionPolicy | No | Accumulating (reinvests income) or distributing (pays it out) — the usual first cut for a European investor. | |
| holdingMinWeightPct | No | Minimum constituent weight in percentage points for holdingSearch to count as a match. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| results | Yes | ||
| webPage | No | ||
| coverage | Yes | ||
| returned | Yes | ||
| warnings | Yes | ||
| matchCount | Yes | ||
| platformLink | No |