SEC filings & market structure
Fund Holdings
Returns per-security holdings from SEC Form N-PORT primary documents, one row per investment-or-security line in a mutual fund / ETF / closed-end fund's monthly portfolio report. Use this when the user asks about: which funds hold a specific stock or bond, a fund's complete portfolio composition, fund-level derivative exposure (swaps, options, futures), rep.
Endpoint
GET /v1/fund-holdingsSourceSEC N-PORT primary-document XML
Authx-api-key, paid plans only (Basic and up)
Live from the data
Loading the latest numbers…
What it returns
One record per result. Fields (from a live response):
- Identity:
title,issuer_cat,filer_name,filer_cik,name - Subject:
country,cusip,ticker,asset_cat - Dates:
period_ending,scraped_at - Amounts:
balance,value_usd - Provenance:
filing_id - Details:
payoff_profile,derivative_type,is_restricted,is_derivative,units,lei,sec_file_number,currency,filing_type,id,is_amendment,holding_index,pct_of_portfolio,is_non_cash_collateral,is_loaned,fair_val_level,isin
Filters
| filing_id | EDGAR accession number, returns all holdings from one specific N-PORT filing (one fund-month). |
| filer_cik | Fund trust CIK (10-digit, padded with leading zeros). Returns the trust's holdings across all reporting months. |
| filer_name | Case-insensitive substring against fund trust name (e.g., 'iShares', 'Vanguard', 'SPDR'). |
| period_ending | Reporting month-end (YYYY-MM-DD). Restricts results to one reporting period. |
| name | Case-insensitive substring against the holding issuer name (e.g., 'Apple', 'Treasury', 'Goldman Sachs'). |
| cusip | Exact 9-character CUSIP. Most reliable identifier for equity and debt holdings in N-PORT. |
| ticker | Exact ticker symbol if filer included it in the identifiers block (less common than CUSIP). |
| isin | Exact ISIN if filer included it in the identifiers block. |
| asset_cat | SEC's asset-category code, case-insensitive. The data holds exactly these: EC common equity; EP preferred equity; DBT debt, Treasuries included; LON… |
| is_derivative | True returns only derivative rows (asset_cat starting with 'D'). False returns only non-derivative rows. Omit for both. |
| derivative_type | Structural derivative type, derived from which `<derivativeInfo>` child element is present in the filing. |
| country | ISO-2 country code of the holding (e.g., 'US', 'GB', 'JP'). |
| payoff_profile | Filter to long or short positions per N-PORT payoffProfile field. |
| min_value_usd | Minimum fair value in USD. Use to focus on large positions only. |
| min_pct_of_portfolio | Minimum percentage of fund net assets (0-100 scale). Use to focus on concentrated positions. |
| min_notional | Minimum derivative notional amount in the contract's currency. This is exposure, not fair value: use min_notional to ask how big the bet is and min_value_usd to ask what the position is worth today. Rows with no notional (options, for example) are excluded by any positive floor. |
| counterparty | Case-insensitive substring against the derivative counterparty (the dealer or clearing house on the other side), e.g. 'Morgan Stanley' across funds. The source writes 'N/A' where no counterparty is disclosed, and that value is kept. |
| expiration_since | ISO date (YYYY-MM-DD). Only derivatives expiring on or after this date, across futures, options, swaps and forwards. Rows whose value is not a real date are excluded from the window. |
| expiration_until | ISO date (YYYY-MM-DD). Only derivatives expiring on or before this date. Pair with expiration_since for a rollover window. |
| maturity_since | ISO date (YYYY-MM-DD). Only debt holdings maturing on or after this date. Pair with maturity_until to build a maturity ladder. |
| maturity_until | ISO date (YYYY-MM-DD). Only debt holdings maturing on or before this date. |
| since | ISO date (YYYY-MM-DD). Only holdings whose period_ending >= this date. |
| until | ISO date (YYYY-MM-DD). Only holdings whose period_ending <= this date. |
| sort_by | Default: value_usd. |
| sort_order | Default: desc (largest / most recent first). |
| limit | Maximum records to return. Default 50, max 500. |
Example request
curl "https://api.keyvex.com/v1/fund-holdings?ticker=AAPL&limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"country": "US",
"cusip": "67066G104",
"payoff_profile": "Long",
"derivative_type": null,
"is_restricted": false,
"filing_id": "0000036405-26-000323",
"is_derivative": false,
"units": "NS",
"title": "NVIDIA CORP",
"lei": "549300S4KLFTLO7GSQ80",
"balance": 733080870,
"sec_file_number": "811-02652",
"value_usd": 127849303728,
"currency": "USD",
"filing_type": "NPORT-P",
"issuer_cat": "CORP",
"id": "0000036405-26-000323-2938",
"is_amendment": false,
"ticker": null,
"filer_name": "VANGUARD INDEX FUNDS",
"asset_cat": "EC",
"period_ending": "2026-03-31",
"holding_index": 2938,
"filer_cik": "0000036405",
"pct_of_portfolio": 6.419132792125,
"is_non_cash_collateral": false,
"scraped_at": "2026-06-11T19:49:01.690Z",
"name": "NVIDIA Corp",
"is_loaned": false,
"fair_val_level": 1,
"isin": "US67066G1040"
}
],
"count": 1,
"has_more": true
}
Example questions you can answer
- Every security a given fund holds, with weights.
- Which funds hold a specific bond or derivative?
Related datasets
Query Fund Holdings from your AI
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Paid plans only (Basic and up): a free key does not include this dataset.
See plans OpenAPI spec → REST docs →Not investment advice. KeyVex is a data publisher: nothing on this site or in API responses is investment, legal, tax, or compliance advice (Terms §8).