Skip to content
/api/v1/nport/holders-of/ticker/{ticker}

Funds holding a security, by ticker

Resolve a security ticker such as NVDA to one CUSIP and return its N-PORT fund holders, using the same results and pagination as the CUSIP holder endpoint.

10 tokensoffset paginationSince 3.162.0

Why use this

Find which mutual funds and ETFs reported a position in a security, its quantity, dollar value, portfolio weight and reporting date without a separate CUSIP lookup.

Common use case

GET /api/v1/nport/holders-of/ticker/NVDA?period=2026-06-30 lists funds reporting NVIDIA positions for that month. GET /api/v1/nport/by-ticker/IVV continues to list IVV's own filings.

This is the security-to-funds direction: NVDA resolves through the existing ticker normalizer and valid US security mappings, then the same CUSIP holder query runs. The existing /by-ticker/{ticker} endpoint remains the fund-to-filings direction. Neither existing address is replaced.

Successful results have the same fund identities, positions, sorting, period filter and limit/offset pagination as /holders-of/{cusip}. meta.resolution adds the requested ticker, normalized ticker and resolved CUSIP. A known security with no matching holdings returns an empty data array. Multiple valid mappings return 409 AMBIGUOUS_TICKER with candidate CUSIPs instead of silently choosing a security. No historical CUSIP-chain expansion or share-class merging is performed.

Default results show each fund's latest published month containing the CUSIP (a trust that received its series id partway through is one fund and appears once); they are reported holdings, not proof of ownership today. Check as_of on each row, or supply period for a common reporting date. Values and weights remain as filed. The sample position is IVV's NVIDIA holding from SEC accession 0002071691-26-019760 for 2026-06-30.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
tickerpathrequired——US security ticker. Uses the shared case and alias normalization (for example brk.a to BRK-A) and valid US mappings. Distinct share classes stay separate. Unknown ticker: 404 UNKNOWN_TICKER; multiple mappings: 409 AMBIGUOUS_TICKER with candidate CUSIPs.NVDA
periodqueryoptional——Pin one reporting date (YYYY-MM-DD). Omit for each fund's latest published month containing the resolved CUSIP; reporting dates can differ.2026-06-30
limitqueryoptional100—Rows per page (1-500), identical to the CUSIP holder route.10
offsetqueryoptional0—Pagination offset.0

Response schema

FieldTypeNullableDescription
statusstringno—
request_idstringyes—
timestampstringno—
dataarraynoOne row per fund key, ordered by position USD value descending.
data[].series_idstringyesSEC fund series; null for whole-trust filings keyed by registrant.
data[].series_namestringyesFund name as filed.
data[].reg_cikstringnoRegistrant CIK, zero-padded to ten characters.
data[].reg_namestringyesRegistrant name as filed.
data[].as_ofstringyesReporting date of this position. Default results can contain different dates.
data[].accession_numberstringnoSource SEC filing accession.
data[].holdingobjectno—
data[].holding.namestringyes—
data[].holding.titlestringyes—
data[].holding.balancenumberyesPosition quantity in the filed units.
data[].holding.unitsstringyesFiled unit code, such as NS for shares.
data[].holding.val_usdnumberyesPosition value in US dollars, unchanged from the filing.
data[].holding.pct_valnumberyesAs-filed percentage of fund net assets; 7.50593247848 means 7.50593247848%. No rescaling.
data[].holding.asset_catstringyes—
data[].holding.derivative_catstringyes—
data[].fund_net_assetsnumberyesFund net assets in US dollars at the row's reporting date.
metaobjectno—
meta.cusipstringnoThe exact security CUSIP used by the holder query.
meta.periodstringnoRequested reporting date or latest_per_fund.
meta.paginationobjectno—
meta.pagination.totalintegeryesAlways null; no full-corpus count is performed.
meta.pagination.limitintegerno—
meta.pagination.offsetintegerno—
meta.pagination.has_morebooleannoTrue when another page is available.
meta.resolutionobjectnoThe existing US security lookup's ticker-to-CUSIP result.
meta.resolution.requested_tickerstringnoTicker exactly as received in the path.
meta.resolution.tickerstringnoTicker after the shared case and alias normalization.
meta.resolution.cusipstringnoThe single resolved security; also echoed in meta.cusip.

Sample response

·
  • "status": "success"
  • "request_id": "nport-ticker-holders-example"
  • "timestamp": "2026-09-27T00:00:00Z"
  • "data":
    ]
  • "meta":
    • "cusip": "67066G104"
    • "period": "2026-06-30"
    • "pagination":
    • "resolution":
    }
}

Errors

StatusLabelDescription
200Resolved security; data may be empty when no published holdings match.
400INVALID_PARAM: empty ticker or invalid period format.
401Authentication required.
402Insufficient token balance.
404UNKNOWN_TICKER: no valid US security mapping.
409AMBIGUOUS_TICKER: multiple valid mappings. Select a returned CUSIP and use /api/v1/nport/holders-of/{cusip}.

Code samples

curl "https://api.finradar.ai/api/v1/nport/holders-of/ticker/NVDA?period=2026-06-30&limit=10&offset=0" \
  -H "X-API-Key: YOUR_API_KEY"

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