get_13f_position_changes
What one 13F filer bought, sold or held in its latest filed quarter, one row per position — the direct read for "what did this fund buy or exit".
FLOW: list_options("institutional_managers", q="blackrock") gives the CIK.
`position_filter` DEFAULTS TO NEW AND CLOSED to keep the payload down. BlackRock with
all five statuses is 2,680 rows and 1.16 MB, so widen it only when the question needs
the adds, trims or unchanged holdings.
Returns {"cik", "position_filter", "count", "rows"}, largest value first. A row is
{date, symbol, manager_name, status, shares, value, prev_shares, prev_value, share_chg,
share_chg_pct, value_chg, value_chg_pct, accessions, sec_urls}. `accessions` and
`sec_urls` are lists because a position can come from more than one filing; a CLOSED row
cites the last filing that reported the position.
DATA QUALITY: a small share of values are wrong as filed or parsed, and they are not
corrected. An implausible value or jump may be a filer error: check `sec_urls`.
An empty result means no rows, not necessarily no activity: `note` says so. A 422 means
a bad CIK. Requires auth (your MCP client attaches the OAuth bearer automatically).
Rate-limited 100/min; counts toward plan quota.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"cik": "<cik>"
},
"name": "get_13f_position_changes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | The filer's SEC CIK, up to 10 digits. Get it from list_options("institutional_managers", q=...). | |
| position_filter | No | Statuses to return (default NEW and CLOSED). Add INCREASED, DECREASED or UNCHANGED for the rest of the book: a large filer's full book is thousands of rows. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | ||
| note | No | Set only when no rows came back: what an empty result can mean. | |
| rows | Yes | One row per position in the latest filed quarter, largest value first. | |
| count | Yes | Rows returned. | |
| position_filter | Yes | The statuses requested. |