# MF NAV API - Free Indian Mutual Fund NAV Data (AMFI)

Open, no-auth HTTP API for Indian mutual fund NAV history from AMFI - 20.5M+ daily NAV records across 18,000+ schemes, history back to 2008, refreshed daily. Search a scheme, pull the full history for one scheme, or download the ENTIRE dataset in a single call (parquet / csv.gz / tsv.gz / sqlite). Built for AI agents first, humans second: every page here has a Copy-as-Markdown button so you can hand it straight to your agent.

Kind: REST / HTTP API, Data API, Open - no auth
Base URL: https://api.tigzig.com/mf/v1
Docs: https://api.tigzig.com/mf/v1/docs  ·  OpenAPI: https://api.tigzig.com/mf/v1/openapi.json
Full page: https://www.tigzig.com/apis/mf-nav

## Overview

A free, open AMFI mutual fund NAV API for India - no key, no sign-up. AMFI publishes NAVs as a giant daily text dump; most other "APIs" make you pull one scheme at a time, rate-limited, recent history only. This one does the thing others do not: let you download the entire NAV history - every scheme, every day - in a single call.

- 20.5M+ daily NAV records, refreshed daily from AMFI.
- 18,000+ schemes - every live and historical AMFI scheme.
- History back to 2008.
- No authentication. No key, no sign-up, no quota games.

AI agents: open (no auth), listed in the RFC 9727 catalog at https://api.tigzig.com/.well-known/api-catalog . Base URL https://api.tigzig.com/mf/v1/ self-documents (endpoints, schema, file sizes); OpenAPI at /openapi.json.

The same MF NAV data powers the MFPRO analytics app (https://mfpro.tigzig.com).

## Using the API

1. Search for a scheme (find a code by name):
   GET https://api.tigzig.com/mf/v1/search?q=hdfc flexi cap
   Returns matching scheme codes + names (e.g. 118955 = HDFC Flexi Cap Fund - Growth - Direct Plan).

2. Full NAV history for one scheme (entire history, no pagination; add &since=YYYY-MM-DD to filter):
   GET https://api.tigzig.com/mf/v1/nav?scheme=118955&since=2020-01-01

3. Download the WHOLE database in one call (single pre-generated file, ~130 MB for all 20M+ rows):
   GET https://api.tigzig.com/mf/v1/download?format=parquet
   Formats: parquet, csv.gz, tsv.gz, sqlite. Load straight into pandas:
   df = pd.read_parquet("https://api.tigzig.com/mf/v1/download?format=parquet")

Sizes + last-refresh time first: GET /mf/v1/downloads/manifest

## What you can build

- A returns calculator (1Y / 3Y / 5Y / SIP / rolling returns) over the full history.
- Backtests, fund-of-funds, and rebalancing strategies.
- Your own dashboards and notebooks, without scraping AMFI.
- Research-grade history, no subscription paywall.

Why one-call download matters: every other route makes you paginate - one scheme, one request, rate-limited, often capped at recent history. For any real analysis you need all of it, locally. One call, one file, done.

## API Endpoints (REST / HTTP)

Base URL: `https://api.tigzig.com/mf/v1`

### GET /
API catalog -endpoints, schema, description
Example: curl "https://api.tigzig.com/mf/v1/"
### GET /download
Download full NAV dataset
Params:
  - `format` (query): File format: csv.gz, csv.zip, tsv.gz, tsv.zip, parquet, sqlite.gz (alias: sqlite), sqlite.zip
Example: curl "https://api.tigzig.com/mf/v1/download?format=parquet"
### GET /downloads/manifest
Download file sizes and metadata
Example: curl "https://api.tigzig.com/mf/v1/downloads/manifest"
### GET /nav
NAV data for a single scheme
Params:
  - `scheme` (query, required): AMFI scheme code (e.g., 119775)
  - `since` (query): Date filter YYYY-MM-DD. Returns NAV from this date onward.
Example: curl "https://api.tigzig.com/mf/v1/nav?scheme=118955"
### GET /search
Search schemes by name or code
Params:
  - `q` (query, required): Search query: scheme name (partial match) or scheme code (exact or prefix)
  - `limit` (query): Max results to return
Example: curl "https://api.tigzig.com/mf/v1/search?q=hdfc"
