Track fund portfolios from a cell. Returns a manager's 13F positions and their quarterly changes, in Sheets or Excel.
It's one of 250+ live sources you reach with a single =VERVE() function — served from APIVerve's production data engine, billed at 5 credits per resolved cell, and refreshed on whatever cadence you set. No API keys to wrangle, no scripts, no exports.
A real example — the input you type, and the values you can pull from it. Click any cell to see the formula behind it.
Drop =VERVE("institutionalholdings", "mode") into a cell and your model reads the latest number every refresh — no more pasting figures from a browser tab into a stale sheet.
Fill a column beside your list of tickers or currencies and every row updates together, so a hundred-row watchlist stays current on its own.
Point a chart at the cell =VERVE("institutionalholdings", "mode") feeds and the chart re-draws as the data moves — a finance dashboard that's live instead of a Monday-morning snapshot.
The same function works in both apps — install once, sign in with your key, and type it into any cell.
Install from the Workspace Marketplace, then drop the formula into a cell. Autocomplete suggests the source and its fields.
=VERVE("institutionalholdings", "mode")Same source, same arguments, same key — in Excel on desktop, the web, or mobile. Excel namespaces it as VERVE.CALL. Drag to fill a whole column.
=VERVE.CALL("institutionalholdings", "mode")Tune the result by adding name=value before the field argument — in any order. Leave one out and its default applies.
SEC Central Index Key of the 13F filer, e.g. 1067983 for Berkshire Hathaway. Returns that manager's holdings.
=VERVE("institutionalholdings", "mode", "cik", "1067983")Manager name to search for instead of cik, e.g. bridgewater. The best match is returned, with other close matches in otherMatches.
=VERVE("institutionalholdings", "mode", "manager", "berkshire hathaway")Ticker symbol. Alone, lists the managers holding it; with cik or manager, filters that manager's holdings to it.
=VERVE("institutionalholdings", "mode", "ticker", "AAPL")9-character CUSIP. Alone, lists the managers holding it; with cik or manager, filters that manager's holdings to it.
=VERVE("institutionalholdings", "mode", "cusip", "037833100")Quarter to read, as a quarter end (2026-03-31) or quarter (2026Q1). Defaults to the latest quarter.
=VERVE("institutionalholdings", "mode", "period", "2026Q1")Only positions that are new, increased, decreased, unchanged or soldout since the previous quarter. Sold-out positions appear only with soldout.
=VERVE("institutionalholdings", "mode", "changeType", "new")Option filter: put, call, none (shares and principal only) or all. Defaults to all.
=VERVE("institutionalholdings", "mode", "putCall", "none")Only positions worth at least this many US dollars.
=VERVE("institutionalholdings", "mode", "minValue", "1000000")Only positions worth at most this many US dollars.
=VERVE("institutionalholdings", "mode", "maxValue", "1000000000")Sort by value (default), shares, change (share change), changepercent or portfolio (weight).
=VERVE("institutionalholdings", "mode", "sort", "value")Sort order: desc (default) or asc.
=VERVE("institutionalholdings", "mode", "order", "desc")Rows to return (1-100). Defaults to 10.
=VERVE("institutionalholdings", "mode", "limit", "25")Rows to skip, for paging through a large portfolio or holder list.
=VERVE("institutionalholdings", "mode", "offset", "25")Add a summary: for a manager, value change, position counts by change type, top-10 concentration and turnover; for a security, holder flows and top-10 share concentration.
=VERVE("institutionalholdings", "mode", "summary", "true")Add a field name right after the inputs to land just that value in the cell.
=VERVE("institutionalholdings", "mode")=VERVE("institutionalholdings", "quarter")=VERVE("institutionalholdings", "previousPeriod")=VERVE("institutionalholdings", "manager.cik")=VERVE("institutionalholdings", "manager.name")=VERVE("institutionalholdings", "manager.city")=VERVE("institutionalholdings", "manager.state")=VERVE("institutionalholdings", "filing")=VERVE("institutionalholdings", "filing.formType")=VERVE("institutionalholdings", "filing.accessionNumber")=VERVE("institutionalholdings", "filing.filingDate")=VERVE("institutionalholdings", "filing.amendments")Premium marks data included on paid plans. On the Free plan a marked field is withheld and a marked input is ignored — either way the cell reads #PREMIUM(name) instead of a value, so a gated answer can never be mistaken for a real one. Everything unmarked works on every plan. Compare plans
Everything you need to wire it into a sheet.