?>
ESC to close

ETF & Mutual Fund Expense Ratio API

Maintained by Piyush Arora

Last updated:

Retrieve the full profile of any US mutual fund or ETF from a single ticker — expense ratios broken into management fee and other expenses, net and total assets, portfolio turnover, effective duration and maturity for bond funds, six risk ratios across six windows, trailing twelve-month fund flows, the prospectus investment objective and principal strategy verbatim, and every other share class registered on the same fund. A ticker is a share class, not a fund: VOO and VFIAX share one portfolio and one prospectus but charge 0.03% and 0.04% respectively, and this endpoint returns the class you asked for alongside all four Vanguard 500 Index classes so you can see the spread. The API is free to use.

Use this endpoint to:

Resolve Any Ticker To Its Fund Compare Share Class Fees Read Objective And Strategy
GET https://data.businessquant.com/funds/overview?ticker={ticker}&api_key={api_key}

Related endpoints: Pull the portfolio behind these numbers with the Fund Holdings API, or roll it into sector and country buckets with the Portfolio Exposure API. Track money entering and leaving the fund with the Fund Flows API, and read the prospectus risk disclosures with the Fund Risk Factors API. To resolve a ticker to its SEC identifier chain — CIK, Series ID, Contract ID and LEI — see the Funds Profile API.

1. Request Parameters

Exactly one identifier is needed. Pass ticker when you know the share class you want, or seriesid when you want the fund and will take its cheapest class.

ParameterDescription
api_key
Required
Your unique API key for authentication.
ticker
Conditional Identifier
The fund or ETF ticker. A ticker identifies a share class, not a fund — VOO and VFIAX are two classes of the same portfolio, so the fees you get back are the ones that class charges. Either ticker or seriesid is required.
Example: ticker=VOO
seriesid
Conditional Identifier
The SEC Series ID of the fund. Resolves to the fund's lowest-cost share class. Use this when you want the fund rather than a particular class, or for funds that have no ticker of their own.
Example: seriesid=S000002839
Example cURL Request
curl -X GET "https://data.businessquant.com/funds/overview?ticker=VOO&api_key=YOUR_API_KEY"
Sample Response (VOO)
{
    "metadata": {
        "ticker": "VOO",
        "seriesid": "S000002839",
        "classid": "C000092055",
        "cik": 1004655,
        "fund_name": "Vanguard 500 Index Fund",
        "class_name": "ETF Shares",
        "prospectus_date": "2026-04-28",
        "fund_website": "vanguard.com/performance",
        "net_assets_asof": "2026-06-30",
        "share_class_count": 7
    },
    "summary": {
        "fees": {
            "management_fee_pct": 0.02,
            "other_expenses_pct": 0.01,
            "gross_expense_ratio_pct": 0.03,
            "net_expense_ratio_pct": 0.03,
            "portfolio_turnover_pct": 2
        },
        "assets": {
            "net_assets_usd": 1671231561960.14,
            "total_assets_usd": 1673632288919.41
        },
        "bond_character": [],
        "prospectus": {
            "investment_objective": "Vanguard 500 Index Fund (the \"Fund\") seeks to track the performance of a benchmark index that measures the investment return of large-capitalization stocks.",
            "principal_strategy": "The Fund employs an indexing investment approach designed to track the performance of the S&P 500 Index (the \"Target Index\"), a widely recognized benchmark of U.S. stock market performance that is dominated by the stocks of large U.S. companies. Under normal circumstances, the Fund invests at least 80% of its net assets, plus the amount of any borrowings for investment purposes, in the stocks that make up the Target Index. The Fund attempts to replicate the Target Index by investing all, or substantially all, of its assets in the stocks that make up the Target Index, holding each stock in approximately the same proportion as its weighting in the Target Index. The Fund may become nondiversified, as defined under the Investment Company Act of 1940, solely as a result of tracking an index. This could occur due to events such as an index rebalance or market movement. A nondiversified fund may invest a greater percentage of its assets in the securities of particular issuers as compared with diversified funds. In addition, the Fund could become concentrated in an industry or group of industries if the Target Index becomes concentrated due to market conditions or the performance of a single or related group of issuers.",
            "risk_narrative": "As with any investment, an investment in the Fund could lose money over any time period. The Fund's share price and total return may fluctuate, potentially within a wide range. The principal risks of investing in the Fund are summarized below. Each of the following risks could affect the Fund's performance:\n\n•  General Market Risk. The markets in which the Fund invests can be affected by a variety of factors. These factors, which can be real or perceived, may include economic, market, political, and regulatory conditions and developments as well as local, regional, or global events such as wars, military conflicts, natural disasters, and public health issues. In addition, investor sentiment and expectations regarding these factors can also impact the markets. Different parts of the market, including different industries and sectors as well as different types of securities, may react differently to factors that affect the market. These factors can contribute to market uncertainty, market volatility, and fluctuations in the value of the Fund's investments, thereby resulting in potential losses to the Fund over short or long periods.\n\n•  Investing in Equity Markets. The Fund invests in the equity markets. Equity markets have historically been cyclical, having periods of time when stock values rise and fall. Market volatility can lead to significant fluctuations in stock values, resulting in potential losses to the Fund.\n\n•  Market Capitalization (Market Cap). Companies are generally classified into three types of market cap depending on their size: small-, mid-, and large-cap. Companies can be further classified into micro- or mega-cap. Different factors can affect each market cap uniquely, and historically small- and mid-cap stocks have typically been more volatile due to the effects of changing economic conditions. Large companies may not reach the same levels of growth or performance as smaller companies, and they may be slower to react to competitive challenges. The performance of funds that invest in a subset of market caps could diverge from the performance of a fund that is focused on a broader representation of the stock market.\n\n•  Index Investing. The Fund is subject to risks associated with index investing. Because the Fund generally seeks to track the performance of the Target Index regardless of how the Target Index is performing, the Fund's performance may be lower than it would be if it were actively managed. Although the Fund seeks to hold substantially all of the securities included in the Target Index, it may be unable to do so. In addition, the Fund could be prevented from holding one or more securities in the same proportion as in the Target Index. The performance of the Fund's investments, in the aggregate, may not match the investment performance of the Target Index. This risk, known as tracking error risk, may be heightened during times of increased market volatility or under other unusual market conditions. The Fund also could be negatively impacted by changes to the Target Index made by the index provider or by errors made by the index provider. Any gains, losses, or costs associated with or resulting from an error made by the index\n\n3\n\nprovider will generally be borne by the Fund and, as a result, the Fund's shareholders.\n\n•  Nondiversification. By tracking its broad-based Target Index, the Fund could become nondiversified, as defined under the Investment Company Act of 1940, due to events such as an index rebalance or market movement. The performance of nondiversified funds may be negatively impacted by relatively few securities or even a single security and their shares may experience significant fluctuations in value.\n\n•  Concentration Risk. Except as may be necessary to approximate the composition of its Target Index, the Fund will not concentrate its investments in the securities of issuers whose principal business activities are in the same industry or group of industries. If the Target Index becomes concentrated and the Fund needs to concentrate in the same industry or group of industries, its performance could be negatively impacted by the industry or industries in which it is concentrated.\n\n•  Information Technology Sector. As of the Fund's most recent fiscal year end, stocks of companies within the information technology sector made up a significant portion of the Target Index. As a result, the performance of the Target Index, and therefore the performance of the Fund, may be impacted by the general condition of the information technology sector.\n\nAn investment in the Fund is not a deposit of a bank and is not insured or guaranteed by the Federal Deposit Insurance Corporation or any other government agency.\n\nAnnual Total Returns\n\nThe following bar chart and table show the Fund's historical performance and are intended to help you understand the risks of investing in the Fund. The bar chart shows how the performance of the Fund's Admiral Shares has varied from one calendar year to another over the periods shown. The table shows how the average annual total returns of the Admiral Shares compare with those of a broad-based securities market index and one or more additional indexes with similar investment characteristics as the Fund. Keep in mind that the Fund's past performance (before and after taxes) does not indicate how the Fund will perform in the future. Updated performance information is available on our website at vanguard.com/performance.\n\n4\n\nAnnual Total Returns - Vanguard 500 Index Fund Admiral Shares\n\n \n\nDuring the periods shown in the bar chart, the highest and lowest returns for a calendar quarter were:\n\nTotal Return\n\nQuarter\n\nHighest\n\n20.54\n\n%\n\nJune 30, 2020\n\nLowest\n\n-19.61\n\n%\n\nMarch 31, 2020\n\nAverage Annual Total Returns for Periods Ended December 31, 2025\n\n1 Year\n\n5 Years\n\n10 Years\n\nVanguard 500 Index Fund Admiral Shares\n\nReturn Before Taxes\n\n17.83\n\n%\n\n14.38\n\n%\n\n14.78\n\n%\n\nReturn After Taxes on Distributions\n\n17.49\n\n13.99\n\n14.32\n\nReturn After Taxes on Distributions and Sale of\n\nFund Shares\n\n10.76\n\n11.47\n\n12.33\n\nStandard & Poor's 500 Index\n\n(reflects no deduction for fees, expenses, or taxes)\n\n17.88\n\n%\n\n14.42\n\n%\n\n14.82\n\n%\n\nDow Jones U.S. Total Stock Market Float Adjusted\n\nIndex\n\n(reflects no deduction for fees, expenses, or taxes)\n\n17.05\n\n13.07\n\n14.21\n\nActual after-tax returns depend on your tax situation and may differ from those shown in the preceding table. When after-tax returns are calculated, it is assumed that the shareholder was in the highest individual federal marginal income tax bracket at the time of each distribution of income or capital gains or upon redemption. State and local income taxes are not reflected in the calculations. Please note that after-tax returns are not relevant for a shareholder who holds fund shares in a tax-deferred account, such as an individual retirement account or a 401(k) plan. Also, figures captioned Return After Taxes on Distributions and Sale of Fund Shares may be higher than other figures for the same period if a capital loss occurs upon redemption and results in an assumed tax deduction for the shareholder.\n\n5\n\nInvestment Advisor\n\nThe Vanguard Group, Inc. (Vanguard) through its wholly owned subsidiary, Vanguard Capital Management (VCM). VCM exercises portfolio management responsibilities for the Fund.\n\nPortfolio Managers\n\nNick Birkett, CFA, Portfolio Manager at VCM. He has co-managed the Fund since 2023.\n\nAurélie Denis, CFA, Portfolio Manager at VCM. She has co-managed the Fund since 2025.\n\nMichelle Louie, CFA, Principal of Vanguard and Portfolio Manager at VCM. She has co-managed the Fund since 2017",
            "purchase_and_sale_text": "If you invest directly with Vanguard, you may purchase or redeem shares online through our website (vanguard.com), by mail (The Vanguard Group, P.O. Box 982901, El Paso, TX 79998-2901), or by telephone (800-662-2739). The minimum investment amount required to open a Fund account for Admiral Shares is generally $3,000. The minimum investment amount required to add to an existing Fund account is generally $1.\n\nFinancial intermediaries, institutional clients, and Vanguard-advised clients should contact Vanguard for information on special eligibility rules that may apply to them regarding Admiral Shares. If you invest in Vanguard fund shares indirectly through an intermediary (including investing in shares through a brokerage account offered by Vanguard Brokerage Services), please contact that firm directly for more information regarding your eligibility. If you invest in Vanguard fund shares through an employer-sponsored retirement or savings plan, your plan administrator or your benefits office can provide you with detailed information on how you can invest through your plan",
            "tax_information_text": "The Fund's distributions may be taxable as ordinary income or capital gains. If you are investing through a tax-advantaged account, such as an IRA or an employer-sponsored retirement or savings plan, special tax rules apply. You should consult your own tax advisor with respect to any particular U.S. or non-U.S. tax consequences of your investment in the Fund"
        },
        "risk_ratios": {
            "std_dev_6m_pct": 13.89,
            "std_dev_ytd_pct": 13.37,
            "std_dev_1y_pct": 12.83,
            "std_dev_2y_pct": 15.96,
            "std_dev_3y_pct": 14.96,
            "std_dev_5y_pct": 16.96,
            "max_drawdown_6m_pct": -6.71,
            "max_drawdown_ytd_pct": -9.19,
            "max_drawdown_1y_pct": -9.19,
            "max_drawdown_2y_pct": -18.97,
            "max_drawdown_3y_pct": -18.97,
            "max_drawdown_5y_pct": -25.41,
            "sharpe_6m": 1.405,
            "sharpe_ytd": 0.937,
            "sharpe_1y": 0.947,
            "sharpe_2y": 0.845,
            "sharpe_3y": 0.966,
            "sharpe_5y": 0.491,
            "sortino_6m": 2.139,
            "sortino_ytd": 1.38,
            "sortino_1y": 1.36,
            "sortino_2y": 1.239,
            "sortino_3y": 1.407,
            "sortino_5y": 0.7,
            "alpha_6m_pct": -0.12,
            "alpha_ytd_pct": 0.28,
            "alpha_1y_pct": 0.03,
            "alpha_2y_pct": 0.12,
            "alpha_3y_pct": 0.08,
            "alpha_5y_pct": 0.02,
            "beta_6m": 1.001,
            "beta_ytd": 0.998,
            "beta_1y": 0.994,
            "beta_2y": 0.99,
            "beta_3y": 0.992,
            "beta_5y": 0.993
        },
        "flows": {
            "net_flow_12m_usd": -97164387947.86,
            "net_flow_12m_pct": -5.8139
        }
    },
    "data": [
        {
            "ticker": "VFFSX",
            "classid": "C000170274",
            "class_name": "Institutional Select Shares",
            "management_fee_pct": 0.01,
            "other_expenses_pct": 0,
            "gross_expense_ratio_pct": 0.01,
            "net_expense_ratio_pct": 0.01
        },
        {
            "ticker": "VOO",
            "classid": "C000092055",
            "class_name": "ETF Shares",
            "management_fee_pct": 0.02,
            "other_expenses_pct": 0.01,
            "gross_expense_ratio_pct": 0.03,
            "net_expense_ratio_pct": 0.03
        },
        {
            "ticker": "VFIAX",
            "classid": "C000007774",
            "class_name": "Admiral Shares",
            "management_fee_pct": 0.04,
            "other_expenses_pct": 0,
            "gross_expense_ratio_pct": 0.04,
            "net_expense_ratio_pct": 0.04
        },
        {
            "ticker": "VFINX",
            "classid": "C000007773",
            "class_name": "Investor Shares",
            "management_fee_pct": 0.14,
            "other_expenses_pct": 0,
            "gross_expense_ratio_pct": 0.14,
            "net_expense_ratio_pct": 0.14
        },
        {
            "ticker": "VIFSX",
            "classid": "C000035202",
            "class_name": "Signal Shares",
            "management_fee_pct": null,
            "other_expenses_pct": null,
            "gross_expense_ratio_pct": null,
            "net_expense_ratio_pct": null
        },
        {
            "ticker": null,
            "classid": "C000179712",
            "class_name": "Institutional Shares",
            "management_fee_pct": null,
            "other_expenses_pct": null,
            "gross_expense_ratio_pct": null,
            "net_expense_ratio_pct": null
        },
        {
            "ticker": null,
            "classid": "C000179713",
            "class_name": "Institutional Plus Shares",
            "management_fee_pct": null,
            "other_expenses_pct": null,
            "gross_expense_ratio_pct": null,
            "net_expense_ratio_pct": null
        }
    ]
}

A ticker resolves to one share class. metadata names the class you asked for — ticker, classId, class name — and summary carries its economics: summary.fees is that class's fee schedule, while summary.assets and summary.prospectus belong to the whole fund and are identical across its classes. summary.risk_ratios and summary.flows are computed from the price series of the class you asked for. The data array lists every class on the same seriesId, cheapest first, so switching to a lower-cost class is a one-line lookup.

2. Response Fields

The response is a three-part envelope: metadata is identity and provenance only — what the fund is called and what it is filed under — summary carries the figures this endpoint measures, and data carries the rows. Here summary holds six blocks — fees, assets, bond_character, prospectus, risk_ratios and flows — and data is one row per share class.

metadata

FieldTypeDescription
tickerstringThe share class ticker that was resolved.
seriesidstringSEC Series ID of the fund. Funds that register no series — certain unit investment trusts such as SPY and DIA — carry a synthetic UIT<cik> key instead.
classidstringSEC Class ID of the resolved share class. Absent for unit investment trusts, which register no classes.
cikintegerSEC Central Index Key of the registrant.
fund_namestringRegistered name of the fund, e.g. Vanguard 500 Index Fund.
class_namestringName of the resolved share class, e.g. ETF Shares or Admiral Shares.
prospectus_datedateDate of the prospectus these figures were filed in.
fund_websitestringManager's page for the fund, as given in the prospectus.
net_assets_asofdateDate the net asset figure was reported.
share_class_countintegerNumber of share classes returned in data.

summary.fees

The resolved share class’s own fee schedule. Every other class on the fund is listed in data below with its own.

FieldTypeDescription
management_fee_pctfloatAdvisory fee charged by the manager, in percent of assets per year.
other_expenses_pctfloatAll non-advisory operating expenses, in percent per year.
gross_expense_ratio_pctfloatTotal annual expense ratio before any fee waiver.
net_expense_ratio_pctfloatExpense ratio after contractual waivers — what a holder actually pays.
portfolio_turnover_pctfloatPercentage of the portfolio replaced during the last fiscal year. A pure index fund sits in the low single digits; VOO reports 2%.

summary.assets

Fund-level, not class-level — all classes of one fund share a single pool of assets. Dated by metadata.net_assets_asof.

FieldTypeDescription
net_assets_usdfloatNet assets of the fund in USD, across all share classes.
total_assets_usdfloatTotal assets before liabilities.

summary.bond_character

Present only for funds with rate exposure — absent, not null, on a pure equity fund such as VOO. Each figure is the fund's own filed answer under N-PORT Item B.3, not a figure BQ derives, so it carries the fund's own prepayment and call assumptions. For an example: AGG (iShares Core U.S. Aggregate Bond ETF) reports effective_duration_years: 5.82.

FieldTypeDescription
effective_duration_yearsfloatHow much the fund’s price moves when interest rates move — roughly this percent for every one percent change in rates, in the opposite direction. The fund's own reported figure, from its filed DV01 divided by net assets.
effective_maturity_yearsfloatWhen the fund’s principal is actually expected back, allowing for mortgages that prepay and preferreds that get called — the figure a factsheet means by "average effective maturity". Can be shorter than the legal maturity on the paper.
weighted_average_maturity_yearsfloatMarket-value-weighted mean of the maturity dates as filed, with no prepayment or call adjustment — the STATED maturity, computed from the fund's own holdings.

summary.prospectus

Filed text, returned verbatim and never summarised. Identical across every share class of the fund.

FieldTypeDescription
investment_objectivestringThe fund's stated objective, verbatim from the prospectus.
principal_strategystringHow the manager intends to meet that objective, verbatim.
risk_narrativestringThe prospectus risk summary. The itemised version is on the Fund Risk Factors endpoint.
purchase_and_sale_textstringMinimum investment and redemption terms, verbatim.
tax_information_textstringProspectus tax disclosure, verbatim.

summary.risk_ratios

Six ratios once per window, {window} taking each of 6m, ytd, 1y, 2y, 3y and 5y — 36 keys in all. They are computed from the daily price series of the ticker you asked for, not from the fund as a whole, so classes that trade separately report different ratios. A window the fund has no history for is omitted rather than returned as null.

FieldTypeDescription
std_dev_{window}_pctfloatAnnualised standard deviation of daily returns, in percent. Higher means a bumpier ride, in either direction.
max_drawdown_{window}_pctfloatLargest peak-to-trough decline over the window, as a negative percent. -9.19 means the class fell 9.19% from its high before recovering.
sharpe_{window}floatExcess return per unit of total volatility. Unitless, so it is comparable across asset classes.
sortino_{window}floatAs Sharpe, but penalising downside deviation only. Sits above Sharpe for a fund whose volatility is mostly upside.
alpha_{window}_pctfloatAnnualised return in excess of what the fund’s beta to its benchmark would predict, in percent.
beta_{window}floatSensitivity to the benchmark. A broad US equity index fund sits at roughly 1.0; VOO reports 0.995 over one year.

summary.flows

Trailing twelve-month creations less redemptions. The month-by-month series is on the Fund Flows API.

FieldTypeDescription
net_flow_12m_usdfloatNet creations less redemptions over the trailing twelve months, in USD. Negative means money left the fund.
net_flow_12m_pctfloatThe same flow expressed as a percent of average net assets, so it is comparable between a $10bn fund and a $10tn one.

data — one row per share class

FieldTypeDescription
tickerstringTicker of this class. null for classes that trade without one.
classidstringSEC Class ID.
class_namestringRegistered class name.
management_fee_pctfloatAdvisory fee for this class.
other_expenses_pctfloatNon-advisory expenses for this class.
gross_expense_ratio_pctfloatExpense ratio before waivers. Rows are sorted on this, cheapest first.
net_expense_ratio_pctfloatExpense ratio after waivers.

Null-valued keys are omitted, not returned as null. A fund that files no turnover figure has no portfolio_turnover_pct key under summary.fees at all rather than one set to null, and a fund with nine months of price history returns its 6M and YTD ratios and omits the rest. Read both blocks defensively — what is present is what the fund actually has on file.

3. Response Viewer

A real response for ticker=VOO. Switch between the raw JSON and a rendered view of the share-class table.

API Response — Fund Overview

Vanguard 500 Index Fund  ·  ticker=VOO

Fund Vanguard 500 Index Fund
Ticker VOO
Net Assets $1.67T
Net Expense Ratio 0.03%
Turnover 2.0%
Share Classes 7
Ticker Class ID Class Name Mgmt Fee Other Exp. Gross ER Net ER
VFFSX C000170274 Institutional Select Shares 0.01% 0.00% 0.01% 0.01%
VOO REQUESTED C000092055 ETF Shares 0.02% 0.01% 0.03% 0.03%
VFIAX C000007774 Admiral Shares 0.04% 0.00% 0.04% 0.04%
VFINX C000007773 Investor Shares 0.14% 0.00% 0.14% 0.14%
VIFSX C000035202 Signal Shares
C000179712 Institutional Shares
C000179713 Institutional Plus Shares

4. More Request Examples

Both identifiers behave the same way; only the resolution differs.

Overview by ticker (a specific share class)
https://data.businessquant.com/funds/overview?ticker=VFIAX&api_key=YOUR_API_KEY
Overview by Series ID (resolves to the cheapest class)
https://data.businessquant.com/funds/overview?seriesid=S000002839&api_key=YOUR_API_KEY
A unit investment trust with no seriesId of its own
https://data.businessquant.com/funds/overview?ticker=SPY&api_key=YOUR_API_KEY
An actively managed ETF
https://data.businessquant.com/funds/overview?ticker=ARKK&api_key=YOUR_API_KEY

5. Use Cases

What this endpoint is normally the first call in.

Share Class Cost Optimisation

The data array is every class on the same portfolio, sorted by cost. A holder in a 0.55% investor class of a fund whose institutional class charges 0.04% is paying thirteen times as much for identical holdings — and this endpoint surfaces that in one call, with the classId needed to act on it.

Fund Screener Enrichment

Resolve a list of tickers to net assets, expense ratios and turnover to filter a universe before pulling any portfolio data. Pair with the Stock Ticker List API to enumerate every fund covered.

Fee Drag Modelling

net_expense_ratio_pct is what a holder actually pays after contractual waivers; gross_expense_ratio_pct is what they would pay if the waiver lapses. Model both — waivers expire, and the gap is the downside case.

Prospectus Text For LLM Pipelines

investment_objective and principal_strategy come back as the filer wrote them, with no summarisation, which is what a retrieval pipeline or a fund-classification model needs as input.

Index vs Active Detection

Portfolio turnover separates the two more reliably than a name does. VOO reports 2%; an actively managed thematic ETF routinely reports well north of 50%.

Identifier Resolution

Ticker to seriesId to CIK in one hop, which is what every other endpoint on this page group keys on.

Frequently Asked Questions

The questions developers ask most often about this endpoint.

What is the difference between this and the Funds Profile API?

The Funds Profile API returns the SEC registry record for a fund — the identifier chain, registrant names and the filing dates behind them, drawn from the master ticker table. The two share only five fields. This endpoint returns the prospectus: fees split into management and other expenses, net assets, turnover, the objective and strategy text, and the full share-class list. Use Funds Profile to resolve identifiers; use this one for economics and narrative.

Why do VOO and VFIAX return different expense ratios for the same fund?

Because they are different share classes of one fund. Both are Vanguard 500 Index Fund on seriesId S000002839 and both hold the identical portfolio, but the ETF class charges 0.03% and the Admiral class 0.04%. A ticker always identifies a class, never a fund, so summary.fees describes the class you asked for while data lists all of them.

What happens with ETFs like SPY that have no Series ID?

SPY and DIA are unit investment trusts, which register no series and no classes with the SEC. They resolve normally here under a synthetic UIT<cik> key, and their classid is simply absent from the response. Everything else — fees, objective, strategy — is returned as usual.

Is the gross or the net expense ratio the one my holder pays?

The net one. net_expense_ratio_pct is after contractual fee waivers and reimbursements, which is the number quoted on a fund fact sheet. gross_expense_ratio_pct is the ratio the fund would charge with no waiver in place — worth modelling separately, because waivers have expiry dates.

How current is the data?

prospectus_date and net_assets_asof in the metadata date the two halves of the response: the first stamps the expense ratios and the objective text, the second stamps the asset totals. They move on different schedules, which is why there are two of them rather than one page-level "as of".

Is the ETF & Mutual Fund Expense Ratio API free to use?

Yes, the API is free to use. Sign up for an API key and start resolving fund tickers to fees, assets and share-class lists immediately — no credit card required.