---
title: "Returns SEC Form N-PORT filings — monthly portfolio reports from registered investment companies (mutual funds, ETFs, closed-end funds)"
method: GET
path: "/v1/nport-filings"
---

# Returns SEC Form N-PORT filings — monthly portfolio reports from registered investment companies (mutual funds, ETFs, closed-end funds)

`GET /v1/nport-filings`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/nport-filings`
- Auth: API key in header `x-api-key`

Returns SEC Form N-PORT filings — monthly portfolio reports from registered investment companies (mutual funds, ETFs, closed-end funds). Use this when the user asks about: recent fund portfolio filings, when a specific fund family last reported, monthly cadence of fund disclosures, or to bridge from a fund trust name to the primary_doc.xml that contains full per-holding portfolio detail.  Source: SEC EDGAR full-text search. Covers both NPORT-P (original filing) and NPORT-P/A (amendments). N-PORT is filed within 60 days of each month-end; period_ending tells you which month the report covers.  v1A returns metadata only: filer trust name + CIK, period_ending, filing type, SEC investment company file number (e.g., '811-21864'), filer state + state of incorporation, and the URL to the full primary_doc.xml. Per-holding portfolio detail (every security in the fund's portfolio with quantity, fair value, currency, etc.) lives in that XML — agents follow the URL when they need security-level data.  Pairs with get_institutional_holdings (13F): 13F is quarterly, filed by INVESTMENT MANAGERS (Berkshire, Vanguard, BlackRock); N-PORT is monthly, filed by the FUND TRUST. Together = fresher snapshots across two complementary universes (manager-level vs fund-level).

## Query parameters

- `filing_id` string
- `filer_cik` string
- `filer_name` string
- `period_ending` string
- `sec_file_number` string
- `is_amendment` boolean
- `since` string
- `until` string
- `sort_by` 'file_date' | 'period_ending'
- `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)
