akkru_initial_holdings

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.

#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 akkru_metrics action "catalog"). 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: "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": "list", "ticker": "TSLA", "page_size": 5}
JSON
{"action": "stats", "ticker": "TSLA", "start_date": "2020-01-01"}
JSON
{"action": "get", "holding_ids": [1234, 1235]}
JSON
{"action": "insiders", "ticker": "TSLA"}
JSON
{"action": "tickers", "page": 1}
JSON
{"action": "search", "tickers": ["TSLA"], "holding_filters": {"is_derivative": false}, "page_size": 10}