<!-- Agent Datasets docs · funds_get_holdings · canonical: https://www.agentdatasets.com/docs/tools/funds_get_holdings · rendered from https://www.agentdatasets.com -->

# funds_get_holdings

Fetch one fund's bounded, accession-pinned SEC N-PORT positions.

| Field | Value |
| --- | --- |
| Category | Funds (`funds`) |
| Exposure | public |
| MCP tool | `funds_get_holdings` |
| Documentation | https://www.agentdatasets.com/docs/tools/funds_get_holdings |

## Description

Fetch one fund's bounded, accession-pinned SEC N-PORT positions.

`data.holdings` is ordered by portfolio percentage descending with
null percentages last, then source row order. Rows include issuer,
title/ticker, balance/units/currency, USD value and percentage,
security categories, country, restriction flag, and fair-value level.
CUSIP and ISIN identifiers are not available on either served surface.

`meta` identifies the series/registrant and selected NPORT-P or
NPORT-P/A filing, including accession, filing/report dates, total
holdings count, and SEC primary-document URL. `pagination` uses a
50-row default and 200-row maximum. Pass `next_cursor` back until
`has_more` is false.

Errors are `bad_parameter` for malformed inputs/cursors,
`unknown_entity` for a well-formed fund absent from the registry, and
`out_of_coverage` when no N-PORT filing or requested period is ingested.

Example: `funds_get_holdings(fund="VFIAX", report_period="2026-03-31",
limit=50)`.

## Parameters

Input schema advertised to MCP clients and mirrored by the REST query string.

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| fund | input | `string` | yes | — | min length 1 | Exact SEC series id (S plus 9 digits, case-insensitive) or fund class ticker. Use funds_search_funds first to resolve a name. |
| report_period | input | `string \| null` | no | null | — | Exact N-PORT period of report in YYYY-MM-DD form. Omit for the latest available report period; the latest amendment for that period wins. |
| limit | input | `integer` | no | 50 | min 1, max 200 | Holdings rows per page (1–200). |
| cursor | input | `string \| null` | no | null | — | Opaque pagination.next_cursor from the previous response. It pins that response's accession even if a newer filing is later ingested; keep fund constant while paging. |

## Provenance

- `sec-edgar-archives` — U.S. Securities and Exchange Commission (EDGAR), Section text extracted from 10-K/10-Q primary documents on sec.gov Archives (canonical Items with accession-number and source-URL lineage); full document HTML is never stored (U.S. Government work, public domain (17 U.S.C. § 105)). See https://www.agentdatasets.com/docs/attribution.md
- `sec_company_tickers` — U.S. Securities and Exchange Commission (EDGAR), Company-ticker-CIK mapping with listing exchange (`company_tickers.json`, `company_tickers_exchange.json`) (U.S. Government work, public domain (17 U.S.C. § 105)). See https://www.agentdatasets.com/docs/attribution.md

Dataset registry: `funds_nport_holdings`.
