# Bavest API changelog

> New routes, changes and deprecations in the Bavest API, newest first.

HTML: https://dashboard.bavest.co/changelog. RSS: https://dashboard.bavest.co/changelog/rss.xml. API reference: https://dashboard.bavest.co/llms.txt.

Specification and implementation changes may precede deployment.

## Exchange price routes and index list are no longer offered in self-serve plans

23 October 2026 · https://dashboard.bavest.co/changelog#2026-10-23-exchange-prices-self-serve

GET /v2/indices/list, GET /v2/timeseries/candles, GET /v2/timeseries/eod, GET /v2/timeseries/history, GET /v2/timeseries/quote need exchange licences for every customer, so the self-serve plans and this reference no longer include them. Contracts that include them keep their access.

### Withdrawn from self-serve plans

- `GET /v2/indices/list`
- `GET /v2/timeseries/candles`
- `GET /v2/timeseries/eod`
- `GET /v2/timeseries/history`
- `GET /v2/timeseries/quote`

They are gone from the API reference, the OpenAPI spec, llms.txt and the MCP tools listed in the docs. Earlier changelog entries about them are hidden. Questions: service@bavest.co.

## Dividends: API specification update

8 October 2026 · API specification change · https://dashboard.bavest.co/changelog#spec-infra-2cdc40df09df

1 public operation with updated contracts.

### Contract updated

**`GET /v2/dividends/calendar`**

- HTTP 503 response added.
- HTTP 503 response content types changed.
- HTTP 503 response field `message` added (string, required).
- HTTP 503 response field `meta` added (object).
- HTTP 503 response field `meta.parameters` added (object).
- HTTP 503 response field `meta.time` added (integer).
- HTTP 503 response field `status` added (string, required).
- HTTP 503 response schema changed.
- HTTP 503 response headers changed.

## Equities, ETFs: API specification update

8 October 2026 · API specification change · https://dashboard.bavest.co/changelog#spec-infra-70ca2378f7f5

2 public operations with updated contracts.

### Contract updated

**`GET /v2/equities/logo`**

- Parameters changed.

**`GET /v2/etfs/kid`**

- Parameters changed.

## Economy, Metrics: API specification update

5 October 2026 · API specification change · https://dashboard.bavest.co/changelog#spec-infra-64ccdd4605fb

2 public operations with updated contracts.

### Contract updated

**`GET /v2/economy/indicator`**

- Query parameter `metric` allowed choices expanded from 63 to 66.

**`GET /v2/metrics/{metric_code}/history`**

- Path parameter `metric_code` allowed choices expanded from 63 to 66.

## Equities, Reference data: API specification update

30 September 2026 · API specification change · https://dashboard.bavest.co/changelog#spec-infra-44156f032255

4 public operations with updated contracts.

### Contract updated

**`GET /v2/equities/profile`**

- HTTP 200 response field `data.isReit` added (boolean, nullable).
- HTTP 200 response schema changed.

**`GET /v2/reference/search`**

- HTTP 200 response field `data[].isReit` added (boolean, nullable).
- HTTP 200 response schema changed.

**`GET /v2/reference/search/aggregated`**

- HTTP 200 response field `data.results[].listings[].isReit` added (boolean, nullable).
- HTTP 200 response schema changed.

**`POST /v2/reference/screener`**

- Request body schema changed.

## Estimates: API specification update

30 September 2026 · API specification change · https://dashboard.bavest.co/changelog#spec-infra-b2427c80527b

2 public operations with updated contracts.

### Contract updated

**`GET /v2/estimates/ai-estimates-history`**

- HTTP 200 response field `data.targets[].calendar_year` added (integer).
- HTTP 200 response schema changed.

**`POST /v2/estimates/ai-estimates`**

- HTTP 200 response schema changed.

## v2 API: GET routes, focused namespaces and camelCase fields

April 2026 · https://dashboard.bavest.co/changelog#2026-04-v2-release

The API moved from /v0 to /v2: read routes are GET with query parameters, responses sit in a data envelope, and fields are camelCase.

### 1. Architectural Changes

The API was rebuilt from the ground up to improve performance (5-10x faster) and provide a more consistent integration experience.

* **REST Convention Migration**: All read-only endpoints have moved from **POST** to **GET**.
  * Request body parameters from v0 must now be passed as **query strings** in v2.
  * `POST` is now strictly reserved for mutating operations, such as bulk requests and portfolio analytics.
* **Base Path Update**: The base URL has migrated from `/v0/` to `/v2/`.
* **Response Wrapping**: All API responses are now wrapped in a consistent `{"data": ...}` envelope.

### 2. Namespace & Endpoint Refactoring

The previous "grab-bag" structure has been refactored into focused, RESTful resources with clear responsibilities.

| Old Namespace (v0)  | New Namespace (v2)                                 | Description                             |
| :------------------ | :------------------------------------------------- | :-------------------------------------- |
| `/stock/`           | `/equities/`, `/estimates/`, `/corporate-actions/` | Split into specialized categories.      |
| `/portfolio/`       | `/quant-os/`                                       | Rebranded with enhanced analytics.      |
| `/etf/`             | `/etfs/`                                           | Pluralized for consistency.             |
| `/fund/`            | `/funds/`                                          | Pluralized for consistency.             |
| `/status`, `/quota` | `/account/status`, `/account/quota`                | Moved to a dedicated account namespace. |

### 3. Data Schema Refactoring

* **Naming Convention**: All response fields have migrated from `snake_case` to **`camelCase`**.
* **Structured Responses**: Large, flat field dumps (such as the previous 108-field metrics) have been refactored into **typed arrays**.
* **Typed Schemas**: 72 named response schemas were introduced to replace the inline definitions used in v0, improving SDK generation and type safety.

### 4. Specific Resource Migrations

#### Financial Statements

In the Equities namespace, the generic "financials" endpoint has been split into three distinct resources:

* `/v2/equities/income-statement`
* `/v2/equities/balance-sheets`
* `/v2/equities/cash-flow`

#### Account Quota Fields

Several fields were renamed or removed to improve clarity:

* **Renamed**: `quota_left` → `remaining`
* **Renamed**: `quota_total` → `limit`
* **Added**: `apiKey`, `period`
* **Removed**: `series` (usage history chart data)

### 5. Implementation Examples

#### Status Request Refactoring

* **v0 (Before)**: `GET https://api.bavest.co/v0/status`
* **v2 (After)**: `GET https://api.bavest.co/v2/account/status?symbol=AAPL`

#### Bulk Request Update

* **v0 (Before)**: `POST https://api.bavest.co/v0/bulk -d '{"symbol":"AAPL"}'`
* **v2 (After)**: `POST https://api.bavest.co/v2/bulk -d '{"symbol":"AAPL"}'`
  * *Note: While the path changed to /v2/, the bulk endpoint remains a POST operation with 5 new added fields: `error`, `isin`, `message`, `symbol`, and `valid`.*

## Bulk endpoint, dividend calendar and aggregated search

November 2024 · https://dashboard.bavest.co/changelog#2024-11-bulk-and-dividends

v0 release: one request for many symbols, a dividend calendar, annualised dividends, dividend estimates and trailing-twelve-month financials.

**Summary**

1. **List Endpoints**: The list endpoints return the assets list for funds, etc, crypto, add and stock data.
2. **Aggregated Search**: The search result is grouped by security name.
3. **Enhanced Searcher**: Support over 100.000 securities.
4. **Performance improvements** The average response time of the API is <400ms.

**New Endpoints**\
1\. **Bulk Endpoint**: Return the Quote, Candle and ETF data bulked\
2\. **Dividend Calendar**: Return upcoming dividends for stocks and etfs.\
3\. **Annual dividends**: Annualise dividend to make them easier comparable\
4\. **ETF and Stock dividend estimates**: Return dividend estimates.\
5\. **Financial TTM**: Return financial TTM results

### New Endpoints

#### Bulk

**Endpoint:** Bulk  \
**Description:** This endpoint returns bulked financial data.

```
curl --request POST \
     --url https://api.bavest.co/v0/bulk \
     --header 'accept: text/plain' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key' \
     --data '
{
  "symbols": [
    {
      "symbol": "IWDA.L"
    }
  ],
  "endpoint": "etf_profile",
  "params": {
    "resolution": "D",
    "symbol": "ARKK"
  }
}
'
```

**Parameters**:

* symbols:  The security symbols
* endpoint: The endpoint name
* params: Addionall parameters for the endpoint



#### Search aggregated

**Endpoint:** Search aggregated  \
**Description:** This endpoint returns aggregated search results.

```
curl --request POST \
     --url https://api.bavest.co/v0/search/aggregated \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key' \
     --data '{"query":"AAPL"}'
```

**Parameters**:

* query:  The search query

#### Dividend Calendar

**Endpoint:** Dividend Calendar  \
**Description:** The dividend calendar return announced dividends.

```
curl --request POST \
     --url https://api.bavest.co/v0/calendar/dividends \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key'
```



#### Financials TTM

**Endpoint:** Financials TTM  \
**Description:** This endpoint returns financial TTM results.

```
curl --request POST \
     --url https://api.bavest.co/v0/stock/financials/ttm \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key' \
     --data '{"symbol":"AAPL"}'
```

**Parameters**:

* symbol:  The security symbol



#### Financials TTM

**Endpoint:** Dividend Estimate  \
**Description:** This endpoint returns dividend estimates

```
curl --request POST \
     --url https://api.bavest.co/v0/etf/dividend-estimate \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key' \
     --data '{"symbol":"HDLV.DE"}'
```

**Parameters**:

* symbol: The symbol of the security.



#### Financials TTM

**Endpoint:** Annual Dividends  \
**Description:** The endpoint provides annual dividends for stocks, ETFs, and mutual funds.

```
curl --request POST \
     --url https://api.bavest.co/v0/dividends/annual \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: api-key' \
     --data '{"symbol":"AAPL"}'
```

**Parameters**:

* symbol: The symbol of the security.

## Fund data, crypto prices and consistent status codes

July 2024 · https://dashboard.bavest.co/changelog#2024-07-funds-and-crypto

v0 release: fund profiles, holdings, sectors and countries, crypto prices, ETF metrics, and the same status codes on every route.

**Summary**

1. **Search Endpoint**: The search endpoint now supports funds, crypto, and forex data.
2. **Consistent API Response Codes**: The API response codes are now consistent across all endpoints:
   * **200**: Success
   * **401**: Unauthorised
   * **403**: Forbidden
   * **404**: Not Found
   * **500**: Internal Server Error

* **New Endpoints**
  * **Crypto Price**: Returns price data for cryptocurrencies.
  * **ETF Fundamental**: Returns fundamental data for Exchange Traded Funds (ETFs).
  * **ETF Metrics**: Returns performance metrics for Exchange Traded Funds (ETFs).
  * **Fund Profile**: Returns the profile information for a specified fund.
  * **Fund Sector**: Returns the fund sector list.
  * **Fund Allocation Exposure**: Returns the exposure for a specified fund.
  * **Fund Country**: Returns the country list for the specified fund.
  * **Fund Holding**: Returns the holdings list for a specified fund.
* **Deprecated Announcements**
  * Version 0 Maintenance:
    * Version 0 (v0) will be maintained until 31.12.2024. After this date, it will be required to switch to Version 1 (v1).
    * V1 is released in October 2024 and contains only small changes with the goal of improving the developer experience.
  * **Changes in (Version 1)**
    * **Indices Constituents**:
      * The indices constituents endpoint is removed as of 01.05.2024.
    * **ETF Holdings**:
      * The field "cusip" will be removed starting from Version 1 (v1) and greater, effective 01.07.2024.
    * **Stock Candle**:
      * The endpoint will be removed as of 31.12.2024. Please use the /candle endpoint instead.

 

### New Endpoints

#### Crypto Price

**Endpoint:** Crypto Price  \
**Description:** This endpoint provides a price quote for a specified cryptocurrency. Over 1000 cryptocurrency symbols are supported.

```
curl --request POST  
     --url <https://api.bavest.co/v0/crypto/price>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
      --data '{  
       "symbol": "BTCUSD"  
     }'  
```

**Parameters**:

* symbol:  The crypto symbol (e.g. BTCUSD) 

#### ETF Metrics

**Endpoint:** `post-etf-metrics` (v0)  \
**Description:** This endpoint returns performance metrics for Exchange Traded Funds (ETFs).  

```
curl --request POST  
     --url <https://api.bavest.co/v0/etf/metrics>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
     --data '{  "from": 1361290149,  "to": 1676588400,  "resolution": "D",  "currency": "EUR",  "symbol": "IWDA.L"}' 
```

**Parameters:**

* from: Start timestamp (Unix epoch).
* to: End timestamp (Unix epoch).
* resolution: Data resolution (e.g., "D" for daily).
* currency: Currency code (e.g., "EUR").
* symbol: ETF symbol (e.g., "IWDA.L"). 

#### ETF Fundamentals

**Endpoint**: `etf-fundamentals` (v0)  \
**Description**: This endpoint provides fundamental data for specified ETFs.  Sample Request:

```
curl --request POST  
     --url <https://api.bavest.co/v0/etf/fundamentals>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key  
```

#### Fund Allocation Exposure

**Endpoint**: `post-fund-allocation-exposure` (v0)  \
**Description**: The fund allocation exposure endpoint returns the exposure for a specified fund.  

```
curl --request POST  
     --url <https://api.bavest.co/v0/fund/allocation-exposure>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
     --data '{  
       "isin": "DE000ETFL573"  
     }'  
```

**Parameters:**

* isin: International Securities Identification Number (ISIN) of the fund (e.g., "DE000ETFL573").

#### Fund Country

**Endpoint**: `post-fund-country` (v0) \
**Description:** The fund country endpoint returns the country list for the specified fund.  

```
curl --request POST  
     --url <https://api.bavest.co/v0/fund/country>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
     --data '{  
       "isin": "DE000ETFL573"  
     }'  
```

**Parameters:**

* isin: International Securities Identification Number (ISIN) of the fund (e.g., "DE000ETFL573").

 

#### Fund Holding

**Endpoint:** `post-fund-holding` (v0)  \
**Description:** The fund holding endpoint returns the holdings list for a specified fund.

```
curl --request POST
     --url <https://api.bavest.co/v0/fund/holding>
     --header 'accept: application/json'
     --header 'content-type: application/json'
     --header 'x-api-key: api-key'
     --data '{
       "isin": "DE000ETFL573"

     }'
```

**Parameters:**

* isin: International Securities Identification Number (ISIN) of the fund (e.g., "DE000ETFL573").

#### Fund Profile

**Endpoint:** `post-fund-profile` (v0)  \
**Description:** The fund holding endpoint returns the holdings list for a specified fund. 

```
curl --request POST  
     --url <https://api.bavest.co/v0/fund/profile>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
     --data '{  
       "isin": "DE000ETFL573"  
     }'  
```

**Parameters:**

* isin: International Securities Identification Number (ISIN) of the fund (e.g., "DE000ETFL573").

 

#### Fund Sector

**Endpoint:** `post-fund-sector` (v0)  \
**Description:** The fund sector endpoint returns the fund sector list.

```
curl --request POST  
     --url <https://api.bavest.co/v0/fund/sector>  
     --header 'accept: application/json'  
     --header 'content-type: application/json'  
     --header 'x-api-key: api-key'  
     --data '{  
       "isin": "DE000ETFL573"  
     }'  
```

**Parameters:**

* isin: International Securities Identification Number (ISIN) of the fund (e.g., "DE000ETFL573").

### Deprecations

The following endpoint or fields are removed.

| Affected Endpoint    | Information                                                                       | Migration required | Version | Date       |
| :------------------- | :-------------------------------------------------------------------------------- | :----------------- | :------ | :--------- |
| Indices constituents | The indices constituents endpoint was removed.                                    | Yes                | > =0    | 01.05.2024 |
| ETF Holdings         | The field "cusip" will get removed. Only the version V1 and greater are effected. | Yes                | > =1    | 01.07.2024 |
| Stock Candle         | The endpoint will get removed. Please use the /candle endpoint.                   | Yes                | > =1    | 31.12.2024 |

Upcoming Deprecation of the Bavest API are announced via E-Mail. If you need more information, send us an E-Mail at: <service@bavest.co>.
