MCP-Server

ko-mcp

io.github.SharpLu/ko-mcp

Was dieses MCP kann

Provides SEC filings, institutional holdings, insider and congressional trades, stock data, Treasury yields, rates, crypto ETF exposure, and macro indicators.

get_congress_member
Get detailed trading history of a specific U.S. Congress member. Shows individual trades with transaction types, amounts, and disclosure dates.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['member'], 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'member': {'type': 'string', 'description': "Member slug (e.g. 'nancy-pelosi', 'dan-crenshaw'). Use get_congress_trades or search to find exact slugs."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['member', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['member_name', 'chamber', 'ticker', 'asset_description', 'transaction_type', 'transaction_date', 'disclosure_date', 'amount_range', 'owner'], 'properties': {'owner': {'$ref': '#/properties/rows/items/properties/member_name'}, 'ticker': {'$ref': '#/properties/rows/items/properties/member_name'}, 'chamber': {'$ref': '#/properties/rows/items/properties/member_name'}, 'member_name': {'type': ['string', 'null']}, 'amount_range': {'type': ['string', 'null'], 'description': 'The disclosed dollar RANGE (STOCK Act bands), not an exact amount'}, 'disclosure_date': {'$ref': '#/properties/rows/items/properties/member_name'}, 'transaction_date': {'$ref': '#/properties/rows/items/properties/member_name'}, 'transaction_type': {'$ref': '#/properties/rows/items/properties/member_name'}, 'asset_description': {'$ref': '#/properties/rows/items/properties/member_name'}}, 'additionalProperties': False}}, 'member': {'type': 'string'}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/rows/items/properties/member_name'}, 'window_end': {'$ref': '#/properties/rows/items/properties/member_name'}, 'continuation': {'$ref': '#/properties/rows/items/properties/member_name'}, 'window_start': {'$ref': '#/properties/rows/items/properties/member_name'}, 'policy_version': {'$ref': '#/properties/rows/items/properties/member_name'}, 'effective_period': {'$ref': '#/properties/rows/items/properties/member_name'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
get_congress_trades
Search individual stock trades disclosed by U.S. Congress members (House and Senate) under the STOCK Act. Returns a markdown table of transactions: member name, chamber, ticker, buy/sell type, transaction date, disclosure date (the gap between the two reveals reporting delay), dollar amount range, and owner (self/spouse/joint). Use for questions like 'What did Nancy Pelosi trade recently?', 'Which members bought NVDA?', or 'Show the largest Senate trades this quarter'. Filter by chamber, ticker, or member name; sort by traded value, trade count, or recency. For one member's profile and complete trading history, use get_congress_member instead.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination (default 1)'}, 'sort': {'enum': ['volume', 'trades', 'recent'], 'type': 'string', 'default': 'volume', 'description': 'Sort order — volume (most traded value), trades (most trades), recent (latest first)'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Trades per page, 1-50 (default 20)'}, 'search': {'type': 'string', 'maxLength': 200, 'description': "Full or partial member name, e.g. 'Pelosi' or 'Dan Crenshaw'"}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': 'Stock ticker symbol to filter by, e.g. NVDA or AAPL'}, 'chamber': {'enum': ['house', 'senate', 'all'], 'type': 'string', 'default': 'all', 'description': 'Congressional chamber: house, senate, or all (default all)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['filters', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['member_name', 'chamber', 'ticker', 'asset_description', 'transaction_type', 'transaction_date', 'disclosure_date', 'amount_range', 'owner'], 'properties': {'owner': {'$ref': '#/properties/filters/properties/chamber'}, 'ticker': {'$ref': '#/properties/filters/properties/chamber'}, 'chamber': {'$ref': '#/properties/filters/properties/chamber'}, 'member_name': {'$ref': '#/properties/filters/properties/chamber'}, 'amount_range': {'type': ['string', 'null'], 'description': 'The disclosed dollar RANGE (STOCK Act bands), not an exact amount'}, 'disclosure_date': {'$ref': '#/properties/filters/properties/chamber'}, 'transaction_date': {'$ref': '#/properties/filters/properties/chamber'}, 'transaction_type': {'$ref': '#/properties/filters/properties/chamber'}, 'asset_description': {'$ref': '#/properties/filters/properties/chamber'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'filters': {'type': 'object', 'required': ['chamber', 'ticker', 'search', 'sort'], 'properties': {'sort': {'$ref': '#/properties/filters/properties/chamber'}, 'search': {'$ref': '#/properties/filters/properties/chamber'}, 'ticker': {'$ref': '#/properties/filters/properties/chamber'}, 'chamber': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/filters/properties/chamber'}, 'window_end': {'$ref': '#/properties/filters/properties/chamber'}, 'continuation': {'$ref': '#/properties/filters/properties/chamber'}, 'window_start': {'$ref': '#/properties/filters/properties/chamber'}, 'policy_version': {'$ref': '#/properties/filters/properties/chamber'}, 'effective_period': {'$ref': '#/properties/filters/properties/chamber'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
get_crypto_exposure
Get a market-wide summary of institutional exposure to US spot crypto ETFs (Bitcoin ETF complex: IBIT, FBTC, GBTC, etc.) from the latest quarter of SEC 13F filings. Returns total institutional USD held, quarter-over-quarter change, and a per-ETF breakdown (holders, USD, QoQ).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['complex', 'products'], 'properties': {'complex': {'type': 'object', 'required': ['total_usd', 'qoq_change', 'products'], 'properties': {'products': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'total_usd': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'qoq_change': {'$ref': '#/properties/complex/properties/total_usd'}}, 'additionalProperties': False}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['product_ticker', 'product_name', 'sponsor', 'holders', 'total_usd', 'prev_usd', 'qoq_change'], 'properties': {'holders': {'$ref': '#/properties/complex/properties/products'}, 'sponsor': {'$ref': '#/properties/products/items/properties/product_ticker'}, 'prev_usd': {'$ref': '#/properties/complex/properties/total_usd'}, 'total_usd': {'$ref': '#/properties/complex/properties/total_usd'}, 'qoq_change': {'$ref': '#/properties/complex/properties/total_usd'}, 'product_name': {'$ref': '#/properties/products/items/properties/product_ticker'}, 'product_ticker': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_crypto_holder
Get one institution's spot crypto-ETF holdings (Bitcoin ETF complex): its per-ETF positions in the latest filed quarter (shares, USD, QoQ change, action) plus its rank among all crypto-ETF holders. Use a CIK number (find it with get_crypto_holders or the search tool).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['institution'], 'properties': {'institution': {'type': 'string', 'maxLength': 200, 'description': "Institution CIK number (e.g. '1512857' for Brevan Howard) or name (e.g. 'BlackRock')."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['requested', 'cik', 'institution', 'positions', 'plan_limit'], 'properties': {'cik': {'type': ['string', 'null']}, 'positions': {'type': 'array', 'items': {'type': 'object', 'required': ['product_ticker', 'product_name', 'shares_held', 'usd_value', 'qoq_value_change', 'action'], 'properties': {'action': {'$ref': '#/properties/cik'}, 'usd_value': {'$ref': '#/properties/institution/anyOf/0/properties/total_usd'}, 'shares_held': {'$ref': '#/properties/institution/anyOf/0/properties/total_usd'}, 'product_name': {'$ref': '#/properties/cik'}, 'product_ticker': {'$ref': '#/properties/cik'}, 'qoq_value_change': {'$ref': '#/properties/institution/anyOf/0/properties/total_usd'}}, 'additionalProperties': False}}, 'requested': {'type': 'string'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/institution/anyOf/0/properties/rank'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/cik'}, 'window_end': {'$ref': '#/properties/cik'}, 'continuation': {'$ref': '#/properties/cik'}, 'window_start': {'$ref': '#/properties/cik'}, 'policy_version': {'$ref': '#/properties/cik'}, 'effective_period': {'$ref': '#/properties/cik'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'institution': {'anyOf': [{'type': 'object', 'required': ['name', 'latest_quarter', 'total_usd', 'qoq_change', 'rank', 'total_holders', 'portfolio_weight_pct'], 'properties': {'name': {'$ref': '#/properties/cik'}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'total_usd': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'qoq_change': {'$ref': '#/properties/institution/anyOf/0/properties/total_usd'}, 'total_holders': {'$ref': '#/properties/institution/anyOf/0/properties/rank'}, 'latest_quarter': {'$ref': '#/properties/cik'}, 'portfolio_weight_pct': {'$ref': '#/properties/institution/anyOf/0/properties/total_usd'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
get_crypto_holders
List institutional investors holding US spot crypto ETFs (Bitcoin ETF complex), ranked by total USD held, from the latest quarter of SEC 13F filings. Optionally filter to holders of a specific ETF via the `product` parameter (e.g. 'IBIT').
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Results per page'}, 'product': {'type': 'string', 'maxLength': 200, 'description': "Filter to holders of a specific spot crypto ETF ticker, e.g. 'IBIT', 'FBTC', 'GBTC'."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product', 'total_holders', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'cik', 'name', 'total_usd', 'prev_usd', 'qoq_value_change', 'product_count', 'products'], 'properties': {'cik': {'$ref': '#/properties/product'}, 'name': {'$ref': '#/properties/product'}, 'rank': {'$ref': '#/properties/total_holders'}, 'prev_usd': {'$ref': '#/properties/rows/items/properties/total_usd'}, 'products': {'type': 'array', 'items': {'type': 'string'}}, 'total_usd': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'product_count': {'$ref': '#/properties/total_holders'}, 'qoq_value_change': {'$ref': '#/properties/rows/items/properties/total_usd'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/total_holders/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/total_holders/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/total_holders/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'product': {'type': ['string', 'null']}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/total_holders'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/product'}, 'window_end': {'$ref': '#/properties/product'}, 'continuation': {'$ref': '#/properties/product'}, 'window_start': {'$ref': '#/properties/product'}, 'policy_version': {'$ref': '#/properties/product'}, 'effective_period': {'$ref': '#/properties/product'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'total_holders': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_economic_indicators
Get U.S. economic indicators from BLS — CPI (inflation), PPI (producer prices), Non-farm Payrolls (employment), Unemployment Rate, JOLTS. Filter by category.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 365, 'maximum': 3650, 'minimum': 1, 'description': 'Number of days of history (default 365)'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number (default 1)'}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Rows per page, 1-500 (default 100). A long `days` window can hold more rows than one page; the answer says when the page is full and names the next one.'}, 'category': {'enum': ['cpi', 'unemployment', 'nfp', 'ppi', 'jolts', 'all'], 'type': 'string', 'default': 'all', 'description': 'Category (case-insensitive): cpi/inflation, ppi, nfp/payrolls, unemployment, jolts, or all'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category', 'rows', 'paging'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'series_id', 'series_name', 'value', 'category'], 'properties': {'date': {'type': ['string', 'null']}, 'value': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'category': {'$ref': '#/properties/rows/items/properties/date'}, 'series_id': {'$ref': '#/properties/rows/items/properties/date'}, 'series_name': {'$ref': '#/properties/rows/items/properties/date'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'category': {'type': 'string'}}, 'additionalProperties': False}
get_fed_rates
Get daily U.S. policy and money-market interest rates as a markdown table: Effective Fed Funds Rate, SOFR, Prime Rate, and benchmark Treasury yields (3M, 2Y, 10Y, 30Y) per date, newest first. Use for monetary-policy questions like 'Where is the Fed funds rate now?' or 'How has SOFR moved this quarter?', or to compare policy rates against long-end yields for inversion analysis. Covers up to 10 years of daily history. For the full Treasury curve across all maturities, use get_treasury_yields instead.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 3650, 'minimum': 1, 'description': 'Number of days of history (default 30)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['unit', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'fed_funds_rate', 'sofr', 'prime_rate', 'treasury_3m', 'treasury_2y', 'treasury_10y', 'treasury_30y'], 'properties': {'date': {'type': ['string', 'null']}, 'sofr': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'prime_rate': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'treasury_2y': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'treasury_3m': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'treasury_10y': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'treasury_30y': {'$ref': '#/properties/rows/items/properties/fed_funds_rate'}, 'fed_funds_rate': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}}, 'additionalProperties': False}}, 'unit': {'type': 'string', 'const': 'percent'}}, 'additionalProperties': False}
get_financial_stress
Get the OFR Financial Stress Index — a daily indicator of stress in global financial markets. Values above 0 indicate above-average stress.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 365, 'maximum': 3650, 'minimum': 1, 'description': 'Number of days of history (default 365)'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number (default 1)'}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Rows per page, 1-500 (default 100). A long `days` window can hold more rows than one page; the answer says when the page is full and names the next one.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['rows', 'paging'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'series', 'value'], 'properties': {'date': {'type': ['string', 'null']}, 'value': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'series': {'$ref': '#/properties/rows/items/properties/date'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}}, 'additionalProperties': False}
get_form144_notices
Get SEC Form 144 filings — notices of proposed sale of restricted/controlled securities by insiders. Filed before selling, these signal upcoming insider sales. Complements Form 4 (post-trade) with pre-trade intent.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max notices to return'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': "Filter by stock ticker (e.g. 'AAPL')"}, 'insider_cik': {'type': 'string', 'maxLength': 200, 'description': "Filter by insider's CIK number"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['filters', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['accession_no', 'filed_date', 'issuer_ticker', 'issuer_name', 'issuer_cik', 'seller_name', 'relationship', 'securities_class', 'units_to_sell', 'aggregate_market_value', 'approx_sale_date', 'broker_name', 'has_10b5_1_plan'], 'properties': {'filed_date': {'$ref': '#/properties/filters/properties/ticker'}, 'issuer_cik': {'$ref': '#/properties/filters/properties/ticker'}, 'broker_name': {'$ref': '#/properties/filters/properties/ticker'}, 'issuer_name': {'$ref': '#/properties/filters/properties/ticker'}, 'seller_name': {'$ref': '#/properties/filters/properties/ticker'}, 'accession_no': {'$ref': '#/properties/filters/properties/ticker'}, 'relationship': {'$ref': '#/properties/filters/properties/ticker'}, 'issuer_ticker': {'$ref': '#/properties/filters/properties/ticker'}, 'units_to_sell': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Units the filer NOTIFIED an intent to sell -- not a completed sale'}, 'has_10b5_1_plan': {'type': ['boolean', 'null']}, 'approx_sale_date': {'$ref': '#/properties/filters/properties/ticker'}, 'securities_class': {'$ref': '#/properties/filters/properties/ticker'}, 'aggregate_market_value': {'anyOf': [{'$ref': '#/properties/rows/items/properties/units_to_sell/anyOf/0'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'filters': {'type': 'object', 'required': ['ticker', 'insider_cik'], 'properties': {'ticker': {'type': ['string', 'null']}, 'insider_cik': {'$ref': '#/properties/filters/properties/ticker'}}, 'additionalProperties': False}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/filters/properties/ticker'}, 'window_end': {'$ref': '#/properties/filters/properties/ticker'}, 'continuation': {'$ref': '#/properties/filters/properties/ticker'}, 'window_start': {'$ref': '#/properties/filters/properties/ticker'}, 'policy_version': {'$ref': '#/properties/filters/properties/ticker'}, 'effective_period': {'$ref': '#/properties/filters/properties/ticker'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
get_ftd_data
Get SEC fails-to-deliver (FTD) data for a stock. Each quantity is the aggregate net BALANCE of shares that had failed to deliver and were still outstanding on that settlement date, as published by the SEC -- NOT the number of new fails that day. Balances carry over between days, so never sum quantities across dates (that counts the same unsettled shares repeatedly); compare levels or take the maximum instead. Fails arise from many causes (operational and processing delays, long sales, market-maker activity), and FTD data on its own is not evidence of naked short selling. Free/keyless access covers the trailing 92 days. structuredContent carries the exact share quantities.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'days': {'type': 'integer', 'default': 90, 'maximum': 1825, 'minimum': 1, 'description': 'Days of settlement-date history (default 90; Free/keyless access allows up to 92)'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number (default 1)'}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Rows per page, 1-500 (default 100). A long `days` window can hold more rows than one page; the answer says when the page is full and names the next one.'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': "Stock ticker symbol (e.g. 'GME', 'TSLA')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'measure', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['settlement_date', 'ticker', 'quantity', 'price'], 'properties': {'price': {'anyOf': [{'$ref': '#/properties/rows/items/properties/quantity/anyOf/0'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'ticker': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'quantity': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Outstanding fails-to-deliver balance (shares) on that settlement date'}, 'settlement_date': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'measure': {'type': 'string', 'const': 'outstanding_fail_balance', 'description': 'Each quantity is the balance of fails outstanding on that settlement date -- not new fails that day; never sum across dates'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'$ref': '#/properties/paging/properties/total_count/anyOf/0'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'window_end': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'continuation': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'window_start': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'policy_version': {'$ref': '#/properties/rows/items/properties/settlement_date'}, 'effective_period': {'$ref': '#/properties/rows/items/properties/settlement_date'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
get_insider_trades
Get insider (SEC Form 4) transactions for one company. Two grains, and the answer says which: (1) with `executive_cik` -> one row per Form 4 transaction line, with its SEC code (P open-market or private purchase, S open-market or private sale, M/X/C option or RSU exercise/conversion, A grant/award, F shares withheld for tax, G gift, ...), shares, price and value; (2) without it -> one row per insider per trade date that AGGREGATES all that day's lines, split into code P/S purchases/sales (open market or private) versus all acquisitions/dispositions (which also count vests, exercises and tax withholding), with both dollar totals and the line count; when ko.io reports them, the Lines cell and structuredContent also carry that day's SEC codes (e.g. '4 (F 1, M 2, S 1)'). Do not read an aggregate day's total disposed value as a sale decision; use the P/S columns, whose dollar totals cover priced lines only (unpriced lines are counted and flagged as partial). Keyless/Free access covers the trailing 92 days; `period` beyond 1Q requires Pro. structuredContent carries the exact share counts and dollar amounts.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Rows per page, 1-200'}, 'period': {'enum': ['1Q', '2Q', '1Y', 'ALL'], 'type': 'string', 'default': '1Q', 'description': 'Trade-date window for the per-day view: 1Q = trailing 90 days (default, allowed on every plan); 2Q / 1Y / ALL require Pro. Ignored when executive_cik is given (that view returns the full history your plan allows).'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': "Stock ticker symbol (e.g. 'AAPL')"}, 'executive_cik': {'type': 'string', 'description': "Insider's SEC CIK (from a previous answer's person_cik, or list_insider_traders). When given, returns that insider's individual Form 4 transaction lines in this company, newest first."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'grain', 'executive_cik', 'period', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['trade_date', 'person_cik', 'person_name', 'shares_owned_after'], 'properties': {'price': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'value': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'shares': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'person_cik': {'$ref': '#/properties/executive_cik'}, 'trade_date': {'$ref': '#/properties/executive_cik'}, 'code_p_or_s': {'type': 'boolean', 'description': 'true for SEC codes P (purchase) and S (sale) -- open market OR private; the code does not distinguish'}, 'form4_lines': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'person_name': {'$ref': '#/properties/executive_cik'}, 'code_meaning': {'$ref': '#/properties/executive_cik'}, 'ps_buy_lines': {'$ref': '#/properties/rows/items/properties/form4_lines', 'description': 'Code P lines that day (open market or private purchases)'}, 'is_derivative': {'type': 'boolean'}, 'officer_title': {'$ref': '#/properties/executive_cik'}, 'ps_sell_lines': {'$ref': '#/properties/rows/items/properties/form4_lines', 'description': 'Code S lines that day (open market or private sales)'}, 'ps_value_sold': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Dollar total of PRICED code S lines only'}, 'ps_shares_sold': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'security_title': {'$ref': '#/properties/executive_cik'}, 'last_filed_date': {'$ref': '#/properties/executive_cik'}, 'ps_value_bought': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Dollar total of PRICED code P lines only'}, 'first_filed_date': {'$ref': '#/properties/executive_cik'}, 'ps_shares_bought': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'null = unknown (a line had no share count)'}, 'transaction_code': {'$ref': '#/properties/executive_cik'}, 'acquired_disposed': {'anyOf': [{'enum': ['A', 'D'], 'type': 'string'}, {'type': 'null'}]}, 'transaction_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'description': 'Distinct SEC Form 4 codes aggregated into this day (e.g. ["F","M","S"]); null = not reported by ko.io'}, 'all_value_acquired': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'all_value_disposed': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'shares_owned_after': {'$ref': '#/properties/rows/items/properties/shares'}, 'all_shares_acquired': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'all_shares_disposed': {'$ref': '#/properties/rows/items/properties/shares', 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'ps_buy_unpriced_lines': {'$ref': '#/properties/rows/items/properties/form4_lines', 'description': 'Code P lines with no dollar value; > 0 means ps_value_bought is partial'}, 'ps_sell_unpriced_lines': {'$ref': '#/properties/rows/items/properties/form4_lines', 'description': 'Code S lines with no dollar value; > 0 means ps_value_sold is partial'}, 'ps_value_sold_complete': {'type': ['boolean', 'null']}, 'ps_value_bought_complete': {'type': ['boolean', 'null'], 'description': 'false = some code P lines unpriced; null = not reported'}, 'transaction_code_breakdown': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['code', 'code_meaning', 'acquired_disposed', 'is_derivative', 'lines', 'shares', 'value'], 'properties': {'code': {'$ref': '#/properties/executive_cik'}, 'lines': {'$ref': '#/properties/rows/items/properties/form4_lines'}, 'value': {'$ref': '#/properties/rows/items/properties/shares'}, 'shares': {'$ref': '#/properties/rows/items/properties/shares'}, 'code_meaning': {'type': 'string'}, 'is_derivative': {'type': 'boolean'}, 'acquired_disposed': {'enum': ['A', 'D'], 'type': 'string'}}, 'additionalProperties': False}}, {'type': 'null'}], 'description': 'Per code x acquired/disposed x table: line count, shares, value (null = unknown, not partial)'}}, 'additionalProperties': False}}, 'grain': {'enum': ['insider_trade_date', 'form4_transaction_line'], 'type': 'string', 'description': "insider_trade_date = one row per insider per day, aggregating that day's Form 4 lines; form4_transaction_line = one row per line"}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'period': {'$ref': '#/properties/executive_cik'}, 'ticker': {'type': 'string'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/rows/items/properties/form4_lines'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/executive_cik'}, 'window_end': {'$ref': '#/properties/executive_cik'}, 'continuation': {'$ref': '#/properties/executive_cik'}, 'window_start': {'$ref': '#/properties/executive_cik'}, 'policy_version': {'$ref': '#/properties/executive_cik'}, 'effective_period': {'$ref': '#/properties/executive_cik'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'executive_cik': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_institution_holdings
Get current stock holdings of an institutional investor (hedge fund, mutual fund, pension fund) from their latest SEC 13F filing. Returns top positions with share counts, values, and quarter-over-quarter changes. Every answer states its grain: ENTITY (a CIK that belongs to a manager family is answered for the whole family by default -- pass entity='filer' for that one filer's own 13F) and SECURITY (the default portfolio merges an issuer's share classes into one row, e.g. GOOG+GOOGL, and lists the per-class breakdown; pass `ticker` to get only that security). Shares and value are the 13F-reported totals over all legs; option legs are flagged. structuredContent carries exact shares/values and the grain fields.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['institution'], 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Results per page'}, 'entity': {'enum': ['family', 'filer'], 'type': 'string', 'default': 'family', 'description': "family (default): consolidate every 13F filer in the manager family; filer: only the requested CIK's own filing."}, 'ticker': {'type': 'string', 'maxLength': 20, 'description': "Only this security (e.g. 'GOOG'). Returns the security grain: GOOG is Class C only, not the Alphabet issuer total."}, 'institution': {'type': 'string', 'maxLength': 200, 'description': "Institution CIK number (e.g. '1067983'), slug (e.g. 'berkshire-hathaway'), or name (e.g. 'Berkshire Hathaway') — names are resolved automatically."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['requested', 'requested_cik', 'resolved_cik', 'entity_grain', 'family', 'security_grain', 'ticker_filter', 'position_basis', 'view', 'quarters', 'quarter_date', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['cik', 'ticker', 'issuer', 'quarter_date', 'shares_held', 'holding_value', 'portfolio_weight_pct', 'action', 'share_change', 'security_grain', 'tickers', 'share_classes', 'equity_shares', 'call_shares', 'put_shares', 'has_option_legs', 'reported_by_members'], 'properties': {'cik': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'action': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'issuer': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'ticker': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Share-class tickers summed into this row (one entry at security grain)'}, 'put_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'call_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'shares_held': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'quarter_date': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'share_change': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'equity_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'holding_value': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'share_classes': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'shares_held', 'holding_value'], 'properties': {'ticker': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'shares_held': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'holding_value': {'$ref': '#/properties/rows/items/properties/shares_held'}}, 'additionalProperties': False}, 'description': 'Per-class breakdown of an issuer-grain row; empty at security grain'}, 'security_grain': {'enum': ['security', 'issuer'], 'type': 'string'}, 'has_option_legs': {'type': ['boolean', 'null']}, 'reported_by_members': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'portfolio_weight_pct': {'$ref': '#/properties/rows/items/properties/shares_held'}}, 'additionalProperties': False}}, 'view': {'enum': ['snapshot', 'history'], 'type': 'string', 'description': "snapshot = one quarter's holdings; history = one position across quarters (family + ticker), one row per quarter, newest first"}, 'family': {'anyOf': [{'type': 'object', 'required': ['slug', 'name', 'canonical_cik'], 'properties': {'name': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'slug': {'type': ['string', 'null']}, 'canonical_cik': {'$ref': '#/properties/family/anyOf/0/properties/slug'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The manager family, when the answer is at family grain and ko.io named it'}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/rows/items/properties/reported_by_members/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/rows/items/properties/reported_by_members/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/rows/items/properties/reported_by_members/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'quarters': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Distinct quarter-ends present in rows, newest first'}, 'requested': {'type': 'string', 'description': 'The institution identifier the caller passed'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/rows/items/properties/reported_by_members'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'window_end': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'continuation': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'window_start': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'policy_version': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'effective_period': {'$ref': '#/properties/family/anyOf/0/properties/slug'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'entity_grain': {'enum': ['filer', 'family', 'unknown'], 'type': 'string', 'description': "filer = one 13F filer's own filing; family = consolidated across a manager family's filers"}, 'quarter_date': {'type': ['string', 'null'], 'description': "The snapshot's quarter; null for a history (each row carries its own quarter_date)"}, 'resolved_cik': {'type': ['string', 'null'], 'description': "The CIK ko.io answered for (the family's canonical CIK at family grain)"}, 'requested_cik': {'type': ['string', 'null'], 'description': 'The CIK/slug the request was made for'}, 'ticker_filter': {'$ref': '#/properties/family/anyOf/0/properties/slug'}, 'position_basis': {'type': ['string', 'null'], 'description': 'What shares_held/holding_value count, when ko.io stated it (e.g. 13f_reported_all_legs)'}, 'security_grain': {'enum': ['security', 'issuer', 'mixed'], 'type': 'string', 'description': 'security = one row per security/share class; issuer = share classes of one issuer merged; mixed = portfolio with some merged rows'}}, 'additionalProperties': False}
get_stock_activity
Get institutional buying/selling activity trend for a stock over multiple quarters. Shows how many institutions are buying vs selling, net share changes, and value flows — useful for detecting accumulation or distribution patterns. Plan limits: Free/keyless access covers the latest 13F quarter only; the multi-quarter trend requires Pro. Omit `quarters` to get the most your plan allows. structuredContent carries the exact net shares/values. Each quarter carries ko.io's comparability state (comparable / split_adjusted with its split factor / not_comparable / first_reported): a null share or value flow means UNKNOWN (withheld), never zero.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'maxLength': 200, 'description': 'Stock ticker symbol'}, 'quarters': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Number of quarters to return. Omit for the plan default (Pro: 8 = 2 years; Free/keyless: the latest quarter only). An explicit value above what your plan allows returns a plan-limit error.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'quarters_requested', 'quarters_returned', 'latest', 'trend', 'plan_note', 'plan_limit'], 'properties': {'trend': {'type': 'array', 'items': {'type': 'object', 'required': ['quarter', 'institutions_increased', 'institutions_decreased', 'institutions_new', 'institutions_exited', 'net_shares', 'net_value'], 'properties': {'changes': {'$ref': '#/properties/latest/anyOf/0/properties/changes'}, 'quarter': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'net_value': {'$ref': '#/properties/latest/anyOf/0/properties/net_value'}, 'net_shares': {'$ref': '#/properties/latest/anyOf/0/properties/net_shares'}, 'null_reason': {'$ref': '#/properties/latest/anyOf/0/properties/null_reason'}, 'comparability': {'$ref': '#/properties/latest/anyOf/0/properties/comparability'}, 'institutions_new': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_exited': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_decreased': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_increased': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}}, 'additionalProperties': False}}, 'latest': {'anyOf': [{'type': 'object', 'required': ['quarter', 'institutions_increased', 'institutions_decreased', 'institutions_new', 'institutions_exited', 'net_shares', 'net_value', 'institutions_total', 'shares_added', 'shares_removed', 'value_added', 'value_removed'], 'properties': {'changes': {'anyOf': [{'type': 'object', 'required': ['basis', 'new', 'added', 'trimmed', 'exited', 'unchanged', 'no_baseline', 'holders', 'shares_added', 'shares_removed', 'net_shares', 'value_added', 'value_removed', 'net_value'], 'properties': {'new': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'added': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'basis': {'type': ['string', 'null'], 'description': '"equity_filer_baseline"'}, 'exited': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'holders': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'trimmed': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'net_value': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'unchanged': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'net_shares': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'no_baseline': {'anyOf': [{'$ref': '#/properties/quarters_requested/anyOf/0'}, {'type': 'null'}], 'description': 'Filers with no usable prior-quarter baseline: not classified as new/added/...'}, 'null_reason': {'$ref': '#/properties/latest/anyOf/0/properties/null_reason'}, 'value_added': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'shares_added': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'split_factor': {'type': ['number', 'null'], 'description': "split_adjusted only: last quarter's shares were multiplied by this factor before classifying (e.g. 10 = 10-for-1); null otherwise"}, 'comparability': {'$ref': '#/properties/latest/anyOf/0/properties/comparability'}, 'value_removed': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'shares_removed': {'$ref': '#/properties/latest/anyOf/0/properties/changes/anyOf/0/properties/split_factor'}, 'price_corrected': {'type': ['boolean', 'null'], 'description': "true when values use the holders' median implied price instead of a quarter-end close that was off by > 50%"}, 'comparability_reason': {'$ref': '#/properties/latest/anyOf/0/properties/quarter', 'description': "ko.io's prose for the comparability state; null when comparable"}, 'flow_excluded_filers': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased', 'description': 'Classified filers left out of share/value flows (implausible row); still counted as holders'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'equity_filer_baseline: common stock only (option legs excluded); one holder per filer CIK; only filers with a usable prior-quarter baseline are classified. Same names/values as ko.io REST `changes`. A null share/value flow means UNKNOWN (withheld), never zero. null = ko.io could not compute `changes` for this quarter; absent when ko.io did not send it.'}, 'quarter': {'type': ['string', 'null']}, 'net_value': {'anyOf': [{'$ref': '#/properties/latest/anyOf/0/properties/net_shares/anyOf/0'}, {'type': 'null'}], 'description': 'null = unknown (withheld, see null_reason), never zero'}, 'net_shares': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'null = unknown (withheld, see null_reason), never zero'}, 'null_reason': {'$ref': '#/properties/latest/anyOf/0/properties/quarter', 'description': 'Why the share/value flows are null (e.g. share_ratio_not_a_split_factor, price_conflict_insufficient_samples, value_above_sanity_cap, not_recomputable); null when they are not'}, 'value_added': {'$ref': '#/properties/latest/anyOf/0/properties/shares_added'}, 'shares_added': {'anyOf': [{'$ref': '#/properties/latest/anyOf/0/properties/net_shares/anyOf/0'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'comparability': {'$ref': '#/properties/latest/anyOf/0/properties/quarter', 'description': "comparable | split_adjusted (last quarter's shares x split_factor before classifying) | not_comparable (share and value flows withheld -> null) | first_reported (no 13F filer held it last quarter: no prior-quarter baseline, every holder is new) | unknown (flows could not be recomputed -> null)"}, 'value_removed': {'$ref': '#/properties/latest/anyOf/0/properties/shares_added'}, 'shares_removed': {'$ref': '#/properties/latest/anyOf/0/properties/shares_added'}, 'institutions_new': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_total': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_exited': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_decreased': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'institutions_increased': {'anyOf': [{'$ref': '#/properties/quarters_requested/anyOf/0'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'ticker': {'type': 'string'}, 'plan_note': {'type': ['string', 'null'], 'description': 'Set when the plan limited how many quarters were returned'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/latest/anyOf/0/properties/institutions_increased'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'window_end': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'continuation': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'window_start': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'policy_version': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}, 'effective_period': {'$ref': '#/properties/latest/anyOf/0/properties/quarter'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'quarters_returned': {'type': 'integer'}, 'quarters_requested': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': 'null = the plan default was used'}}, 'additionalProperties': False}
get_stock_financials
Get quarterly or annual financial statements for a company (revenue, net income, EPS, margins, cash flow, debt ratios) from SEC 10-K/10-Q filings. Plan limits: the Free plan and keyless access return only the latest quarterly statement; annual statements and earlier quarters require Pro (a request for them returns an explicit plan-limit error, never 'no data'). structuredContent carries the exact reported values.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1, 'description': 'Number of periods to return (default 8)'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': "Stock ticker symbol (e.g. 'AAPL', 'MSFT')"}, 'period_type': {'enum': ['quarterly', 'annual'], 'type': 'string', 'default': 'quarterly', 'description': 'Period type — quarterly (10-Q) or annual (10-K)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'period_type', 'periods', 'plan_note', 'plan_limit'], 'properties': {'ticker': {'type': 'string'}, 'periods': {'type': 'array', 'items': {'type': 'object', 'required': ['period_end', 'revenue', 'net_income', 'eps_basic', 'eps_diluted', 'gross_profit', 'operating_income', 'operating_cashflow', 'long_term_debt', 'short_term_debt', 'stockholders_equity'], 'properties': {'revenue': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'eps_basic': {'$ref': '#/properties/periods/items/properties/revenue'}, 'net_income': {'$ref': '#/properties/periods/items/properties/revenue'}, 'period_end': {'type': ['string', 'null']}, 'eps_diluted': {'$ref': '#/properties/periods/items/properties/revenue'}, 'gross_profit': {'$ref': '#/properties/periods/items/properties/revenue'}, 'long_term_debt': {'$ref': '#/properties/periods/items/properties/revenue'}, 'short_term_debt': {'$ref': '#/properties/periods/items/properties/revenue'}, 'operating_income': {'$ref': '#/properties/periods/items/properties/revenue'}, 'operating_cashflow': {'$ref': '#/properties/periods/items/properties/revenue'}, 'stockholders_equity': {'$ref': '#/properties/periods/items/properties/revenue'}}, 'additionalProperties': False}}, 'plan_note': {'type': ['string', 'null'], 'description': "Set when the caller's plan limited which periods were returned"}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/periods/items/properties/period_end'}, 'window_end': {'$ref': '#/properties/periods/items/properties/period_end'}, 'continuation': {'$ref': '#/properties/periods/items/properties/period_end'}, 'window_start': {'$ref': '#/properties/periods/items/properties/period_end'}, 'policy_version': {'$ref': '#/properties/periods/items/properties/period_end'}, 'effective_period': {'$ref': '#/properties/periods/items/properties/period_end'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'period_type': {'enum': ['quarterly', 'annual'], 'type': 'string'}}, 'additionalProperties': False}
get_stock_holders
Get top institutional holders of a stock from SEC 13F filings. Shows which hedge funds, mutual funds, and pension funds own the most shares, with quarter-over-quarter changes.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': "Stock ticker symbol (e.g. 'NVDA')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'quarter_date', 'position_basis', 'position_basis_note', 'entity_grain', 'requested_cik', 'family', 'total_institutions', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'cik', 'name', 'shares_held', 'holding_value', 'portfolio_weight_pct', 'share_change', 'action', 'equity_shares', 'call_shares', 'put_shares', 'has_option_legs', 'family', 'reported_by_members'], 'properties': {'cik': {'$ref': '#/properties/quarter_date'}, 'name': {'$ref': '#/properties/quarter_date'}, 'rank': {'type': 'integer'}, 'flags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'e.g. NO_BASELINE (no prior-quarter 13F in ko.io), DEALER (market maker / dealer desk)'}, 'action': {'$ref': '#/properties/quarter_date'}, 'family': {'anyOf': [{'type': 'object', 'required': ['slug', 'name', 'canonical_cik'], 'properties': {'name': {'$ref': '#/properties/quarter_date'}, 'slug': {'$ref': '#/properties/quarter_date'}, 'canonical_cik': {'$ref': '#/properties/quarter_date'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The manager family this holder belongs to, when ko.io attributes it'}, 'put_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'call_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'shares_held': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'share_change': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'equity_action': {'$ref': '#/properties/quarter_date', 'description': 'NEW | ADDED | TRIMMED | EXITED | UNCHANGED on the equity_filer_baseline basis; null = not classified'}, 'equity_shares': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'holding_value': {'$ref': '#/properties/rows/items/properties/shares_held'}, 'has_option_legs': {'type': ['boolean', 'null']}, 'equity_share_change': {'$ref': '#/properties/rows/items/properties/shares_held', 'description': 'Common-share change on the equity_filer_baseline basis (split-restated); null = no usable prior-quarter baseline (unknown, never zero). Absent when ko.io did not send it'}, 'reported_by_members': {'$ref': '#/properties/total_institutions'}, 'portfolio_weight_pct': {'$ref': '#/properties/rows/items/properties/shares_held'}}, 'additionalProperties': False}}, 'family': {'anyOf': [{'type': 'object', 'required': ['slug', 'name', 'canonical_cik'], 'properties': {'name': {'$ref': '#/properties/quarter_date'}, 'slug': {'$ref': '#/properties/quarter_date'}, 'canonical_cik': {'$ref': '#/properties/quarter_date'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/total_institutions/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/total_institutions/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/total_institutions/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/total_institutions'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/quarter_date'}, 'window_end': {'$ref': '#/properties/quarter_date'}, 'continuation': {'$ref': '#/properties/quarter_date'}, 'window_start': {'$ref': '#/properties/quarter_date'}, 'policy_version': {'$ref': '#/properties/quarter_date'}, 'effective_period': {'$ref': '#/properties/quarter_date'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'entity_grain': {'anyOf': [{'enum': ['filer', 'family'], 'type': 'string'}, {'type': 'null'}], 'description': 'filer = each row is one 13F filer CIK (not consolidated into manager families); null = ko.io did not state it'}, 'quarter_date': {'type': ['string', 'null']}, 'requested_cik': {'$ref': '#/properties/quarter_date'}, 'position_basis': {'$ref': '#/properties/quarter_date'}, 'total_institutions': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'position_basis_note': {'$ref': '#/properties/quarter_date'}}, 'additionalProperties': False}
get_stock_price
Get historical daily stock prices (OHLC). Returns a summary by default; set series=true to get the full daily price series (for backtesting / charting).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 500, 'maximum': 3000, 'minimum': 1, 'description': 'Max rows of the daily series to return when series=true.'}, 'period': {'enum': ['1y', '3y', '5y', '10y'], 'type': 'string', 'default': '1y', 'description': 'Look-back window'}, 'series': {'type': 'boolean', 'default': False, 'description': 'If true, return the full daily OHLC series (up to `limit` rows) instead of just a summary.'}, 'ticker': {'type': 'string', 'maxLength': 200, 'description': 'Stock ticker symbol'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'period', 'days_requested', 'rows_returned', 'latest', 'period_start', 'total_return_pct', 'period_high_close', 'period_low_close', 'rows', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'open', 'high', 'low', 'close', 'volume'], 'properties': {'low': {'$ref': '#/properties/latest/anyOf/0/properties/close'}, 'date': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'high': {'$ref': '#/properties/latest/anyOf/0/properties/close'}, 'open': {'$ref': '#/properties/latest/anyOf/0/properties/close'}, 'close': {'$ref': '#/properties/latest/anyOf/0/properties/close'}, 'volume': {'$ref': '#/properties/latest/anyOf/0/properties/close'}}, 'additionalProperties': False}, 'description': 'The rows rendered: the full series (series=true, up to limit) or the latest 10'}, 'latest': {'anyOf': [{'type': 'object', 'required': ['date', 'close'], 'properties': {'date': {'type': ['string', 'null']}, 'close': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'period': {'type': 'string'}, 'ticker': {'type': 'string'}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'window_end': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'continuation': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'window_start': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'policy_version': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'effective_period': {'$ref': '#/properties/latest/anyOf/0/properties/date'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}, 'period_start': {'anyOf': [{'type': 'object', 'required': ['date', 'close'], 'properties': {'date': {'$ref': '#/properties/latest/anyOf/0/properties/date'}, 'close': {'$ref': '#/properties/latest/anyOf/0/properties/close'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'rows_returned': {'type': 'integer'}, 'days_requested': {'type': 'integer'}, 'period_low_close': {'$ref': '#/properties/latest/anyOf/0/properties/close'}, 'total_return_pct': {'anyOf': [{'$ref': '#/properties/latest/anyOf/0/properties/close/anyOf/0'}, {'type': 'null'}], 'description': '(latest close - period-start close) / period-start close x 100, from the returned rows'}, 'period_high_close': {'$ref': '#/properties/latest/anyOf/0/properties/close'}}, 'additionalProperties': False}
get_stock_profile
Get a company's profile — sector, market cap, price, P/E ratio, 52-week range, beta, dividend yield, and other key financials.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'maxLength': 200, 'description': "Stock ticker symbol (e.g. 'AAPL', 'NVDA', 'MSFT')"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'stock', 'position_basis', 'top_holders'], 'properties': {'stock': {'type': 'object', 'required': ['sector', 'industry', 'market_cap', 'current_price', 'price_date', 'previous_close', 'fifty_two_week_high', 'fifty_two_week_low', 'pe_ratio', 'eps', 'beta', 'dividend_yield_pct', 'profit_margins', 'avg_volume'], 'properties': {'eps': {'$ref': '#/properties/stock/properties/market_cap'}, 'beta': {'$ref': '#/properties/stock/properties/market_cap'}, 'sector': {'type': ['string', 'null']}, 'industry': {'$ref': '#/properties/stock/properties/sector'}, 'pe_ratio': {'$ref': '#/properties/stock/properties/market_cap'}, 'avg_volume': {'$ref': '#/properties/stock/properties/market_cap'}, 'market_cap': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'price_date': {'$ref': '#/properties/stock/properties/sector'}, 'current_price': {'$ref': '#/properties/stock/properties/market_cap'}, 'previous_close': {'$ref': '#/properties/stock/properties/market_cap'}, 'profit_margins': {'$ref': '#/properties/stock/properties/market_cap'}, 'dividend_yield_pct': {'$ref': '#/properties/stock/properties/market_cap'}, 'fifty_two_week_low': {'$ref': '#/properties/stock/properties/market_cap'}, 'fifty_two_week_high': {'$ref': '#/properties/stock/properties/market_cap'}}, 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'top_holders': {'type': 'array', 'items': {'type': 'object', 'required': ['cik', 'name', 'shares_held', 'holding_value', 'portfolio_weight_pct', 'equity_shares', 'call_shares', 'put_shares', 'has_option_legs'], 'properties': {'cik': {'$ref': '#/properties/stock/properties/sector'}, 'name': {'$ref': '#/properties/stock/properties/sector'}, 'put_shares': {'$ref': '#/properties/stock/properties/market_cap'}, 'call_shares': {'$ref': '#/properties/stock/properties/market_cap'}, 'shares_held': {'$ref': '#/properties/stock/properties/market_cap'}, 'equity_shares': {'$ref': '#/properties/stock/properties/market_cap'}, 'holding_value': {'$ref': '#/properties/stock/properties/market_cap'}, 'has_option_legs': {'type': ['boolean', 'null']}, 'portfolio_weight_pct': {'$ref': '#/properties/stock/properties/market_cap'}}, 'additionalProperties': False}}, 'position_basis': {'$ref': '#/properties/stock/properties/sector'}}, 'additionalProperties': False}
get_treasury_yields
Get U.S. Treasury yield curve data — daily yields for maturities from 1-month to 30-year. Essential for understanding interest rate environment and yield curve shape.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 3650, 'minimum': 1, 'description': 'Days of daily history to return, 1-3650 (default 30 = last month)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['unit', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'm1', 'm3', 'm6', 'y1', 'y2', 'y5', 'y10', 'y30'], 'properties': {'m1': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'm3': {'$ref': '#/properties/rows/items/properties/m1'}, 'm6': {'$ref': '#/properties/rows/items/properties/m1'}, 'y1': {'$ref': '#/properties/rows/items/properties/m1'}, 'y2': {'$ref': '#/properties/rows/items/properties/m1'}, 'y5': {'$ref': '#/properties/rows/items/properties/m1'}, 'y10': {'$ref': '#/properties/rows/items/properties/m1'}, 'y30': {'$ref': '#/properties/rows/items/properties/m1'}, 'date': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'unit': {'type': 'string', 'const': 'percent'}}, 'additionalProperties': False}
list_insider_traders
List executives/insiders who have recently traded their company stock. Filter by role (CEO only or all executives). Useful for finding notable insider buying/selling activity across the market.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1}, 'role': {'enum': ['ceo', 'executive', 'all'], 'type': 'string', 'default': 'all', 'description': 'Filter by role (case-insensitive): CEO, executive/officer, or all'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'search': {'type': 'string', 'maxLength': 200, 'description': 'Search by name or ticker'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['search', 'role', 'grain', 'rows', 'paging', 'plan_limit'], 'properties': {'role': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'company_name', 'person_cik', 'person_name', 'officer_title', 'trade_date', 'form4_lines', 'ps_value_bought', 'ps_value_sold', 'all_value_acquired', 'all_value_disposed', 'shares_owned_after'], 'properties': {'ticker': {'$ref': '#/properties/search'}, 'person_cik': {'$ref': '#/properties/search'}, 'trade_date': {'$ref': '#/properties/search'}, 'form4_lines': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'person_name': {'$ref': '#/properties/search'}, 'company_name': {'$ref': '#/properties/search'}, 'officer_title': {'$ref': '#/properties/search'}, 'ps_value_sold': {'anyOf': [{'$ref': '#/properties/rows/items/properties/ps_value_bought/anyOf/0'}, {'type': 'null'}], 'description': 'Code S lines (open-market or private sale), priced lines only'}, 'ps_value_bought': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Code P lines (open-market or private purchase), priced lines only'}, 'all_value_acquired': {'anyOf': [{'$ref': '#/properties/rows/items/properties/ps_value_bought/anyOf/0'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'all_value_disposed': {'$ref': '#/properties/rows/items/properties/all_value_acquired'}, 'shares_owned_after': {'$ref': '#/properties/rows/items/properties/all_value_acquired'}}, 'additionalProperties': False}}, 'grain': {'type': 'string', 'const': 'insider_trade_date'}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/rows/items/properties/form4_lines/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'search': {'type': ['string', 'null']}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/rows/items/properties/form4_lines'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/search'}, 'window_end': {'$ref': '#/properties/search'}, 'continuation': {'$ref': '#/properties/search'}, 'window_start': {'$ref': '#/properties/search'}, 'policy_version': {'$ref': '#/properties/search'}, 'effective_period': {'$ref': '#/properties/search'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
list_institutions
List top institutional investors (hedge funds, mutual funds, etc.) tracked in the SEC 13F database. Supports search by name and pagination.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Results per page'}, 'search': {'type': 'string', 'maxLength': 200, 'description': "Search by institution name, CIK, or manager name (e.g. 'Klarman' -> Baupost)"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['search', 'rows', 'paging', 'plan_limit'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['cik', 'name', 'slug', 'rank', 'category', 'portfolio_value', 'stock_count'], 'properties': {'cik': {'$ref': '#/properties/search'}, 'name': {'$ref': '#/properties/search'}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'slug': {'$ref': '#/properties/search'}, 'category': {'$ref': '#/properties/search'}, 'stock_count': {'$ref': '#/properties/rows/items/properties/rank'}, 'portfolio_value': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}}, 'additionalProperties': False}}, 'paging': {'type': 'object', 'required': ['page', 'per_page', 'returned', 'total_count', 'has_more', 'next_page', 'continuation', 'plan_row_cap', 'truncated_by_plan'], 'properties': {'page': {'type': 'integer'}, 'has_more': {'type': ['boolean', 'null'], 'description': 'null = a full page came back and more MAY exist'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer'}, 'next_page': {'anyOf': [{'$ref': '#/properties/rows/items/properties/rank/anyOf/0'}, {'type': 'null'}], 'description': 'Next page THIS caller can open; null when there is none (or sign-in is required)'}, 'total_count': {'anyOf': [{'$ref': '#/properties/rows/items/properties/rank/anyOf/0'}, {'type': 'null'}], 'description': 'Total rows matching the request, when ko.io reported it'}, 'continuation': {'type': ['string', 'null'], 'description': 'SIGNIN_REQUIRED = page>1 needs a (free) ko.io API key'}, 'plan_row_cap': {'anyOf': [{'$ref': '#/properties/rows/items/properties/rank/anyOf/0'}, {'type': 'null'}], 'description': "Row cap the caller's plan applied to this page, if any"}, 'truncated_by_plan': {'type': 'boolean', 'description': "True when the plan's row cap withheld rows from this page"}}, 'description': 'Paging state reconciled from ko.io meta.total_count and meta.softwall', 'additionalProperties': False}, 'search': {'type': ['string', 'null']}, 'plan_limit': {'anyOf': [{'type': 'object', 'required': ['policy_version', 'window_start', 'window_end', 'effective_period', 'date_basis', 'row_cap', 'truncated', 'continuation'], 'properties': {'row_cap': {'$ref': '#/properties/rows/items/properties/rank'}, 'truncated': {'type': ['boolean', 'null']}, 'date_basis': {'$ref': '#/properties/search'}, 'window_end': {'$ref': '#/properties/search'}, 'continuation': {'$ref': '#/properties/search'}, 'window_start': {'$ref': '#/properties/search'}, 'policy_version': {'$ref': '#/properties/search'}, 'effective_period': {'$ref': '#/properties/search'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The Free/keyless plan limits ko.io applied to this answer (null for paid callers)'}}, 'additionalProperties': False}
search
Search across institutions, stocks, and insider traders in the ko.io SEC database. Institutions match by firm name OR manager name ('Seth Klarman' -> Baupost, 'Ackman' -> Pershing Square; person hits carry matched_person). Use this first when you have a name but need the CIK number, ticker, or slug to use with other tools.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Max results per category'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Search query — company name, ticker, person name, or institution name (min 2 characters)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'institutions', 'stocks', 'insiders', 'congress'], 'properties': {'query': {'type': 'string'}, 'stocks': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'name', 'sector', 'industry', 'market_cap'], 'properties': {'name': {'$ref': '#/properties/institutions/items/properties/cik'}, 'sector': {'$ref': '#/properties/institutions/items/properties/cik'}, 'ticker': {'$ref': '#/properties/institutions/items/properties/cik'}, 'industry': {'$ref': '#/properties/institutions/items/properties/cik'}, 'market_cap': {'$ref': '#/properties/institutions/items/properties/aum'}}, 'additionalProperties': False}}, 'congress': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type'], 'properties': {'name': {'$ref': '#/properties/institutions/items/properties/cik'}, 'type': {'$ref': '#/properties/institutions/items/properties/cik'}}, 'additionalProperties': False}}, 'insiders': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'ticker', 'type'], 'properties': {'name': {'$ref': '#/properties/institutions/items/properties/cik'}, 'type': {'$ref': '#/properties/institutions/items/properties/cik'}, 'ticker': {'$ref': '#/properties/institutions/items/properties/cik'}}, 'additionalProperties': False}}, 'institutions': {'type': 'array', 'items': {'type': 'object', 'required': ['cik', 'name', 'slug', 'category', 'aum', 'rank', 'matched_person'], 'properties': {'aum': {'anyOf': [{'type': 'string', 'pattern': '^-?\\d+(\\.\\d+)?([eE][-+]?\\d+)?$'}, {'type': 'null'}], 'description': 'Exact decimal string as served by ko.io (not rounded); null = unknown'}, 'cik': {'type': ['string', 'null']}, 'name': {'$ref': '#/properties/institutions/items/properties/cik'}, 'rank': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'slug': {'$ref': '#/properties/institutions/items/properties/cik'}, 'category': {'$ref': '#/properties/institutions/items/properties/cik'}, 'matched_person': {'anyOf': [{'type': 'object', 'required': ['name', 'role'], 'properties': {'name': {'$ref': '#/properties/institutions/items/properties/cik'}, 'role': {'$ref': '#/properties/institutions/items/properties/cik'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
sec_get_filing_document
Get a source document from a SEC filing, served by ko.io. Returns a ko.io LINK to the rendered document (open in a browser) plus, optionally, an extracted text excerpt. Never returns the whole file — for full content, open the link or request a specific section. Requires a paid ko.io plan (Pro): on Free or keyless access the call returns an explicit plan-limit error. Use sec_list_filings / sec_get_filing_index (open on every plan) to find filings and their files.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik', 'accession_no'], 'properties': {'cik': {'type': 'string', 'maxLength': 200, 'description': 'Company CIK number'}, 'file': {'type': 'string', 'maxLength': 200, 'description': 'File name within the filing (from sec_get_filing_index). Omit for the primary document.'}, 'accession_no': {'type': 'string', 'maxLength': 200, 'description': "Accession number, e.g. '0000320193-23-000106'"}, 'include_excerpt': {'type': 'boolean', 'default': True, 'description': 'Include a text excerpt (first ~6000 chars) in the response'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik', 'accession_no', 'file', 'link', 'excerpt'], 'properties': {'cik': {'type': 'string'}, 'file': {'type': ['string', 'null']}, 'link': {'type': 'object', 'required': ['url', 'signed', 'expires_at'], 'properties': {'url': {'type': 'string'}, 'signed': {'type': 'boolean', 'description': 'true = ko.io-signed, expiring link a browser can open; false = needs a paid API key'}, 'expires_at': {'$ref': '#/properties/file'}}, 'additionalProperties': False}, 'excerpt': {'type': 'object', 'required': ['status', 'text', 'chars_total', 'truncated'], 'properties': {'text': {'$ref': '#/properties/file'}, 'status': {'enum': ['ok', 'unavailable', 'not_requested'], 'type': 'string'}, 'truncated': {'type': ['boolean', 'null']}, 'chars_total': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'accession_no': {'type': 'string'}}, 'additionalProperties': False}
sec_get_filing_index
Enumerate every file in a single SEC filing (primary document, exhibits, images, XBRL, the full .txt submission). Pass a file name from here to sec_get_filing_document.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik', 'accession_no'], 'properties': {'cik': {'type': 'string', 'maxLength': 200, 'description': 'Company CIK number'}, 'accession_no': {'type': 'string', 'maxLength': 200, 'description': "Accession number, e.g. '0000320193-23-000106'"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik', 'accession', 'files'], 'properties': {'cik': {'type': ['string', 'null']}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'type', 'size_bytes', 'last_modified'], 'properties': {'name': {'$ref': '#/properties/cik'}, 'type': {'$ref': '#/properties/cik'}, 'size_bytes': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'last_modified': {'$ref': '#/properties/cik'}}, 'additionalProperties': False}}, 'accession': {'$ref': '#/properties/cik'}}, 'additionalProperties': False}
sec_list_filings
List an entity's SEC filings from EDGAR (most recent first), each with its accession number. Provide the company's CIK (use search or get_stock_profile to find it). Returns accession numbers to pass to sec_get_filing_index / sec_get_filing_document.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik'], 'properties': {'to': {'type': 'string', 'maxLength': 200, 'description': 'Latest filing date, ISO YYYY-MM-DD'}, 'cik': {'type': 'string', 'maxLength': 200, 'description': "Company CIK number (e.g. '320193' for Apple)"}, 'from': {'type': 'string', 'maxLength': 200, 'description': 'Earliest filing date, ISO YYYY-MM-DD'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max filings to return'}, 'form_type': {'type': 'string', 'maxLength': 200, 'description': "Exact SEC form filter, e.g. '10-K', '13F-HR', '8-K'"}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cik', 'filters', 'rows'], 'properties': {'cik': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['filing_date', 'form', 'accession', 'primary_document', 'description'], 'properties': {'form': {'$ref': '#/properties/filters/properties/form_type'}, 'accession': {'$ref': '#/properties/filters/properties/form_type'}, 'description': {'$ref': '#/properties/filters/properties/form_type'}, 'filing_date': {'$ref': '#/properties/filters/properties/form_type'}, 'primary_document': {'$ref': '#/properties/filters/properties/form_type'}}, 'additionalProperties': False}}, 'filters': {'type': 'object', 'required': ['form_type', 'from', 'to'], 'properties': {'to': {'$ref': '#/properties/filters/properties/form_type'}, 'from': {'$ref': '#/properties/filters/properties/form_type'}, 'form_type': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
Geändert
get_stock_activity
1. October 2026 02:50
Geändert
get_stock_holders
1. October 2026 02:50
Geändert
get_stock_activity
29. September 2026 02:58
Geändert
get_crypto_holder
27. September 2026 02:49
Geändert
get_crypto_holders
27. September 2026 02:49
Geändert
get_crypto_exposure
27. September 2026 02:49
Geändert
get_financial_stress
27. September 2026 02:49
Geändert
get_ftd_data
27. September 2026 02:49
Geändert
get_economic_indicators
27. September 2026 02:49
Geändert
get_fed_rates
27. September 2026 02:49
Geändert
get_treasury_yields
27. September 2026 02:49
Geändert
get_stock_financials
27. September 2026 02:49
Geändert
sec_get_filing_document
27. September 2026 02:49
Geändert
sec_get_filing_index
27. September 2026 02:49
Geändert
sec_list_filings
27. September 2026 02:49
Geändert
get_form144_notices
27. September 2026 02:49
Geändert
search
27. September 2026 02:49
Geändert
get_congress_member
27. September 2026 02:49
Geändert
get_congress_trades
27. September 2026 02:49
Geändert
list_insider_traders
27. September 2026 02:49
Geändert
get_insider_trades
27. September 2026 02:49
Geändert
get_stock_price
27. September 2026 02:49
Geändert
get_stock_activity
27. September 2026 02:49
Geändert
get_stock_holders
27. September 2026 02:49
Geändert
get_stock_profile
27. September 2026 02:49
Geändert
list_institutions
27. September 2026 02:49
Geändert
get_institution_holdings
27. September 2026 02:49
Hinzugefügt
get_crypto_holder
17. September 2026 12:52
Hinzugefügt
get_crypto_holders
17. September 2026 12:52
Hinzugefügt
get_crypto_exposure
17. September 2026 12:52

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

io.github.valuein/mcp-sec-edgar

Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…

equibles

io.github.daniel3303/equibles

Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…

EventTrader Research (read-only)

com.cymetica/event-trader-research

Offers read-only research on funds, event markets, order books, arena markets, crypto pools, backtests, and related financial ana…

World Monitor

app.worldmonitor/mcp

Delivers live geopolitical, conflict, country-risk, market, energy, climate, aviation, supply-chain, and macroeconomic intelligen…

Slacking.biz — SEC Financial Data + US Economics + Demographics + FX

io.github.Th3Slack3r/slacking-biz

Provides financial, economic, demographic, foreign-exchange, regulatory, and company research data from public sources.

TipRanks

com.tipranks/tipranks

Provides market research and investment data covering stocks, ETFs, commodities, crypto, forex, analyst ratings, news, earnings, …

welcome

com.thebalancedinvestorclub/welcome

Provides market data and educational investment research for stocks, ETFs, and crypto, including fundamentals, prices, macro indi…

Currencyformat

io.github.pipeworx-io/currencyformat

Formats localized numbers and currencies and also provides routed access to structured financial, market, government, and researc…