Mutual Funds

Mutual fund API endpoints for listings, details, comparisons, and portfolio analysis.

All mutual fund endpoints are under /api/mf/.

Metadata & Listings

Get All AMCs

Returns all Asset Management Companies.

  • Method: GET
  • URL: /api/mf/get_all_amcs
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_all_amcs \
  -H "x-api-token: YOUR_TOKEN"
[
  { "id": 3, "name": "Axis Mutual Fund" },
  { "id": 5, "name": "HDFC Mutual Fund" }
]

Get All Asset Classes

Returns all asset classes (Equity, Debt, Hybrid, etc.).

  • Method: GET
  • URL: /api/mf/get_all_asset_classes
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_all_asset_classes \
  -H "x-api-token: YOUR_TOKEN"
[
  { "id": 1, "name": "Equity" },
  { "id": 2, "name": "Debt" }
]

Get All Sub-Categories

Returns all asset class sub-categories with their parent class.

  • Method: GET
  • URL: /api/mf/get_all_asset_class_sub_category
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_all_asset_class_sub_category \
  -H "x-api-token: YOUR_TOKEN"
[
  {
    "id": 1,
    "name": "Large Cap",
    "assetClassID": 1,
    "assetClassName": "Equity"
  },
  {
    "id": 2,
    "name": "Mid Cap",
    "assetClassID": 1,
    "assetClassName": "Equity"
  }
]

Get Asset Class & Category Details

Returns asset classes with their nested sub-categories as a hierarchical tree.

  • Method: GET
  • URL: /api/mf/get_asset_class_and_category_details
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_asset_class_and_category_details \
  -H "x-api-token: YOUR_TOKEN"
[
  {
    "id": 1,
    "category": "Equity",
    "subCategories": [
      { "id": 1, "subCategory": "Large Cap" },
      { "id": 2, "subCategory": "Mid Cap" }
    ]
  }
]

Get All Mutual Funds

Returns a lite listing of all mutual funds. Pre-computed and cached.

  • Method: GET
  • URL: /api/mf/get_all_mutual_funds
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_all_mutual_funds \
  -H "x-api-token: YOUR_TOKEN"

Returns an array of fund objects with basic fields: id, name, ISINCode, NAV, NAVDate, assetClass, assetClassSubCategory, amc, fundType, fundOption.


Fund Details & NAV

Get Mutual Fund Details

Returns comprehensive pre-computed metrics for a single fund.

  • Method: GET
  • URL: /api/mf/get_mutual_fund_details/<fund_id>
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_mutual_fund_details/42 \
  -H "x-api-token: YOUR_TOKEN"

Response fields:

FieldDescription
fundID, fundName, ISINCodeBasic fund identification
amc, assetClass, assetClassSubCategoryClassification
NAV, NAVDate, TERLatest NAV, date, and expense ratio
sipCagrMetricsFromDailyNAVDataSIP CAGR by duration (1Y, 3Y, 5Y, 7Y, 10Y, 12Y, 15Y)
xirrMetricsFromDailyNAVDataTrue XIRR by duration
rollingReturnMetricsFromDailyNAVDataRolling return summary per duration with meanReturn, sharpeRatio, sortinoRatio, bestReturn, worstReturn, percentOfWindowsWithPositiveReturn
drawdownMetricsmaxDrawdown, maxDrawdownDurationDays, maxDrawdownRecoveryDays, averageDrawdown, numberOfDrawdowns, calmarRatioByDuration
benchmarkComparisonMetricsbeta, alpha, upsideCaptureRatio, downsideCaptureRatio vs primary NSE benchmark (equity funds only, null for Debt)
categoryAverageRollingReturnsPeer category average for comparison

Duration keys are in months: "12" = 1Y, "36" = 3Y, "60" = 5Y, "84" = 7Y, "120" = 10Y, "144" = 12Y, "180" = 15Y.


Get Mutual Fund NAV

Returns the latest NAV for a specific fund.

  • Method: GET
  • URL: /api/mf/get_mutual_fund_nav/<fund_id>
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_mutual_fund_nav/42 \
  -H "x-api-token: YOUR_TOKEN"
{
  "fundID": 42,
  "fundName": "Axis Bluechip Fund - Direct Plan - Growth",
  "ISINCode": "INF846K01EW2",
  "NAV": "58.12",
  "NAVDate": "2026-02-06"
}

Get Top Funds

Returns top-performing funds grouped by asset class and sub-category. See Methodology for how top performers are selected.

  • Method: GET
  • URL: /api/mf/get_top_funds_by_asset_class_and_category
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_top_funds_by_asset_class_and_category \
  -H "x-api-token: YOUR_TOKEN"

Analytics & Comparison

Compare Mutual Funds

Side-by-side comparison of 2-10 funds by ISIN code. Returns the full metric set for each fund.

  • Method: POST
  • URL: /api/mf/compare_mutual_funds
  • Auth: Not required

Request body:

FieldTypeDescription
schemeCodesstring[]ISIN codes to compare (2-10)
curl -s -X POST https://api.indvested.com/api/mf/compare_mutual_funds \
  -H "Content-Type: application/json" \
  -d '{"schemeCodes": ["INF846K01EW2", "INF090I01JN4", "INF205K01UV3"]}'
{
  "funds": [
    {
      "id": 42,
      "amcName": "Axis AMC",
      "fundName": "Axis Bluechip Fund - Direct Growth",
      "ISINCode": "INF846K01EW2",
      "metaData": { "TER": 0.42, "NAV": 58.23, "NAVDate": "2026-02-24" },
      "rollingReturnSummary": {
        "12": {
          "meanReturn": 13.5,
          "sharpeRatio": 0.91,
          "sortinoRatio": 1.24,
          "percentOfWindowsWithPositiveReturn": 88.5
        }
      },
      "drawdownMetrics": {
        "maxDrawdown": -0.31,
        "maxDrawdownDurationDays": 412,
        "calmarRatioByDuration": { "12": 22.4, "36": 9.1 }
      },
      "benchmarkComparisonMetrics": {
        "benchmarkIndexName": "NIFTY 50",
        "metricsByDuration": {
          "36": {
            "beta": 0.93,
            "alpha": 1.8,
            "upsideCaptureRatio": 104.2,
            "downsideCaptureRatio": 83.1
          }
        }
      }
    }
  ],
  "notFoundISINs": []
}
  • rollingReturnSummary and sipCagrSummary are keyed by duration in months
  • benchmarkComparisonMetrics is null for Debt funds
  • notFoundISINs lists any requested ISINs that were not found

Compute Portfolio Return

Compute blended portfolio returns from a weighted combination of funds, compared against NSE index benchmarks.

  • Method: POST
  • URL: /api/mf/compute_portfolio_return
  • Auth: Not required

Request body: JSON object where keys are fund IDs and values are percentage weights. Weights must sum to 100.

curl -s -X POST https://api.indvested.com/api/mf/compute_portfolio_return \
  -H "Content-Type: application/json" \
  -d '{"42": 60, "85": 40}'
{
  "fundDetails": [ ... ],
  "blendedReturns": {
    "absoluteSipCagr": { "1Y": 12.5, "3Y": 14.2, "5Y": 15.8 },
    "rollingReturns": { "1Y": 11.8, "3Y": 13.5, "5Y": 14.9 }
  },
  "benchmarkReturns": [ ... ]
}

Screen Funds

Filter funds by computed metric thresholds. All parameters are optional and AND-combined. Reads from a pre-built screener index cache, so responses are fast.

  • Method: GET
  • URL: /api/mf/screen
  • Auth: Not required

Query parameters:

ParameterTypeDescription
subcategorystringCase-insensitive substring match on sub-category (e.g., large+cap)
amcstringCase-insensitive substring match on AMC name
max_terfloatMaximum expense ratio
min_alphafloatMinimum Jensen’s alpha (longest available duration)
max_betafloatMaximum beta vs benchmark
min_upside_capturefloatMinimum upside capture ratio
max_downside_capturefloatMaximum downside capture ratio
min_history_yearsintMinimum years of rolling return data
min_rolling_return_1yfloatMinimum mean 1-year rolling return
min_rolling_return_3yfloatMinimum mean 3-year rolling return
min_rolling_return_5yfloatMinimum mean 5-year rolling return
sort_bystringSort key. One of: alpha, beta, ter, upside_capture, downside_capture, max_drawdown, rolling_return_1y, rolling_return_3y, rolling_return_5y. Default: alpha
limitintMax results (1-100, default 50)
curl -s "https://api.indvested.com/api/mf/screen?subcategory=large+cap&min_alpha=0&max_beta=1&max_ter=1&min_history_years=5"
{
  "totalMatching": 12,
  "returned": 12,
  "limit": 50,
  "sortBy": "alpha",
  "funds": [
    {
      "id": 42,
      "ISINCode": "INF209K01YZ5",
      "fundName": "Axis Bluechip Fund - Direct Plan - Growth",
      "amcName": "Axis",
      "assetClassSubCategory": "Large Cap Fund",
      "TER": 0.52,
      "NAV": 58.12,
      "alpha": 3.21,
      "beta": 0.87,
      "upsideCaptureRatio": 105.2,
      "downsideCaptureRatio": 82.1,
      "rollingReturnMeanByDuration": { "12": 15.2, "36": 12.8, "60": 11.5 },
      "maxDrawdown": -0.35
    }
  ]
}

Funds missing a filtered metric (e.g., Debt funds have no alpha/beta) are excluded when that filter is active.


Fund Overlap

Compare 2-10 equity funds by portfolio holdings overlap. Returns a pairwise overlap matrix, shared holdings, and per-fund summaries.

  • Method: POST
  • URL: /api/mf/fund_overlap
  • Auth: Not required

Request body:

FieldTypeDescription
fundIdsint[]Fund IDs to compare (2-10)

Overlap formula: overlap(A, B) = sum of min(weight_A, weight_B) for all shared stock ISINs.

curl -s -X POST https://api.indvested.com/api/mf/fund_overlap \
  -H "Content-Type: application/json" \
  -d '{"fundIds": [123, 456, 789]}'
{
  "reportingDate": "2026-01-31",
  "overlapMatrix": {
    "123_456": { "overlapPercentage": 34.5, "sharedHoldingsCount": 18 },
    "123_789": { "overlapPercentage": 12.1, "sharedHoldingsCount": 8 },
    "456_789": { "overlapPercentage": 28.7, "sharedHoldingsCount": 15 }
  },
  "sharedHoldings": [
    {
      "stockISIN": "INE002A01018",
      "stockName": "Reliance Industries",
      "industry": "Petroleum Products",
      "fundsHolding": [
        { "fundId": 123, "percentageOfNav": 5.2 },
        { "fundId": 456, "percentageOfNav": 3.8 }
      ]
    }
  ],
  "fundSummaries": {
    "123": { "totalHoldings": 45, "uniqueHoldings": 18 },
    "456": { "totalHoldings": 52, "uniqueHoldings": 22 }
  }
}

Portfolio Overlap

Analyze a portfolio for stock-level concentration. Returns effective stock exposure weighted by your fund allocations, sector breakdown, and concentration metrics.

  • Method: POST
  • URL: /api/mf/portfolio_overlap
  • Auth: Not required

Request body:

FieldTypeDescription
portfolioarrayArray of {fundId, allocationPercentage} objects. Allocations must sum to 100

Effective weight per stock: effectiveWeight = sum(fund_allocation % x stock_weight_in_fund % / 100)

curl -s -X POST https://api.indvested.com/api/mf/portfolio_overlap \
  -H "Content-Type: application/json" \
  -d '{"portfolio": [{"fundId": 123, "allocationPercentage": 40}, {"fundId": 456, "allocationPercentage": 60}]}'
{
  "reportingDate": "2026-01-31",
  "effectiveStockExposure": [
    {
      "stockISIN": "INE002A01018",
      "stockName": "Reliance Industries",
      "effectiveWeight": 8.2,
      "contributingFunds": [
        { "fundId": 123, "contribution": 5.1 },
        { "fundId": 456, "contribution": 3.1 }
      ]
    }
  ],
  "concentrationMetrics": {
    "top10StockConcentration": 42.5,
    "uniqueStocksCount": 87,
    "totalStocksCount": 145,
    "duplicateStocksCount": 32
  },
  "sectorExposure": [
    { "sector": "Banks", "effectiveWeight": 18.3 },
    { "sector": "IT - Software", "effectiveWeight": 12.1 }
  ]
}