funds tool
Publicfunds_get_holdings
Fetch one fund's bounded, accession-pinned SEC N-PORT positions.
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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| fund | string | Yes | — | 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 | 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 | integer | No | 50 | Holdings rows per page (1–200). |
| cursor | 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. |