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

Sector and industry weights of a filing's holdings

Sums one published N-PORT filing's positions by sector and by industry: weight in percentage points of net assets, US dollar value and position count, plus the unclassified share.

10 tokensSince 3.173.0

Why use this

A fund's sector exposure for the month in one call: how much of an S&P 500 fund sits in Technology, which industries lead, and how much of the portfolio has no classification.

Common use case

Comparing two equity ETFs' sector mixes for the same month, charting a fund's sector weights, or checking how concentrated a sector fund is in its largest industry.

Computed on read from the filing's published positions; nothing is stored. Each position's ticker is the one GET /api/v1/nport/{accession}/holdings serves: the reported ticker, else the existing valid security mapping for that exact CUSIP. The ticker's sector and industry come from the platform's security reference list through its existing per-ticker lookup, the one the Portfolio sector allocation uses. A ticker whose reference rows disagree is not classified, so nothing is guessed.

weight_pct sums the positions' pct_val exactly as filed, in percentage points of net assets, and value_usd sums val_usd. The sector weights plus the unclassified weight equal the filing's own pct_val total, which can differ from 100 when a fund reports cash, derivatives or liabilities. Industries cover positions that have both a sector and an industry.

unclassified holds positions with no ticker (for example a position filed without a CUSIP, or a cash fund), a ticker absent from the reference list, a ticker with conflicting reference rows, or no sector. The reference list classifies operating companies, so a bond fund is mostly unclassified; its holdings carry asset_cat on GET /api/v1/nport/{accession}/holdings. The sample is iShares Core S&P 500 ETF's filing 0002071691-26-019760 for 2026-06-30 (three of its 11 sectors and 111 industries shown).

Parameters

NameInRequiredDefaultAllowedDescriptionExample
accessionpathrequired——SEC accession number of a PUBLISHED filing (superseded or quarantined filings return 404 with the state in error.details). The accession for a fund and month comes from GET /api/v1/nport/by-ticker/{ticker}.0002071691-26-019760

Response schema

FieldTypeNullableDescription
statusstringno—
request_idstringyesOptional; omitted when not applicable.
timestampstringnoOptional; omitted when not applicable.
dataobjectno—
data.accession_numberstringnoEchoed accession number.
data.as_ofstringyesThe filing's reporting date.
data.positionsintegernoNumber of position rows in the filing.
data.sectorsarraynoOne row per sector, largest weight first.
data.sectors[].sectorstringno—
data.sectors[].weight_pctnumbernoSum of the group's pct_val as filed, in percentage points of the fund's net assets (37.71 means 37.71%).
data.sectors[].value_usdnumbernoSum of the group's val_usd as filed, in US dollars.
data.sectors[].positionsintegernoNumber of position rows in the group.
data.industriesarraynoOne row per sector and industry pair, largest weight first. Positions with a sector but no industry count in sectors only.
data.industries[].sectorstringno—
data.industries[].industrystringno—
data.industries[].weight_pctnumbernoSum of the group's pct_val as filed, in percentage points of the fund's net assets (37.71 means 37.71%).
data.industries[].value_usdnumbernoSum of the group's val_usd as filed, in US dollars.
data.industries[].positionsintegernoNumber of position rows in the group.
data.unclassifiedobjectnoPositions with no ticker, a ticker absent from the reference list, a ticker whose reference rows disagree, or no sector.
data.unclassified.weight_pctnumbernoSum of the group's pct_val as filed, in percentage points of the fund's net assets (37.71 means 37.71%).
data.unclassified.value_usdnumbernoSum of the group's val_usd as filed, in US dollars.
data.unclassified.positionsintegernoNumber of position rows in the group.

Sample response

·
  • "status": "success"
  • "request_id": "nport-sectors-example"
  • "timestamp": "2026-10-19T00:00:00Z"
  • "data":
    • "accession_number": "0002071691-26-019760"
    • "as_of": "2026-06-30"
    • "positions": 508
    • "sectors":
    • "industries":
    • "unclassified":
    }
}

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/0002071691-26-019760/sectors" \
  -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).