# akkru_institutional_holdings

What institutional managers report holding each quarter on SEC Form 13F, by manager (filer CIK) and quarter. Links open the filing's EDGAR index page.

## Actions

| Action | What it does |
|---|---|
| `managers` | Managers whose latest name matches query, or whose CIK is query when it is all digits; up to 8, largest latest portfolio first, with their latest quarter. 10 credits. |
| `history` | One manager's quarters (cik, or the exact name) with each quarter's headline numbers and its quarter label (e.g. "2026Q2", for portfolio). 30 credits. |
| `portfolio` | One manager's holdings for one quarter: positions, derivatives and positions closed out (exited), under a header with the quarter's numbers and its amendment record. 30 credits per page. |
| `holders` | Who holds one security (cusip or ticker), row by row, or one row per quarter with group_by_quarter. 30 credits per page; 40 grouped. |
| `search` | Screen every manager-quarter by its numbers (conditions), by quarter end dates and flags. Pro plan or higher; 160-720 credits. |

An unknown manager, quarter or security returns 404 and is still charged.

## Parameters

| Parameter | Type | Actions | Description |
|---|---|---|---|
| `query` | string | `managers` | Manager name (1-64 characters; under 3 characters matches the start of the name) or CIK digits. |
| `cik` | string | `history`, `portfolio` | Manager (filer) CIK, digits without leading zeros (from action "managers"). Give cik or name, not both. |
| `name` | string | `history`, `portfolio` | Manager name, exact apart from spaces and case; a name several managers share returns 404. |
| `quarter` | string | `portfolio`, `holders` | Calendar quarter "YYYYQn", e.g. "2026Q1" (Q1 ends March 31, Q2 June 30, Q3 September 30, Q4 December 31). portfolio: required; holders: default every quarter. |
| `type` | string | `portfolio`, `holders` | "positions" (stock rows), "derivatives" (option rows) or "exited" (positions closed out that quarter); default all three. |
| `activity` | array of string | `portfolio`, `holders` | Any of "NEW", "ADD", "REDUCE", "HOLD", "CUSIP_CHANGE"; unknown values are dropped with a warning. Exited rows have no activity. |
| `restated` | array of string | `portfolio` | Any of "added", "modified", "cancelled": rows a merged amendment changed. |
| `cusip` | string | `portfolio`, `holders` | 9-character CUSIP. portfolio: only this security; holders: the security (or give ticker). |
| `ticker` | string | `portfolio`, `holders` | Security ticker; any symbol the company has traded under. portfolio: only this security; holders: the security (or give cusip). |
| `group_by_quarter` | boolean | `holders` | true: one row per quarter (holders, total shares, total value of stock rows), unpaged. |
| `sort_by` | string | `portfolio`, `holders`, `search` | portfolio, holders: period, d_shares, ticker, issuer_norm or type (holders also shares or value); search: total_positions_value (default), positions_count, derivatives_count, total_derivatives_notional, portfolio_value_qoq_pct, top1_security_pct, top10_security_pct, est_turnover, period or filing_date. |
| `sort_order` | string | `history`, `portfolio`, `holders`, `search` | "desc" (default) or "asc". |
| `start_date` | string | `search` | Only quarters ending on or after this date, "YYYY-MM-DD". |
| `end_date` | string | `search` | Only quarters ending on or before this date, "YYYY-MM-DD". Omit both dates for every quarter. |
| `conditions` | array of object | `search` | Up to 8 {field, op, value}; op is >, >=, <, <= or between ([low, high]); field is total_positions_value, positions_count, derivatives_count, total_derivatives_notional, portfolio_value_qoq_pct, top1_security_pct, top10_security_pct, est_turnover, cover_table_value, new_count, add_count, reduce_count, hold_count, sold_out_count or filing_date ("YYYY-MM-DD"). A quarter where the field is empty never matches. |
| `is_amended` | boolean | `search` | true: only quarters with merged amendments; false: only quarters without. |
| `confidential` | boolean | `search` | true: only quarters with confidential holdings; false: only without. |
| `is_combination_report` | boolean | `search` | true: only combination reports (the filer also reports for other managers); false: only holdings reports. |
| `page` | integer | `history`, `portfolio`, `holders`, `search` | Page number, from 1; the response's next_page gives the next one. |
| `page_size` | integer | `history`, `portfolio`, `holders`, `search` | Rows per page, 1-100 (default 50); search: page times page_size at most 500. |
| `detail` | string | `history`, `portfolio`, `holders`, `search` | Response detail: "full" (default) returns the most detail available; "light" leaves out the bulkiest fields, such as breakdown lists; "minimal" returns the values with only what defines them. All three are charged the same. One of `full`, `light`, `minimal`. |

## Examples

```json
{"action": "managers", "query": "berkshire"}
```

```json
{"action": "history", "cik": "1067983", "page_size": 8}
```

```json
{"action": "portfolio", "cik": "1067983", "quarter": "2025Q4", "type": "positions"}
```

```json
{"action": "holders", "ticker": "AAPL", "quarter": "2025Q4", "page_size": 20}
```

```json
{"action": "search", "start_date": "2025-10-01", "end_date": "2025-12-31", "conditions": [{"field": "total_positions_value", "op": ">=", "value": 100000000000}]}
```
