Changelog

API updates, newest first.

RSS feed

Specification and implementation changes may precede deployment.

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

    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.

  2. API specification change

    Dividends: API specification update

    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.
  3. API specification change

    Equities, ETFs: API specification update

    2 public operations with updated contracts.

    Contract updated

    GET /v2/equities/logo

    • Parameters changed.

    GET /v2/etfs/kid

    • Parameters changed.
  4. API specification change

    Economy, Metrics: API specification update

    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.
  5. API specification change

    Equities, Reference data: API specification update

    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.
  6. API specification change

    Estimates: API specification update

    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.
  7. v2 API: GET routes, focused namespaces and camelCase fields

    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/quotaMoved 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.
  8. Bulk endpoint, dividend calendar and aggregated search

    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.
  9. Fund data, crypto prices and consistent status codes

    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 EndpointInformationMigration requiredVersionDate
    Indices constituentsThe indices constituents endpoint was removed.Yes> =001.05.2024
    ETF HoldingsThe field "cusip" will get removed. Only the version V1 and greater are effected.Yes> =101.07.2024
    Stock CandleThe endpoint will get removed. Please use the /candle endpoint.Yes> =131.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.