Read institutional holdings for one ticker as owner name, date, and shares held on each row.
The lines come from holdingsTransactions.table.rows in the published sample.
To access this endpoint, you must obtain an API key: Get your API key
Request TOTAL for AAPL
GET /v2/markets/stock/institutional-holdings needs a ticker and a type. The documented example is AAPL, TOTAL, and limit 15, which is what the script sends. INCREASED, NEW, DECREASED, SOLDOUT, and ACTIVITY are the other documented type values. The published sample's meta has version, status, and copywrite, and it has no type field.
Method: GET
URL: https://api.mboum.com/v2/markets/stock/institutional-holdings
Documentation: institutional holdings
Print the holder lines
The names live on body.holdingsTransactions.table.rows. The script prints ownerName, date, and sharesHeld.
import requests
url = "https://api.mboum.com/v2/markets/stock/institutional-holdings"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {"ticker": "AAPL", "type": "TOTAL", "limit": "15"}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
payload = response.json()
rows = payload["body"]["holdingsTransactions"]["table"]["rows"]
for row in rows:
print(row["ownerName"], row["date"], row["sharesHeld"])
Read a sold-out row
The first data row in the published sample is this holder.
{
"ownerName": "Acrisure Capital Management, Llc",
"date": "3/31/2023",
"sharesHeld": "0",
"sharesChange": "-2,036",
"sharesChangePCT": "Sold Out",
"marketValue": ""
}
All 15 data rows in the sample use that pattern: sharesHeld is the string 0, sharesChangePCT is Sold Out, and marketValue is empty. One limitation: the published table is a sold-out list, so the shares-held figure to keep is the printed value, including zero.
Learn more or explore other endpoints: institutional holdings