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). Also includes benchmarkSipReturnsByDuration — a flat {months: %} map of the benchmark’s own SIP XIRR by duration, decoupled from fund age so every duration the benchmark supports surfaces regardless of the fund’s history.
pointToPointReturnFromDailyNAVDataLump-sum CAGR: NAV at start vs end, annualized
pointToPointReturnFromMonthlyNAVDataLump-sum CAGR using 4 min/max combinations plus blended average
sipCagrMetricsOverall, xirrMetricsOverall, rollingReturnMetricsOverall, pointToPointReturnMetricsOverallMerged daily+monthly values per duration with source field ("daily", "monthly", or "both")
categoryAverageRollingReturnsPeer category average rolling returns for comparison
categoryAverageSipReturnsPeer category average SIP XIRR (flat {months: %} map, decoupled from fund age)
calendarYearReturnsFromDailyNAVDataPer-calendar-year return computed from daily NAV series. Shape: {"summary": {<year>: {"year", "fromDate", "toDate", "initialNAV", "finalNAV", "return", "isPartialYear"}}, "updatedAt"}. Within-year method: (last NAV of year ÷ first NAV of year − 1) × 100. Years with isPartialYear: true are the leading-inception year, the trailing dead-fund stub, or the current (in-progress) year.
calendarYearReturnsFromMonthlyNAVDataSame shape as calendarYearReturnsFromDailyNAVData, but computed from the monthly NAV band. Used as the fallback band when the daily series is missing.
benchmarkCalendarYearReturnsPer-calendar-year return map for the fund’s primary NSE benchmark (price-return basis). null for funds whose subcategory has no mapped benchmark (e.g., most Debt subcategories).
benchmarkCalendarYearReturnsMeta{benchmarkIndexName, benchmarkBasis: "price-return"} for the benchmark above. null when there is no benchmark calendar map for this fund.
categoryAverageCalendarYearReturnsPer-calendar-year mean across the peer category, computed over only window-comparable contributions (funds whose year-Y record starts in January and ends in December, except the current year where YTD is allowed). Shape: {year(int): mean_return(%, 2dp)}. null if no subcategory match.

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 All Mutual Funds NAV

Returns all mutual funds with their latest NAV and NAV date.

  • Method: GET
  • URL: /api/mf/get_all_mutual_funds_nav
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_all_mutual_funds_nav \
  -H "x-api-token: YOUR_TOKEN"
[
  {
    "fundId": 1,
    "fundName": "HDFC Flexi Cap Fund - Direct Plan - Growth",
    "isin": "INF179K01YS2",
    "amcName": "HDFC Asset Management Company Limited",
    "fundOption": "Growth",
    "fundType": "Direct",
    "latestNAV": 25.43,
    "latestNAVDate": "2026-03-20"
  }
]

Get Mutual Fund NAV by ISIN

Returns the latest NAV for a fund looked up by ISIN code.

  • Method: GET
  • URL: /api/mf/get_mutual_fund_nav_by_isin/<isin_code>
  • Auth: Required

URL parameters:

ParameterTypeDescription
isin_codestring12-character ISIN code starting with “IN”
curl -s https://api.indvested.com/api/mf/get_mutual_fund_nav_by_isin/INF846K01EW2 \
  -H "x-api-token: YOUR_TOKEN"
{
  "fundId": 42,
  "fundName": "Axis Bluechip Fund - Direct Plan - Growth",
  "isin": "INF846K01EW2",
  "fundOption": "Direct",
  "fundType": "Growth",
  "latestNAV": 58.12,
  "latestNAVDate": "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"

Get Top Fund History

Returns a fund’s consistency score (how often it appears in the top-funds snapshot) over the last 12m and 24m windows, plus a 30-day timeline of the rolling-return snapshot used to compute it. Lets you check whether a top-funds designation is durable or a one-off.

  • Method: GET
  • URL: /api/mf/top-funds/history/<isin>
  • Auth: Not required

URL parameters:

ParameterTypeDescription
isinstring12-character ISIN code of the fund (e.g., INF846K01EW2)
curl -s https://api.indvested.com/api/mf/top-funds/history/INF846K01EW2
{
  "isinCode": "INF846K01EW2",
  "fundName": "Axis Bluechip Fund - Direct Plan - Growth",
  "assetClassSubCategory": "Large Cap Fund",
  "consistencyScore12m": 92.3,
  "consistencyScore24m": 78.5,
  "totalSnapshots12m": 130,
  "qualifiedSnapshots12m": 120,
  "totalSnapshots24m": 250,
  "qualifiedSnapshots24m": 196,
  "recentSnapshots": [
    {
      "date": "2026-06-14",
      "qualified": true,
      "meanRollingReturnByDuration": { "12": 14.2, "36": 12.8, "60": 11.5 }
    },
    {
      "date": "2026-06-13",
      "qualified": false
    }
  ]
}
  • consistencyScore12m / consistencyScore24m — percentage of the 12/24-month snapshot windows in which the fund qualified as a top performer (0-100). null if no snapshots exist in the window.
  • totalSnapshots{12m,24m} — number of distinct pipeline-run snapshot dates in the window (denominator).
  • qualifiedSnapshots{12m,24m} — number of those snapshots where this fund was in the top list (numerator).
  • recentSnapshots — last 30 days of pipeline runs, newest first. Each entry is either a full snapshot (qualified: true with the fund’s meanRollingReturnByDuration at that date) or a placeholder (qualified: false for dates when the pipeline ran but the fund did not qualify).

A 404 is returned when the ISIN is not in the system.


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 }
  ]
}

Portfolio Holdings

Get Portfolio Holdings

Returns equity holdings for a mutual fund by ISIN code. Data is sourced directly from AMC monthly portfolio disclosures.

  • Method: GET
  • URL: /api/mf/get_mutual_fund_portfolio_holdings/<isin_code>
  • Auth: Required

URL parameters:

ParameterTypeDescription
isin_codestring12-character ISIN code of the mutual fund
curl -s https://api.indvested.com/api/mf/get_mutual_fund_portfolio_holdings/INF179K01YS2 \
  -H "x-api-token: YOUR_TOKEN"

Get ISINs with Portfolio Holdings

Returns a sorted list of fund ISIN codes that have portfolio holdings data available.

  • Method: GET
  • URL: /api/mf/get_isins_with_portfolio_holdings
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_isins_with_portfolio_holdings \
  -H "x-api-token: YOUR_TOKEN"
["INF179K01YV8", "INF179KC1II1", "INF0GCD01743"]

Get Funds Holding Stock

Reverse lookup: returns all mutual funds that hold a specific stock, identified by the stock’s ISIN code.

  • Method: GET
  • URL: /api/mf/get_funds_holding_stock/<stock_isin>
  • Auth: Required

URL parameters:

ParameterTypeDescription
stock_isinstring12-character ISIN code of the stock (e.g., INE002A01018 for Reliance)
curl -s https://api.indvested.com/api/mf/get_funds_holding_stock/INE002A01018 \
  -H "x-api-token: YOUR_TOKEN"

Utility Endpoints

Count All Funds

Returns the total number of mutual funds in the system.

  • Method: GET
  • URL: /api/mf/get_count_all_funds
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_count_all_funds \
  -H "x-api-token: YOUR_TOKEN"
{ "total_funds": 2547 }

Get Duplicate Funds

Returns funds that share the same name, useful for identifying duplicate entries.

  • Method: GET
  • URL: /api/mf/get_duplicate_funds
  • Auth: Required
curl -s https://api.indvested.com/api/mf/get_duplicate_funds \
  -H "x-api-token: YOUR_TOKEN"
{
  "total_records": 2547,
  "duplicate_funds": [
    {
      "fund_name": "Some Fund Name",
      "count": 2,
      "funds": [
        { "id": 101, "name": "Some Fund Name", "ISINCode": "INF...", "fundOption__name": "Direct", "fundType__name": "Growth" },
        { "id": 202, "name": "Some Fund Name", "ISINCode": "INF...", "fundOption__name": "Regular", "fundType__name": "Growth" }
      ]
    }
  ]
}

Get Datasheet

Download a previously generated Excel datasheet file by its hash.

  • Method: GET
  • URL: /api/mf/get_datasheet/<fileHash>
  • Auth: Required

URL parameters:

ParameterTypeDescription
fileHashstringBlake2b hash of the file (from a prior generation step)
curl -s https://api.indvested.com/api/mf/get_datasheet/abc123def456 \
  -H "x-api-token: YOUR_TOKEN" \
  -o datasheet.xlsx

Returns the file as an attachment download with appropriate content type and size headers.


Get Most Viewed Funds

Returns the top 10 most visited mutual funds by visit count.

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

Record Fund Visit

Records a page visit for a mutual fund. Used to track fund popularity.

  • Method: POST
  • URL: /api/mf/record_visit/<fund_id>
  • Auth: Not required

URL parameters:

ParameterTypeDescription
fund_idintFund ID
curl -s -X POST https://api.indvested.com/api/mf/record_visit/42