---
title: "Returns Form N-MFP3 monthly money-market fund reports — one record per (fund series, month): fund category (Government / Prime / Single State…), net assets, shares outstanding, weighted average maturity (wam_days) and life (wal_days), the fund's DAILY daily/weekly liquid-asset percentages for the month (verbatim fractions of 1 — the money-market stress series), monthly gross subscriptions/redemptions ON N-MFP3 ONLY, and stable-NAV posture"
method: GET
path: "/v1/money-market-funds"
---

# Returns Form N-MFP3 monthly money-market fund reports — one record per (fund series, month): fund category (Government / Prime / Single State…), net assets, shares outstanding, weighted average maturity (wam_days) and life (wal_days), the fund's DAILY daily/weekly liquid-asset percentages for the month (verbatim fractions of 1 — the money-market stress series), monthly gross subscriptions/redemptions ON N-MFP3 ONLY, and stable-NAV posture

`GET /v1/money-market-funds`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/money-market-funds`
- Auth: API key in header `x-api-key`

Returns Form N-MFP3 monthly money-market fund reports — one record per (fund series, month): fund category (Government / Prime / Single State…), net assets, shares outstanding, weighted average maturity (wam_days) and life (wal_days), the fund's DAILY daily/weekly liquid-asset percentages for the month (verbatim fractions of 1 — the money-market stress series), monthly gross subscriptions/redemptions ON N-MFP3 ONLY, and stable-NAV posture.  ⚠ MONTHLY FLOWS ARE NOT ON EVERY RECORD. gross_subscriptions_month / gross_redemptions_month are filed per SHARE CLASS on N-MFP3 and are served as the sum across a filing's classes. N-MFP2 and N-MFP do not ask for monthly flows at all (N-MFP2 reports weekly), so those rows carry null — the source's silence, not ours. Read `flows_basis` to tell them apart: "monthly_sum_of_classes" or "not_filed_monthly". `form_type` says which form the record came from.  ⚠ A SUM COVERS ONLY THE CLASSES THAT REPORTED. flows_classes_reporting_subscriptions / _redemptions say how many did; compare each against total_share_classes, which is how many EXIST. The two counts are separate because a class can report one figure and omit the other. WHERE THOSE FIELDS ARE ABSENT, COVERAGE IS NOT RECORDED — that is NOT a statement that the sum is complete. Rows written before 2026-09-11 predate the fields and are not backfilled for them. Use this when the user asks about: money-market fund assets or flows, fund liquidity levels, WAM positioning as a rates signal, prime-vs- government fund dynamics, or a specific fund family's money funds.  The adviser_file_number (801-…) joins get_investment_advisers for the manager's full ADV profile; registrant cik joins other EDGAR datasets. Each fund files monthly — filter series_id + sort report_date asc to read one fund's history; filter by report_date (since/until) for a cross-fund month snapshot.  Coverage: 2010-11→present across all THREE form generations, with per-era cadence differences kept verbatim: N-MFP3 records (2024-06→) carry DAILY liquidity/shadow-NAV/yield series with real dates; N-MFP2 records (2016-10→2024-06) carry WEEKLY Friday points labeled with the source's own fridayWeek1..5 keys in the date field (the filing reports week numbers, not dates — never fabricated); original N-MFP records (2010-11→2016-10) carry single month-end shadow-NAV + yield points and NO liquidity percentages (that reporting began with the 2014 reforms). series_name is empty before 2024 (not in the older XML). The per-security portfolio schedule and per-class yields live in the filing XML — follow source_url (v1.1 scope).  Pure-publisher posture: the fund's reported numbers as filed, parsed by KeyVex — no derived stress scores; liquidity thresholds are for agents to apply.

## Query parameters

- `accession_number` string
- `cik` string
- `series_id` string
- `fund_name` string
- `fund_category` string
- `is_retail_fund` boolean
- `since` string
- `until` string
- `sort_by` 'report_date' | 'net_assets'
- `sort_order` 'asc' | 'desc'
- `limit` integer

## Response `200`

JSON envelope: { results: [...], count, has_more }.

## Other responses

- `400`: Invalid parameter.
- `401`: Missing or invalid API key.
- `402`: This tool requires a higher plan (upgrade_required). Retrying will not help.
- `429`: Tier rate/quota limit reached (rate_limited). Retry-After points at the reset.

---

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