ko-mcp
Qué hace este MCP
Provides SEC filings, institutional holdings, insider and congressional trades, stock data, Treasury yields, rates, crypto ETF exposure, and macro indicators.
Herramientas
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Esquema de entrada
{'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}
Esquema de salida
{'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}
Cambios recientes en herramientas
Servidores MCP similares
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…
EventTrader Research (read-only)
Offers read-only research on funds, event markets, order books, arena markets, crypto pools, backtests, and related financial ana…
World Monitor
Delivers live geopolitical, conflict, country-risk, market, energy, climate, aviation, supply-chain, and macroeconomic intelligen…
Slacking.biz — SEC Financial Data + US Economics + Demographics + FX
Provides financial, economic, demographic, foreign-exchange, regulatory, and company research data from public sources.
TipRanks
Provides market research and investment data covering stocks, ETFs, commodities, crypto, forex, analyst ratings, news, earnings, …
welcome
Provides market data and educational investment research for stocks, ETFs, and crypto, including fundamentals, prices, macro indi…
Currencyformat
Formats localized numbers and currencies and also provides routed access to structured financial, market, government, and researc…