Bavest QuantOS

QuantOS Portfolio Return

POST/v2/quant-os/return

Calculate portfolio return over a specified period.

Included in: 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

This route takes no path or query parameters.

Try it

Draft from the schema. Review and fill in required fields before sending.

POST /v2/quant-os/return

Sent only to api.bavest.co for this request; not stored.

Sign in to sendGet an API keySends with the key above, or sign in to use your account's key. Each request counts as one API call.

Request body

Symbols, weights, and date range for analysis.

  • portfolioItemsarray of objectrequired

    Portfolio positions with symbol, allocation weight, and purchase date

    • symbolstringrequired

      Ticker symbol

      Example AAPL

    • weightnumberrequired

      Allocation weight (all weights must sum to 1.0)

      Example 0.4

    • buyDatestring (date)required

      Purchase date (YYYY-MM-DD). Converted to Unix timestamp internally.

      Example 2026-09-01

    • amountnumber

      Number of shares held

  • startDatestring (date)

    Analysis start date (YYYY-MM-DD)

    Example 2026-09-01

  • endDatestring (date)

    Analysis end date (YYYY-MM-DD)

    Example 2026-09-30

  • currencystring

    Target currency for valuation (ISO 4217)

    Example USD

  • resolutionstring

    Data resolution for time series

    One of D W M

    Example D

Response 200

Successful response · application/json

  • dataQuantOSReturn

    Portfolio return calculation.

    • totalReturnnumber (double)

      Cumulative return over period (decimal)

    • annualizedReturnnumber (double)

      Annualized return (decimal)

    • betanumber (double)

      Portfolio beta

      Example 0

    • dividendPerShareAnnualnumber (double)

      Annual dividend per share (USD)

      Example 0

    • performanceOneWeeknumber (double)

      One-week return

      Example 0

    • performanceOneYearnumber (double)

      One-year return

      Example 0

    • performanceSixMonthsnumber (double)

      Six-month return

      Example 0

  • metaResponseMeta

    Response envelope metadata. Always present on a 200: time is set by core/response.py on every successful response. Errors carry the same block, built by the same code, so a client parses one meta shape whether the call succeeded or failed.

    • timeinteger

      Server-side processing time in milliseconds

      Example 17

    • parametersobject

      Echo of the request parameters the endpoint resolved

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.
  • 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.

For AI agents: this page as Markdown at /docs/v2_quant_os_return.md, every route in /llms.txt, the OpenAPI spec at /openapi.json.