Initial holdings (Form 3)

What insiders report holding when they become insiders (SEC Form 3), nested filing then holdings; no_securities_owned true means the filer reported holding nothing. Rows failing a consistency check carry data_quality_flags and are left out unless include_anomalies is true.

MCP toolCLI command
akkru_initial_holdingsakkru initial-holdings

#Actions

ActionWhat it does
listOne company's (ticker or cik) and/or one insider's (insider_cik) Form 3 filings. 30 credits per page.
statsTotals over a filing-date window, with the ids of every holding counted. 40 credits plus 5 per 1,000 holdings counted. shares_owned_total and underlying_shares_total are in different units.
getHoldings by id (from stats), up to 100. 10 credits per 5 ids.
insidersEveryone who filed a Form 3 for one company, one row per CIK. 30 credits.
tickersThe companies with Form 3 data, 500 per page. 30 credits per page.
searchScreen every company's holdings with holding_filters and aggregate_filters. Pro plan or higher; 65-920 credits.

A company outside your plan's coverage returns 403 and the call is still charged.

#Parameters

tickerstring

Company ticker, e.g. "AAPL" (US), "000100" (Korea), "1332" (Japan), "VIRI_F" (Europe), "600519_CN" (China A-share); any symbol the company has traded under.

cikstring

Company SEC CIK, digits, e.g. "320193"; any CIK the company has filed under. Give ticker or cik, not both.

insider_cikstring

Insider SEC CIK, digits (from action "insiders").

relationshiparray of string

list, stats: the role on the filing, any of "is_director", "is_officer", "is_ten_percent_owner", "is_other". insiders: a role ever reported, any of "ever_director", "ever_officer", "ever_ten_percent_owner", "ever_other".

no_securities_ownedboolean

true: only filings that report holding nothing; false: only filings with holdings; default both.

include_unresolved_amendmentsboolean

true: include amendments that could not be matched to their original filing.

exclude_likely_mergedboolean

true: leave out filings whose amendment match is only probable.

include_anomaliesboolean

true: include rows that fail a consistency check (left out by default).

start_datestring

Window start, filing date "YYYY-MM-DD".

as_of_datestring

Window end, filing date "YYYY-MM-DD" (not in the future).

is_derivativeboolean

true: derivative rows only; false: non-derivative rows only.

ids_pageinteger

Page of holding_ids in the stats response (default 1).

ids_page_sizeinteger

holding_ids per page, 1-1,000 (default 200).

holding_idsarray of integer

Holding ids from action "stats" (1-100).

tickersarray of string

Only these companies (up to 100); any symbol a company has traded under. Default: every company.

exclude_tickersarray of string

Leave these companies out (up to 100).

sectorsarray of string

Only companies in these sectors (names from the catalog action of Computed metrics). Pro plan or higher.

holding_filtersobject

Holding-level filters: relationship, is_derivative, direct_or_indirect (D or I), include_anomalies, exclude_likely_merged, include_unresolved_amendments, and up to 8 conditions {field, op, value} on shares_owned, split_adjusted_shares_owned, underlying_security_shares, split_adjusted_underlying_security_shares or conversion_or_exercise_price.

aggregate_filtersarray of object

Company-level conditions (up to 8) {metric, op, value} on filing_count, no_securities_filing_count, distinct_insiders, holdings_count or shares_owned_total. Operators for both: >, >=, <, <=, between ([low, high]).

group_by_tickerboolean

true (default): one row per company; false: one row per holding.

sort_bystring

Grouped: ticker, holdings_count or shares_owned_total. One row per holding: filing_date, shares_owned, split_adjusted_shares_owned, underlying_security_shares or conversion_or_exercise_price.

sort_orderstring

"desc" (default) or "asc".

pageinteger

Page number, from 1; the response's next_page gives the next one.

page_sizeinteger

list, get: filings per page; search: rows per page, with page times page_size at most 500; tickers: companies per page, up to 500.

detailstring

Response detail, same price at every level: "full" (default) returns everything; "light" leaves out the bulkiest fields, such as breakdown lists; "minimal" returns only the values and what identifies them, without sources or calculation details. Every action takes it; a call without detail levels ignores it. Try "light" or "minimal" for shorter replies that use less context and fewer tokens. One of full, light, minimal.

#Examples

MCP
{"action": "list", "ticker": "TSLA", "page_size": 5}
CLI
akkru initial-holdings list --ticker TSLA --page-size 5
MCP
{"action": "stats", "ticker": "TSLA", "start_date": "2020-01-01"}
CLI
akkru initial-holdings stats --ticker TSLA --start-date 2020-01-01
MCP
{"action": "get", "holding_ids": [529404]}
CLI
akkru initial-holdings get --json '{"holding_ids": [529404]}'
MCP
{"action": "insiders", "ticker": "TSLA"}
CLI
akkru initial-holdings insiders --ticker TSLA
MCP
{"action": "tickers", "page": 1}
CLI
akkru initial-holdings tickers --page 1
MCP
{"action": "search", "tickers": ["TSLA"], "holding_filters": {"is_derivative": false}, "page_size": 10}
CLI
akkru initial-holdings search --page-size 10 --json '{"tickers": ["TSLA"], "holding_filters": {"is_derivative": false}}'