Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Query Indian mutual fund NAV data, scheme info, and history via the free MFapi.in REST API.
Query Indian mutual fund NAV data, scheme info, and history via the free MFapi.in REST API.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Query Indian mutual fund data β NAV history, scheme info, search β using the free MFapi.in API.
No authentication or API keys required. The API is completely free and open. Ensure curl and jq are installed: # Debian/Ubuntu sudo apt install -y curl jq # macOS brew install curl jq
ISIN (International Securities Identification Number) is a 12-character alphanumeric code that uniquely identifies a security globally (e.g. INF200K01UT4). Indian mutual fund schemes have up to two ISINs: isinGrowth β identifies the Growth option of the scheme isinDivReinvestment β identifies the IDCW (Dividend) Reinvestment option (may be null) ISIN codes are printed on CAS (Consolidated Account Statements), broker/demat platforms, and AMFI's website. They are stable identifiers β unlike scheme names, they don't change when a fund house rebrands.
https://api.mfapi.in Data is updated 6Γ daily (10:05 AM, 2:05 PM, 6:05 PM, 9:05 PM, 3:09 AM, 5:05 AM IST).
curl -s "https://api.mfapi.in/mf/search?q=HDFC" | jq '.[] | {schemeCode, schemeName}'
curl -s "https://api.mfapi.in/mf?limit=100&offset=0" | jq '.[] | {schemeCode, schemeName}'
curl -s "https://api.mfapi.in/mf/125497/latest" | jq '{scheme: .meta.scheme_name, nav: .data[0].nav, date: .data[0].date}'
curl -s "https://api.mfapi.in/mf/125497" | jq '{scheme: .meta.scheme_name, records: (.data | length)}'
curl -s "https://api.mfapi.in/mf/125497?startDate=2023-01-01&endDate=2023-12-31" | jq '.data'
curl -s "https://api.mfapi.in/mf/latest" | jq '.[:5]'
{ "meta": { "fund_house": "HDFC Mutual Fund", "scheme_type": "Open Ended Schemes", "scheme_category": "Equity Scheme - Large Cap Fund", "scheme_code": 125497, "scheme_name": "HDFC Top 100 Fund - Direct Plan - Growth", "isin_growth": "INF179K01BB2", "isin_div_reinvestment": null }, "data": [ { "date": "26-10-2024", "nav": "892.45600" } ], "status": "SUCCESS" }
[ { "schemeCode": 125497, "schemeName": "HDFC Top 100 Fund - Direct Plan - Growth" } ]
[ { "schemeCode": 125497, "schemeName": "HDFC Top 100 Fund - Direct Plan - Growth", "isinGrowth": "INF179K01BB2", "isinDivReinvestment": "INF179K01BC0" } ]
MethodEndpointDescriptionParametersGET/mf/searchSearch schemes by nameq (required)GET/mfList all schemes (paginated)limit (1β1000), offset (default 0)GET/mf/{scheme_code}NAV history for a schemestartDate, endDate (ISO 8601)GET/mf/{scheme_code}/latestLatest NAV for a schemeβGET/mf/latestLatest NAV for all schemesβ
The API doesn't support querying by ISIN directly. The scripts/get_nav.py script resolves ISIN β scheme code using a locally cached scheme list, then fetches the latest NAV.
Cache β Downloads the full scheme list (/mf, ~37k schemes) to /tmp/mfapi-schemes.json. Refreshes automatically if the cache is missing or older than 24 hours. Lookup β Searches isinGrowth and isinDivReinvestment fields in the cache. If no match, refreshes the cache and retries. Fetch β Uses the resolved scheme code to call /mf/{scheme_code}/latest.
# Single ISIN python3 scripts/get_nav.py INF200K01UT4 # Multiple ISINs python3 scripts/get_nav.py INF200K01UT4 INF846K01DP8
{ "isin": "INF200K01UT4", "scheme_code": 119800, "scheme_name": "SBI Liquid Fund - DIRECT PLAN -Growth", "fund_house": "SBI Mutual Fund", "category": "Debt Scheme - Liquid Fund", "nav": "4277.67540", "date": "18-02-2026" } When multiple ISINs are passed, the output is a JSON array.
Dates in responses use DD-MM-YYYY format; query params use ISO 8601 (YYYY-MM-DD) NAV values are strings with 5-decimal precision Scheme codes can be found via the search or list endpoints, or from AMFI's website The /mf endpoint returns all ~37,000 schemes; the Python script caches it locally at /tmp/mfapi-schemes.json to avoid repeated large fetches Cache auto-refreshes on ISIN lookup miss or after 24 hours No rate-limit headers are published, but the API asks for fair usage
# Find all SBI mutual fund schemes curl -s "https://api.mfapi.in/mf/search?q=SBI" | jq '.[].schemeName' # Get today's NAV for a known scheme curl -s "https://api.mfapi.in/mf/119551/latest" | jq '.data[0]' # Compare NAVs across a year curl -s "https://api.mfapi.in/mf/125497?startDate=2025-01-01&endDate=2025-12-31" \ | jq '[.data[0], .data[-1]] | {latest: .[0], oldest: .[1]}' # Get fund house and category for a scheme curl -s "https://api.mfapi.in/mf/125497/latest" | jq '.meta | {fund_house, scheme_category}' # List first 10 Direct Plan Growth schemes matching "Axis" curl -s "https://api.mfapi.in/mf/search?q=Axis" \ | jq '[.[] | select(.schemeName | test("Direct.*Growth"))] | .[:10]' # Get latest NAV by ISIN python3 scripts/get_nav.py INF200K01UT4
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.