---
title: "Mutual fund category flows"
method: GET
path: "/v1/funds/category-flows"
tags: ["funds"]
---

# Mutual fund category flows

`GET /v1/funds/category-flows`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/funds/category-flows`
- Auth: HTTP bearer

Monthly industry-wide mutual fund data per scheme category: schemes, folios, gross inflows, redemptions, net flow and AUM, INR crore, from April 2019. Defaults to the last 12 months. Pages by (month, scheme_type, category).

## Query parameters

- `group` 'debt' | 'equity' | 'hybrid' | 'solution_oriented' | 'other' | 'index_funds' | 'etfs' | 'overseas_fund_of_funds'
- `from` string
- `to` string
- `order` 'asc' | 'desc'
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` FundCategoryFlowsItem[], required
    - `month` string, required: First day of the reporting month (YYYY-MM-DD).
    - `scheme_type` 'open_ended' | 'close_ended' | 'interval', required: Open-ended, close-ended or interval schemes.
    - `group` 'debt' | 'equity' | 'hybrid' | 'solution_oriented' | 'other' | 'index_funds' | 'etfs' | 'overseas_fund_of_funds', nullable, required: Category group. From Aug 2026 index funds, ETFs and overseas fund-of-funds are reported as their own groups; before that they sit under `other`.
    - `category` string, required: Fund category, e.g. Flexi Cap Fund, Liquid Fund. Names follow the monthly industry report and occasionally change.
    - `schemes` number, nullable, required: Number of schemes in the category.
    - `folios` number, nullable, required: Number of investor folios at month end.
    - `funds_mobilized_cr` number, nullable, required: Gross inflows during the month, INR crore.
    - `redemptions_cr` number, nullable, required: Redemptions and repurchases during the month, INR crore.
    - `net_flow_cr` number, nullable, required: Net inflow (mobilised minus redeemed), INR crore. Negative = net outflow.
    - `net_aum_cr` number, nullable, required: Net assets under management at month end, INR crore.
    - `average_aum_cr` number, nullable, required: Average assets under management for the month, INR crore.
  - `meta` ListMeta, required
    - `as_of` string, date-time, required: When this response was assembled (UTC).
    - `route` string, required: operationId that served the request.
    - `count` integer, required: Items in this page.
    - `limit` integer, required: Page size applied.
    - `has_more` boolean, required: Whether another page exists.
    - `next_cursor` string, nullable, required: Pass as `cursor` to fetch the next page; null on the last page.
  - `links` Links, required
    - `next` string, nullable: Relative URL of the next page, or null.

## Other responses

- `400`: Malformed or out-of-range parameter. Not charged.
- `401`: Missing or invalid bearer token.
- `404`: The requested resource does not exist. Not charged.
- `429`: Per-minute burst cap (`rate_limited`) or plan quota (`quota_exhausted`) reached.
- `500`: Unexpected server error. Not charged.
- `502`: A data dependency was unavailable. Not charged.
- `503`: Authentication or quota service temporarily unavailable (`service_unavailable`). Not charged; retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/tapetide/apis/tapetide-api.md) · [All operations](https://skmtc.dev/tapetide/apis/tapetide-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tapetide/apis/tapetide-api/revisions/261ec086bde5?raw)
