Skip to main content
Glama

Initial holdings (Form 3)

akkru_initial_holdings
Read-onlyIdempotent

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.

  • list: one company's (ticker or cik) and/or one insider's (insider_cik) Form 3 filings. 30 credits per page.

  • stats: totals 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.

  • get: holdings by id (from stats), up to 100. 10 credits per 5 ids.

  • insiders: everyone who filed a Form 3 for one company, one row per CIK. 30 credits.

  • tickers: the companies with Form 3 data, 500 per page. 30 credits per page.

  • search: screen 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.

Input Schema

NameRequiredDescriptionDefault
cikNo(list, stats, insiders) Company SEC CIK, digits, e.g. "320193"; any CIK the company has filed under. Give ticker or cik, not both.
pageNo(list, get, tickers, search) Page number, from 1; the response's next_page gives the next one.
actionYesWhat to do; each action is described in the tool description.
detailNoResponse 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.
tickerNo(list, stats, insiders) 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.
sectorsNo(search) Only companies in these sectors (names from akkru_metrics action "catalog"). Pro plan or higher.
sort_byNo(search) 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.
tickersNo(search) Only these companies (up to 100); any symbol a company has traded under. Default: every company.
ids_pageNo(stats) Page of holding_ids in the stats response (default 1).
page_sizeNo(list, get, tickers, search) list, get: filings per page; search: rows per page, with page times page_size at most 500; tickers: companies per page, up to 500.
as_of_dateNo(stats, search) Window end, filing date "YYYY-MM-DD" (not in the future).
sort_orderNo(search) "desc" (default) or "asc".
start_dateNo(stats, search) Window start, filing date "YYYY-MM-DD".
holding_idsNo(get) Holding ids from action "stats" (1-100).
insider_cikNo(list, stats) Insider SEC CIK, digits (from action "insiders").
relationshipNo(list, stats, insiders) 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".
ids_page_sizeNo(stats) holding_ids per page, 1-1,000 (default 200).
is_derivativeNo(stats) true: derivative rows only; false: non-derivative rows only.
exclude_tickersNo(search) Leave these companies out (up to 100).
group_by_tickerNo(search) true (default): one row per company; false: one row per holding.
holding_filtersNo(search) 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_filtersNo(search) 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]).
include_anomaliesNo(list, stats) true: include rows that fail a consistency check (left out by default).
no_securities_ownedNo(list) true: only filings that report holding nothing; false: only filings with holdings; default both.
exclude_likely_mergedNo(list, stats) true: leave out filings whose amendment match is only probable.
include_unresolved_amendmentsNo(list, stats) true: include amendments that could not be matched to their original filing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, and the description adds substantial context beyond them: per-action credit costs, a Pro-plan gate on search, and the key warning that a 403 for out-of-plan coverage is still charged. It also discloses that rows failing a consistency check carry data_quality_flags and are excluded unless include_anomalies is true, and warns that shares_owned_total and underlying_shares_total use different units.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded summary followed by one bullet per action is the right structure for a 26-parameter, 6-action tool, and pricing is folded into each action rather than a separate block. A few clauses are dense ('nested filing then holdings'), but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a wide, multi-action tool with no output schema, the description covers action selection, cost, plan gating, anomaly handling, and a units caveat. Response shape is only loosely implied (via the detail levels and the stats/get id handoff), so an agent still learns the return format largely from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top: the anomaly-flagging behavior tied to include_anomalies and the unit mismatch between the two aggregate totals. It also clarifies what no_securities_owned=true represents (filer reported holding nothing) in business terms rather than just a boolean.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the specific resource (SEC Form 3 initial holdings reported by insiders on becoming insiders), its nesting shape, and the meaning of no_securities_owned. This clearly separates it from siblings like akkru_insider_transactions (Form 4) and akkru_institutional_holdings (13F).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each of the six actions is scoped explicitly (list = one company/insider, stats = window totals, get = ids from stats, insiders = roster per company, tickers = covered companies, search = cross-company screening), with cost and plan requirements attached to support action choice. It stops short of naming sibling tools as alternatives (e.g., when to prefer akkru_insider_transactions), so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources