Skip to main content
GET
Returns a daily performance curve for the authenticated tenant’s portfolio. By default, returns are reported as money-weighted return (MWR), which reflects the user’s actual money outcome after deposits and withdrawals. B2B clients can pass returnMethod=TWR when they need the strategy-style time-weighted view.
  • Auth: x-api-key header (required)
  • Scope: portfolios:read
string
required
Portfolio identifier returned by POST /v2/enroll or GET /v2/portfolios.
MWR | TWR
Return methodology for the curve. Defaults to MWR.
Common error responses:
  • 400 when the path parameter is invalid
  • 401 when x-api-key header is missing or the key is invalid
  • 403 when the API key lacks the portfolios:read scope
  • 404 when the portfolio does not exist or does not belong to the tenant
  • 500 on unexpected server errors
The response carries a meta block describing the calculation method and a summary block with available lookback returns. summary is omitted when there are not enough points to calculate a lookback.
  • meta.method is MWR by default, or TWR when requested.
  • meta.resolution is 1d; points[] has at most one entry per UTC date.
  • points[].percentChange is the cumulative return at that point under meta.method, or null when a return is unavailable for that point. TWR is compounded from the first returned point; MWR is your money-weighted return, whose basis shifts as deposits and withdrawals change. For MWR, use summary.windows[] for lookback returns rather than differencing two percentChange values.
  • points[].valueUsd is the portfolio value for that UTC day.
  • points[].cashFlowUsd is the signed net cash flow for that UTC day: positive on net-deposit days, negative on net-withdrawal days, 0 otherwise.
  • summary.windows[] carries lookbacks ordered shortest to longest (1d, 1w, 1m, 3m, 6m, 12m, all). Fixed windows are included when enough history is available; all anchors on the curve’s first point and equals the cumulative return under meta.method.