Skip to content
/api/v1/nport/{accession}/holdings

The filing's complete portfolio holdings table

Every Part C position row of one N-PORT filing — identifiers, balance, USD value, % of net assets, category flags, debt terms, and the full derivative/repo/securities-lending blocks — paginated, largest position first.

10 tokensoffset paginationSince 3.139.0

Why use this

The fund's entire disclosed portfolio for the month: equities, bonds, repos, and all seven derivative categories. Filter by cusip/isin to find one position, by asset_cat/derivative_cat to slice an asset class, or by min_pct to keep only meaningful positions.

Common use case

Rebuilding an ETF's monthly portfolio, extracting a bond fund's per-issue debt terms (coupon, maturity, default flag), or pulling every swap a fund holds via derivative_cat=SWP.

The position table of one filing — the complete monthly portfolio the fund disclosed, from a few dozen rows for a focused fund to several thousand for a total-market index fund. Rows are served largest-position-first (val_usd DESC), and meta.pagination.total is exact, so a client can size the book before paging.

Unit correctness is on the row: balance means shares only when units is NS — PA rows are principal (face) amounts and NC rows are contract counts. pct_val is the as-filed decimal fraction of net assets (0.052419 = 5.2419%); the API never rescales it.

Derivatives: the form defines seven categories (forward, future, option, swap, swaption, warrant, other), and each derivative row carries its category code plus the COMPLETE as-filed block in derivative_info — counterparties, notionals, terms, and the reference-instrument tree, including the nested-derivative case (a swaption's underlying swap, an option on a future), preserved recursively exactly as filed. Repos and securities-lending rows carry their own blocks the same way. Structured blocks keep RAW STRING values (the form's "N/A", Y/N, and title-case enums are never coerced inside a block); typed scalar columns are numeric, with any literal "N/A" preserved in lexical_overrides.

For which FUNDS hold a given security (the reverse direction), use GET /api/v1/nport/holders-of/{cusip}.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
accessionpathrequiredSEC accession number of a PUBLISHED filing (superseded/quarantined return 404 with the state in error.details).0001752724-26-002544
cusipqueryoptionalExact 9-character CUSIP filter.037833100
isinqueryoptionalExact ISIN filter.US0378331005
asset_catqueryoptionalForm asset category code as filed (e.g. EC equity-common, DBT debt, STIV short-term investment vehicle, RA repurchase agreement, DE derivative).EC
derivative_catqueryoptionalDerivative category code as filed (FWD forward, FUT future, OPT option, SWP swap, SWO swaption, WAR warrant, OTH other). Rows without a derivative carry null and are excluded by this filter.SWP
min_pctqueryoptionalKeep rows with pct_val >= this value. pct_val is the AS-FILED decimal fraction of net assets (0.052419 = 5.2419%) — never multiplied by 100.0.01
limitqueryoptional100Rows per page (1-500).100
offsetqueryoptional0Pagination offset.0

Response schema

FieldTypeNullableDescription
data[]arraynoPosition rows ordered by val_usd DESC (largest first), then filing sequence. One row per reported investment.
data[].namestringyesIssuer name as filed. The form's "N/A" convention is preserved verbatim where the filer used it.
data[].leistringyesIssuer LEI as filed.
data[].titlestringyesTitle of the issue as filed.
data[].cusipstringyes9-char CUSIP. Null when the filer reported none (foreign instruments carry ISIN or an 'other' identifier in identifiers instead).
data[].isinstringyesISIN from the identifiers block, lifted for direct filtering.
data[].tickerstringyesTicker from the identifiers block, when the filer reported one.
data[].identifiersobjectyesThe full as-filed identifiers block (ISIN/ticker/other with their attribute values), raw strings.
data[].balancenumberyesQuantity held, in the unit named by units: NS = number of shares, PA = principal amount, NC = number of contracts, OU = other units (desc_oth_units names it). As filed, full precision.
data[].unitsstringyesUnit code for balance (NS/PA/NC/OU). Critical for unit-correctness — a PA row is face value, not shares.
data[].cur_cdstringyesISO-4217 currency of the investment when not USD; currency_conditional carries the conditional block (currency + exchange rate) for other-currency cases.
data[].exchange_rtnumberyesExchange rate to USD as filed, for non-USD positions.
data[].val_usdnumberyesPosition value in USD as filed (fair value per the form's instructions), full precision. The sort key.
data[].pct_valnumberyesPercentage of the fund's net assets, AS FILED: a decimal fraction at up to 12 decimals (0.052419 = 5.2419%). Never scaled by the API.
data[].payoff_profilestringyesLong / Short / N/A, title-case exactly as the form defines.
data[].asset_catstringyesAsset category code as filed; asset_conditional carries the 'other' description block when the filer chose a write-in category.
data[].issuer_catstringyesIssuer type code as filed; issuer_conditional carries the write-in block.
data[].inv_countrystringyesInvestment country code as filed (inv_oth_country carries the write-in).
data[].is_restricted_secbooleanyesRestricted-security flag as filed.
data[].fair_value_levelstringyesASC 820 fair-value hierarchy level as filed: 1, 2, or 3.
data[].debt_maturity_dtstringyesDebt maturity date. The form's perpetual-bond sentinel 2500-12-31 is served exactly as filed.
data[].debt_coupon_kindstringyesCoupon type as filed (Fixed / Floating / Variable / None — title-case per the form's enums).
data[].debt_annualized_rtnumberyesAnnualized coupon rate as filed.
data[].debt_is_defaultbooleanyesIn-default flag as filed.
data[].debt_secobjectyesThe full as-filed debt-security block (convertible terms, reference instruments, etc.), raw strings.
data[].derivative_catstringyesOne of the seven form derivative categories (FWD/FUT/OPT/SWP/SWO/WAR/OTH) when the row is a derivative.
data[].derivative_infoobjectyesThe complete as-filed derivative block for the category — counterparties, notional, terms, and the reference-instrument tree (which may nest another derivative; nesting is preserved recursively, exactly as filed).
data[].repurchase_agrmtobjectyesAs-filed repurchase-agreement block (rate, maturity, collateral schedule).
data[].security_lendingobjectyesAs-filed securities-lending block (cash collateral, non-cash collateral, loaned value).
data[].lexical_overridesobjectyes{ column: verbatim } preservation of literal "N/A" entries in typed columns for this row.
meta.paginationobjectno{ total, limit, offset, has_more } — total is EXACT here (accession-scoped count over the applied filters).

Sample response

·
  • "status": "success"
  • "data":
    ]
  • "meta":
    • "accession_number": "0001752724-26-002544"
    • "pagination":
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/nport/0001752724-26-002544/holdings?api_Token=YOUR_API_KEY&cusip=037833100&isin=US0378331005&asset_cat=EC&derivative_cat=SWP&min_pct=0.01&limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).