SEC filings & market structure
Institutional Holdings (13F)
Returns 13F holdings — quarterly snapshots of equity positions held by institutional investment managers with $100M+ AUM, filed with the SEC. Each record is one (fund, security, quarter) tuple.
Endpoint
GET /v1/institutional-holdingsSourceSEC Form 13F
Authx-api-key — a free key works
What it returns
One record per result. Fields (from a live response):
- Identity —
issuer_name,fund_cik,position_change,fund_name - Subject —
cusip,ticker - Dates —
filing_date - The trade / event —
verification_status - Amounts —
market_value,shares_held,market_value_thousands,share_type,shares_change_pct,verification_value_expected,shares_change,verification_value_actual - Provenance —
filing_url,data_source,accession_number - Details —
investment_discretion,id,quarter,verification_expected,verification_actual
Filters
| ticker | Filter to holdings of one stock by US ticker, e.g. 'AAPL'. Case-insensitive. |
| cusip | Alternative to ticker — 9-character SEC CUSIP identifier. Useful when a security has multiple share classes with different tickers. |
| fund_name | Full or partial fund name; case-insensitive substring match. Examples: 'Berkshire', 'Bridgewater', 'Citadel'. |
| fund_cik | SEC CIK of the fund (10-digit, padded). Preferred over fund_name when known. Berkshire Hathaway = '0001067983'. |
| quarter | Period ending date in YYYY-MM-DD form (e.g. '2026-03-31'). Defaults to all quarters available in the database. |
| position_change | Filter to position-change type. Common queries: 'increased' for funds adding to a position, 'closed' for funds that exited. |
| min_value | Filter to positions with market_value >= this amount (USD). Use to focus on large positions. |
| sort_by | Field used for ordering. Default: market_value (largest positions first). |
| sort_order | Default: desc (largest first). |
| limit | Maximum records to return. Default 50, max 500. |
Example request
curl "https://api.keyvex.com/v1/institutional-holdings?ticker=AAPL&limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"cusip": "67066G104",
"market_value": 422736430797,
"ticker": "NVDA",
"shares_held": 2266683275,
"filing_url": "https://www.sec.gov/Archives/edgar/data/102909/000010290926000031/13F_0000102909_20251231.xml",
"filing_date": "2026-01-29",
"market_value_thousands": 422736431,
"data_source": "SEC_EDGAR_13F",
"issuer_name": "NVIDIA CORPORATION",
"accession_number": "0000102909-26-000031",
"investment_discretion": "DFND",
"share_type": "SH",
"fund_cik": "0000102909",
"shares_change_pct": null,
"id": "13f-0000102909-67066G104-2025-12-31",
"quarter": "2025-12-31",
"verification_expected": 17686,
"verification_value_expected": 6897676080637,
"shares_change": null,
"verification_status": "VERIFIED",
"verification_value_actual": 6897676080637,
"verification_actual": 17686,
"position_change": null,
"fund_name": "Vanguard Group"
}
],
"count": 1,
"has_more": true
}
Example questions you can answer
- Which funds hold the most of a given stock this quarter?
- Track an institution's position changes across quarters.
Related datasets
Query Institutional Holdings (13F) from your AI
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Free key = full data, 60 requests/day.
Get a free key OpenAPI spec → REST docs →