ETFs
ETF Metrics
/v2/etfs/metricsReturns a paginated list of all ETF metrics — performance, risk, volatility, and fund characteristics — with full lineage/traceability.
Metric groups:
- Returns: 1M, 3M, YTD, 1Y, 3Y, 5Y, 10Y; annualized 5Y; since inception (cumulative and annualized). Returns are total returns: distributions are added back to the closes (an accumulating share class is used as quoted).
- Risk (security & category): beta, alpha, sharpe ratio, treynor ratio, R-squared, standard deviation, mean annual return (1Y/3Y/5Y/10Y)
- Volatility: YTD, 1Y, 3Y, 5Y, 10Y
- Risk indicators: SRI (price-based, 1-7), SRRI (document-based, 1-7)
- Fund: tracking error, net management fee
- Dividends: dividend_yield (trailing 12-month distributions / latest close, percent; 0.0 for accumulating share classes)
Pass trace=true to include computation lineage (formula, inputs, explanation)
for each metric.
Check each metric's date for freshness. latestDate is the newest date across metrics and does not mean every metric (including AUM) is current.
Included in: Pro, Growth.
Authentication
Send your API key in the x-api-key header on every request to https://api.bavest.co. The samples read it from the BAVEST_API_KEY environment variable. Get an API key · Authentication guide
Parameters
Required: one of symbol, isin, for example isin=IE00B4L5Y983.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| symbol | query | string | one of symbol, isin | ETF ticker symbol (e.g., |
| isin | query | string | one of symbol, isin | ETF ISIN code (e.g., Example |
| fields | query | string | no | Comma-separated list of metric names to include in the response. Valid names are served by |
| limit | query | integer (int32) | no | Maximum number of metrics to return per page (default 50, max 200) Default |
| offset | query | integer (int32) | no | Number of results to skip for pagination (default 0) Default |
| cursor | query | string | no | Opaque cursor for cursor-based pagination. When provided, returns results after the cursor position. Takes precedence over offset. |
| trace | query | boolean | no | Include computation lineage (formula, inputs, explanation) for each metric Default |
Try it
ETF ticker symbol (e.g., `IWDA.AS`). Provide exactly one of symbol or isin; clear the ISIN example before using a symbol.
ETF ISIN code (e.g., `IE00B4L5Y983`, iShares Core MSCI World UCITS ETF). Provide exactly one of symbol or isin.
GET /v2/etfs/metrics?isin=IE00B4L5Y983
Sent only to api.bavest.co for this request; not stored.
Response 200
Successful response · application/json
dataobjectlatestDatestring (date) | nullMost recent observation date across all metrics
Example
2026-10-02metricsarray of ETFMetricItem
metaResponseMetaResponse metadata for paginated endpoints. Offset pagination returns
page/pageSize/totalPages/totalCount; cursor pagination returnspageSize/hasMore/nextCursorandtotalCountonly when known.timeintegerServer-side processing time in milliseconds
Example
17parametersobjectEcho of the request parameters the endpoint resolved
pageintegerCurrent page number (offset pagination)
Example
1pageSizeintegerNumber of results per page
Example
50totalPagesintegerTotal number of pages (offset pagination)
Example
2totalCountintegerTotal number of results across all pages
Example
100hasMorebooleanWhether more results follow (cursor pagination)
nextCursorstring | nullCursor for the next page (cursor pagination), null on the last page
Errors
- 400Invalid request parameters. Returned when required query parameters are missing, have invalid types, or violate constraints (e.g., providing both symbol and isin when they are mutually exclusive).
- 401Missing or invalid API key.
- 404Resource not found.
- 429Rate limit exceeded. Retry after the `Retry-After` header interval.
- 500An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value.
- 502Upstream data provider returned an error or is temporarily unavailable. Retry after a short delay.
- 503Bavest cannot read its data store right now. The security may well have data; retry after the `Retry-After` header interval.
- 504The request timed out waiting for a response from the upstream data provider. This may occur for complex queries or during peak load.
- defaultAn unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value.

