Holdings (by investor)
Retrieve one institutional manager's 13F positions by SEC CIK. With no report_period filter, the response contains only the manager's latest reported quarter; pass any report_period filter to reach earlier quarters, and increase limit for large portfolios.
/v1/institutional-holdings?filer_cik={cik}Pass filer_cik to read the manager view. Use Owners (by ticker) for the ticker view; exactly one of filer_cik or ticker is accepted. The response is { filer_cik, institutional_holdings }.
Query parameters#
filer_cikstringrequired1067983 for Berkshire Hathaway. Zero-padding is optional.report_periodstringoptionalYYYY-MM-DD, usually a quarter-end). Use this when you want one quarter’s portfolio.report_period_gtestringoptionalYYYY-MM-DD). Also available: report_period_lte, report_period_gt, report_period_lt.limitnumberoptional1000 (minimum 1). Increase it for large managers.Example request#
curl "https://api.focusalpha.ai/v1/institutional-holdings?filer_cik=1067983&report_period=2024-06-30&limit=1000" \
-H "Authorization: Bearer $FOCUSALPHA_API_KEY"Response#
Without a report_period filter, the response contains only the manager’s latest reported quarter (sorted newest-first within it). To retrieve earlier quarters — up to the last 8 retained — pass any report-period filter (report_period, report_period_gte, report_period_lte, report_period_gt, or report_period_lt). Matching rows are sorted by report_period descending before limit is applied. Each row is one aggregated 13F position for one security in one filing. Subsidiary manager blocks are summed; option rows and PRN rows stay separate.
institutional_holding#
tickerstring | nullrequirednull when no ticker is mapped.name_of_issuerstring | nullrequiredcusipstringrequiredtitle_of_classstring | nullrequiredCOM.sharesnumber | nullrequiredSH rows, or principal amount for PRN rows.share_type"SH" | "PRN"requiredshares is a share count (SH) or principal amount (PRN).value_usdnumber | nullrequiredreported_pricenumber | nullrequiredvalue_usd / shares for ordinary share rows. null for PRN rows or zero-share rows.put_call"Put" | "Call" | nullrequirednull for ordinary long positions; Put or Call for listed options.report_periodstringrequiredYYYY-MM-DD).filing_datestring | nullrequiredYYYY-MM-DD).form_type"13F-HR" | "13F-HR/A" | nullrequired13F-HR or amendment 13F-HR/A.accession_numberstring | nullrequired0000950123-24-008740.filer_cikstringrequiredfiler_namestring | nullrequiredExample response#
{
"filer_cik": "0001067983",
"institutional_holdings": [
{
"ticker": "AAPL",
"name_of_issuer": "APPLE INC",
"cusip": "037833100",
"title_of_class": "COM",
"shares": 400000000,
"share_type": "SH",
"value_usd": 84248000000,
"reported_price": 210.62,
"put_call": null,
"report_period": "2024-06-30",
"filing_date": "2024-08-14",
"form_type": "13F-HR",
"accession_number": "0000950123-24-008740",
"filer_cik": "0001067983",
"filer_name": "BERKSHIRE HATHAWAY INC"
}
]
}Errors#
Statuses: 400 for invalid parameters, 401 for a bad or missing API key, 402 for rate-limit or quota failures, 404 for an unusable CIK or disabled route, 500 for an unexpected internal error, and 503 when the holdings store is temporarily unavailable. A valid filer with no matching rows returns 200 with an empty institutional_holdings array. See Errors.