Portfolio Analytics

Get Performance Analytics

Live NAV-based performance and risk metrics for 1-20 funds, with peer enrichment.

post/api/portfolio/performance-analytics

Request

  • Base URL
    https://api.harmoney.in
  • URL
    https://api.harmoney.in/api/portfolio/performance-analytics
  • Auth
    API key in header x-api-key

Request body

instrument_idsstring[] required

1–20 instrument unique_ids

metricsstring[] required

One or more metric tokens

benchmark_idstring

unique_id of the instrument beta / treynor / up_capture / down_capture are measured against — normally the fund the caller selected as its benchmark. There is no default: without it those four metrics are null rather than silently measured against an index the caller never chose. The response's benchmark_name name the leg actually used.

rolling_window'3M' | '6M' | '1Y'

Trailing lookback for rolling_return at each daily anchor. Required when 'rolling_return' is in metrics; ignored otherwise. Options: 3M | 6M | 1Y.

discrete_returns_frequency'monthly' | 'quarterly' | 'annual'

Bucket cadence for discrete_return (calendar-aligned). Required when 'discrete_return' is in metrics; ignored otherwise. Options: monthly | quarterly | annual.

risk_frequency'monthly' | 'daily'

Return cadence for volatility / sharpe / sortino. 'monthly' (default) resamples NAV to month-end and annualises by sqrt(12), matching how AMFI factsheets publish these figures. 'daily' keeps the raw NAV series and annualises by sqrt(252). Ignored by every other metric.

include_categoryboolean

If true, every point in every metric series carries a 'category_avg' field with the peer average for that metric at that step.

include_rankingboolean

If true, every point in every rankable metric series carries 'rank' and 'out_of' fields with the fund's DENSE_RANK against category peers on that metric at that step.

as_ofstring date

Mode A: last evaluation point / trailing anchor

horizon'1M' | '3M' | '6M' | 'YTD' | '1Y' | '3Y' | '5Y' | '10Y' | 'MAX'

Mode A: outer window size — as_of − horizon becomes the evaluation window start. Ignored by trailing_return. Full HorizonToken set including 10Y, YTD, MAX.

start_datestring date

Mode B: first evaluation point

end_datestring date

Mode B: last evaluation point / trailing anchor

Example request

{
  "instrument_ids": [
    "INS-HAQO5J6GGY"
  ],
  "as_of": "2026-06-30",
  "horizon": "1Y",
  "start_date": "2025-06-30",
  "end_date": "2026-06-30"
}

Response

Successful Response

requested_startstring date required
requested_endstring date required
effective_startstring date
effective_endstring date
as_ofstring date
horizon'1M' | '3M' | '6M' | 'YTD' | '1Y' | '3Y' | '5Y' | '10Y' | 'MAX'
start_datestring date
end_datestring date
discrete_returns_frequency'monthly' | 'quarterly' | 'annual'
rolling_window'3M' | '6M' | '1Y'
metricsstring[] required
benchmark_namestring

Changes

No recorded changes to this operation across all 1 revision of this API.