ETF & Mutual Fund Expense Ratio API
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:
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.
| Parameter | Description |
|---|---|
| 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 |
curl -X GET "https://data.businessquant.com/funds/overview?ticker=VOO&api_key=YOUR_API_KEY"
{
"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
| Field | Type | Description |
|---|---|---|
| ticker | string | The share class ticker that was resolved. |
| seriesid | string | SEC 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. |
| classid | string | SEC Class ID of the resolved share class. Absent for unit investment trusts, which register no classes. |
| cik | integer | SEC Central Index Key of the registrant. |
| fund_name | string | Registered name of the fund, e.g. Vanguard 500 Index Fund. |
| class_name | string | Name of the resolved share class, e.g. ETF Shares or Admiral Shares. |
| prospectus_date | date | Date of the prospectus these figures were filed in. |
| fund_website | string | Manager's page for the fund, as given in the prospectus. |
| net_assets_asof | date | Date the net asset figure was reported. |
| share_class_count | integer | Number 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.
| Field | Type | Description |
|---|---|---|
| management_fee_pct | float | Advisory fee charged by the manager, in percent of assets per year. |
| other_expenses_pct | float | All non-advisory operating expenses, in percent per year. |
| gross_expense_ratio_pct | float | Total annual expense ratio before any fee waiver. |
| net_expense_ratio_pct | float | Expense ratio after contractual waivers — what a holder actually pays. |
| portfolio_turnover_pct | float | Percentage 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.
| Field | Type | Description |
|---|---|---|
| net_assets_usd | float | Net assets of the fund in USD, across all share classes. |
| total_assets_usd | float | Total 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.
| Field | Type | Description |
|---|---|---|
| effective_duration_years | float | How 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_years | float | When 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_years | float | Market-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.
| Field | Type | Description |
|---|---|---|
| investment_objective | string | The fund's stated objective, verbatim from the prospectus. |
| principal_strategy | string | How the manager intends to meet that objective, verbatim. |
| risk_narrative | string | The prospectus risk summary. The itemised version is on the Fund Risk Factors endpoint. |
| purchase_and_sale_text | string | Minimum investment and redemption terms, verbatim. |
| tax_information_text | string | Prospectus 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.
| Field | Type | Description |
|---|---|---|
| std_dev_{window}_pct | float | Annualised standard deviation of daily returns, in percent. Higher means a bumpier ride, in either direction. |
| max_drawdown_{window}_pct | float | Largest 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} | float | Excess return per unit of total volatility. Unitless, so it is comparable across asset classes. |
| sortino_{window} | float | As Sharpe, but penalising downside deviation only. Sits above Sharpe for a fund whose volatility is mostly upside. |
| alpha_{window}_pct | float | Annualised return in excess of what the fund’s beta to its benchmark would predict, in percent. |
| beta_{window} | float | Sensitivity 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.
| Field | Type | Description |
|---|---|---|
| net_flow_12m_usd | float | Net creations less redemptions over the trailing twelve months, in USD. Negative means money left the fund. |
| net_flow_12m_pct | float | The 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
| Field | Type | Description |
|---|---|---|
| ticker | string | Ticker of this class. null for classes that trade without one. |
| classid | string | SEC Class ID. |
| class_name | string | Registered class name. |
| management_fee_pct | float | Advisory fee for this class. |
| other_expenses_pct | float | Non-advisory expenses for this class. |
| gross_expense_ratio_pct | float | Expense ratio before waivers. Rows are sorted on this, cheapest first. |
| net_expense_ratio_pct | float | Expense 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
| 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.
https://data.businessquant.com/funds/overview?ticker=VFIAX&api_key=YOUR_API_KEY
https://data.businessquant.com/funds/overview?seriesid=S000002839&api_key=YOUR_API_KEY
https://data.businessquant.com/funds/overview?ticker=SPY&api_key=YOUR_API_KEY
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.