Registered funds and ETFs — directory, holdings, and operations — funds holding a given stock, and SEC-registered investment advisers. Fund holdings come from Form NPORT-P, operations from N-CEN, and adviser profiles from Form ADV.
/v1/stocks/
Swedish UCITS quarterly portfolio positions for the exact listed security's ISIN. This is not comprehensive European ownership and is not merged with SEC ownership.
Parameters: limit (1–100, default 20), offset (0–100000, default 0), and optional periodEnd (calendar quarter-end date, yyyy-MM-dd).
Without a period, the newest captured quarter is used; historical reads use that quarter's latest captured revision. Values named marketValueSek are SEK regardless of instrument currency. percentOfFundAssets is portfolio weight, not ownership percentage of the company. Fund identity is the FI institute identifier, not a share-class ISIN.
The response retains reporting/check dates, coverage, staleness, source-row identity, and total rows before pagination. Repeated source positions remain separate. An unresolved security, uncaptured quarter, or missing matching position is not a zero ownership assertion.
/v1/funds
Search the tracked registered fund / ETF directory by fund-name, registrant, identifier, or ticker words in any order. Exact identifiers and verified share-class aliases (VOO, VFIAX, VTI, VTSAX) win; otherwise all words are required before a sparse any-word fallback. totalMatches is the directory-wide match count before limit truncation. Each row's profileId resolves on the holdings and operations routes, including series whose NPORT-P directory row has no ticker. holdingCount is the number of stored rows; nullable reportedHoldingCount is the filing's full investment-row count before storage filtering. holdingsCoverage is fullPortfolio when stored and reported counts match, trackedEquitiesOnly when fewer rows are stored, or unknown when counts are missing or inconsistent (netAssets is always the fund's reported total).
Form NPORT-P covers registered management investment companies and ETFs organized as unit investment trusts. Money market funds and small business investment companies do not file it. Fixed-income-only trust series can also be absent because entry into this tracked directory requires a tracked-stock match; a directory miss is not evidence that a fund does not exist.
Parameters: query (required — fund name, registrant, profile id, series id, own ticker, or verified share-class alias, e.g. Vanguard, IWM, or VFIAX); limit (default 20, max 500).
curl "https://api.equibles.com/v1/funds?query=Vanguard&limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/funds",
params={"query": "Vanguard", "limit": 2},
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/funds?query=Vanguard&limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"totalMatches": 120,
"data": [
{ "seriesName": "VANGUARD TOTAL STOCK MARKET INDEX FUND", "registrantName": "VANGUARD INDEX FUNDS", "profileId": "vanguard-total-stock-market-index-fund-s000002848", "ticker": null, "fundType": null, "netAssets": 1991691212321.29, "holdingCount": 3405, "reportedHoldingCount": 3524, "holdingsCoverage": "trackedEquitiesOnly", "latestReportPeriodDate": "2026-03-31" },
{ "seriesName": "VANGUARD 500 INDEX FUND", "registrantName": "VANGUARD INDEX FUNDS", "profileId": "vanguard-500-index-fund-s000002839", "ticker": null, "fundType": null, "netAssets": 1421263311402.89, "holdingCount": 498, "reportedHoldingCount": 519, "holdingsCoverage": "trackedEquitiesOnly", "latestReportPeriodDate": "2026-03-31" }
]
}
/v1/funds/
The portfolio holdings of a fund or ETF from its most recent NPORT-P — each position's issuer, CUSIP, balance, USD value, and share of net assets. {ticker} accepts the same exact profile id, SEC series id, stored series ticker, or verified share-class alias as directory search (for example QQQ, S000004344, VOO, or vanguard-500-index-fund-s000002839). The most recent report is the one with the greatest report period, so a late-filed amendment of an older quarter never shadows the newest one.
totalHoldings counts stored rows. Nullable reportedHoldingCount is the filing's full investment-row count before the platform's storage filter. holdingsCoverage is fullPortfolio when stored and reported counts match, trackedEquitiesOnly when fewer rows are stored, or unknown when counts are missing or inconsistent. The directory selects the report; its date, assets, counts and holdings page are read together, including an empty page beyond the last holding. A missing selected report returns 404.
Parameters: {ticker} (path — a fund ticker, profile id, SEC series id, or verified share-class alias); limit (default 20, max 500); offset.
curl "https://api.equibles.com/v1/funds/QQQ/holdings?limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/funds/QQQ/holdings?limit=2",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/funds/QQQ/holdings?limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"seriesName": "Invesco QQQ Trust, Series 1",
"ticker": "QQQ",
"reportPeriodDate": "2026-03-31",
"netAssets": 372507306132.08,
"totalHoldings": 102,
"reportedHoldingCount": 102,
"holdingsCoverage": "fullPortfolio",
"data": [
{ "name": "NVIDIA Corp.", "cusip": "67066G104", "balance": 185426246.0, "units": "NS", "valueUsd": 32338337302.4, "percentOfNetAssets": 8.681262560507, "assetCategory": "EC", "country": "US" },
{ "name": "Apple Inc.", "cusip": "037833100", "balance": 112027518.0, "units": "NS", "valueUsd": 28431463793.22, "percentOfNetAssets": 7.63245802839, "assetCategory": "EC", "country": "US" }
],
"meta": { "limit": 2, "offset": 0, "count": 2, "hasMore": true, "total": 102 }
}
/v1/funds/
A fund's N-CEN operational filings — the filing date, report period, company type, and its service providers (underwriter, auditor, custodian, and more), newest first. The route accepts the same exact profile id, SEC series id, stored series ticker, or verified share-class alias as directory search.
Form N-CEN is filed at registrant level, while this dataset currently imports it through tracked issuer feeds. Every response therefore carries coverage: "registrantLevelTrackedIssuerFeed" and a coverageNote; an empty data array is a coverage result, not evidence that the fund has no N-CEN filing.
Parameters: {ticker} (path — a fund ticker, profile id, SEC series id, or verified share-class alias); limit (default 10, max 500).
curl "https://api.equibles.com/v1/funds/QQQ/operations?limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/funds/QQQ/operations?limit=2",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/funds/QQQ/operations?limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"coverage": "registrantLevelTrackedIssuerFeed",
"coverageNote": "Form N-CEN is filed at registrant level and this dataset currently imports it through tracked issuer feeds. The returned rows are the stored reports for Invesco QQQ Trust, Series 1.",
"data": [
{
"filedDate": "2026-03-03",
"reportPeriodEnd": "2025-12-19",
"investmentCompanyType": "N-1A",
"investmentCompanyFileNumber": "811-08947",
"isAmendment": false,
"isFirstFiling": false,
"isLastFiling": false,
"serviceProviders": [
{ "role": "Principal Underwriter", "name": "Invesco Distributors, Inc.", "country": null, "isAffiliated": true },
{ "role": "Independent Public Accountant", "name": "PricewaterhouseCoopers LLP", "country": "US", "isAffiliated": false }
]
}
]
}
/v1/stocks/
The registered funds and ETFs that hold a given stock, from each series' most recent NPORT-P — each fund's series, position size, USD value, and share of its net assets. Series that stopped filing more than 18 months ago (liquidated or merged funds) are excluded from both the rows and totalPositions. Each fund files on its own fiscal quarter, so values are as of each row's reportPeriodDate.
Parameters: {ticker} (path); optional registrantOrSeries (case-insensitive substring of the registrant or fund-series name, e.g. Vanguard); limit (default 20, max 500); offset (default 0). Filtering happens before meta.total and value-ranked paging.
curl "https://api.equibles.com/v1/stocks/NVDA/fund-owners?limit=2" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/stocks/NVDA/fund-owners?limit=2",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/stocks/NVDA/fund-owners?limit=2", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"totalPositions": 2257,
"data": [
{ "registrantName": "VANGUARD INDEX FUNDS", "seriesName": "VANGUARD TOTAL STOCK MARKET INDEX FUND", "reportPeriodDate": "2026-03-31", "balance": 733080870.0, "units": "NS", "valueUsd": 127849303728.0, "percentOfNetAssets": 6.419132792125, "payoffProfile": "Long" },
{ "registrantName": "VANGUARD INDEX FUNDS", "seriesName": "VANGUARD 500 INDEX FUND", "reportPeriodDate": "2026-03-31", "balance": 617520783.0, "units": "NS", "valueUsd": 107695624555.2, "percentOfNetAssets": 7.57745758236, "payoffProfile": "Long" }
],
"meta": { "limit": 2, "offset": 0, "count": 2, "hasMore": true, "total": 2257 }
}
/v1/investment-advisers
Search SEC-registered investment advisers (Form ADV) by name — both the legal name and the "doing business as" name match — returning the Org CRD you pass to the profile endpoint, plus city, regulatory AUM, and employee count. asOfDate is the Form ADV bulk-extract snapshot each row was read from — the figures come from the adviser's most recent filing, which can be older. totalMatches is the registry-wide match count before limit truncation.
Parameters: query (required — e.g. BlackRock); limit (default 20, max 500).
curl "https://api.equibles.com/v1/investment-advisers?query=BlackRock" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/investment-advisers",
params={"query": "BlackRock"},
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/investment-advisers?query=BlackRock", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"totalMatches": 13,
"data": [
{ "crd": 105247, "legalName": "BLACKROCK FUND ADVISORS", "primaryBusinessName": "BLACKROCK FUND ADVISORS", "city": "SAN FRANCISCO", "state": "CA", "country": "United States", "totalRegulatoryAum": 4282224366957, "numberOfEmployees": 128, "asOfDate": "2026-05-01" },
{ "crd": 107105, "legalName": "BLACKROCK FINANCIAL MANAGEMENT, INC", "primaryBusinessName": "BLACKROCK FINANCIAL MANAGEMENT, INC", "city": "NEW YORK", "state": "NY", "country": "United States", "totalRegulatoryAum": 1595099828916, "numberOfEmployees": 7987, "asOfDate": "2026-05-01" }
]
}
/v1/investment-advisers/
A full Form ADV profile for one adviser by Org CRD — identity, SEC number and status, regulatory and discretionary AUM, employee count, and fee structure. asOfDate is the date of the SEC's monthly Form ADV bulk extract the record was imported from (the underlying figures may be older), and website passes through exactly as filed on Form ADV Item 1.I — it may be a social-media URL in the SEC's all-caps form.
Parameters: {crd} (path — from /v1/investment-advisers).
curl "https://api.equibles.com/v1/investment-advisers/105247" \
-H "Authorization: Bearer eq_your_api_key"import requests
r = requests.get(
"https://api.equibles.com/v1/investment-advisers/105247",
headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())const res = await fetch("https://api.equibles.com/v1/investment-advisers/105247", {
headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());{
"crd": 105247,
"secNumber": "801-22609",
"legalName": "BLACKROCK FUND ADVISORS",
"primaryBusinessName": "BLACKROCK FUND ADVISORS",
"city": "SAN FRANCISCO",
"state": "CA",
"country": "United States",
"website": "https://www.youtube.com/channel/UCrIXkHfv2tMzebAI1TcdDhg",
"secStatus": "Approved",
"numberOfEmployees": 128,
"totalRegulatoryAum": 4282224366957,
"discretionaryAum": 4282224366957,
"nonDiscretionaryAum": 0,
"chargesPercentageOfAum": true,
"chargesHourly": false,
"chargesSubscription": false,
"chargesFixed": false,
"chargesCommissions": false,
"chargesPerformanceBased": false,
"chargesOther": false,
"asOfDate": "2026-05-01"
}