{"openapi":"3.1.0","info":{"title":"StockDrifts API","description":"Public REST API for StockDrifts insider, holdings, and KPI data. Authenticate with `Authorization: Bearer sd_live_*`.","version":"0.1.0"},"paths":{"/v1/kr/insiders/{stock_code}/trades":{"get":{"tags":["insiders-kr"],"summary":"Insider trades for one KR ticker","operationId":"list_insider_trades_kr","parameters":[{"name":"stock_code","in":"path","required":true,"schema":{"type":"string","title":"Stock Code"}},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"default":180,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0-indexed page number.","default":0,"title":"Page"},"description":"0-indexed page number."},{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter to BUY only, SELL only, or both. Defaults to both.","title":"Transaction Types"},"description":"Filter to BUY only, SELL only, or both. Defaults to both."},{"name":"min_value_krw","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop trades worth less than this many KRW.","title":"Min Value Krw"},"description":"Drop trades worth less than this many KRW."},{"name":"acquisition_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to one acquisition_method (e.g. '장내매수' for open-market buys). Useful for excluding stock-dividend (주식배당) bookings.","title":"Acquisition Method"},"description":"Filter to one acquisition_method (e.g. '장내매수' for open-market buys). Useful for excluding stock-dividend (주식배당) bookings."},{"name":"position_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman.","title":"Position Category"},"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsiderTrade"},"title":"Response List Insider Trades Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/{stock_code}/summary":{"get":{"tags":["insiders-kr"],"summary":"Pre-aggregated insider summary for one KR ticker","operationId":"get_insider_summary_kr","parameters":[{"name":"stock_code","in":"path","required":true,"schema":{"type":"string","title":"Stock Code"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StockSummaryMatRow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/recent":{"get":{"tags":["insiders-kr"],"summary":"Recent KR insider trades across all tickers","operationId":"list_recent_trades_kr","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0-indexed page number.","default":0,"title":"Page"},"description":"0-indexed page number."},{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter to BUY only, SELL only, or both. Defaults to both.","title":"Transaction Types"},"description":"Filter to BUY only, SELL only, or both. Defaults to both."},{"name":"min_value_krw","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop trades worth less than this many KRW.","title":"Min Value Krw"},"description":"Drop trades worth less than this many KRW."},{"name":"acquisition_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to one acquisition_method (e.g. '장내매수' for open-market buys). Useful for excluding stock-dividend (주식배당) bookings.","title":"Acquisition Method"},"description":"Filter to one acquisition_method (e.g. '장내매수' for open-market buys). Useful for excluding stock-dividend (주식배당) bookings."},{"name":"position_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman.","title":"Position Category"},"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry sector (e.g. 'Semiconductors').","title":"Sector"},"description":"Industry sector (e.g. 'Semiconductors')."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsiderTrade"},"title":"Response List Recent Trades Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/top-buys":{"get":{"tags":["insiders-kr"],"summary":"Top KR tickers by aggregated insider buying over a window","operationId":"list_top_buys_kr","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"high_signal_only","in":"query","required":false,"schema":{"type":"boolean","description":"Default true — restrict to Tier-1 open-market buys (장내매수) and drop program trades, matching the dashboard's High Signal view. Pass false to include stock-dividend bookings, option exercises, etc.","default":true,"title":"High Signal Only"},"description":"Default true — restrict to Tier-1 open-market buys (장내매수) and drop program trades, matching the dashboard's High Signal view. Pass false to include stock-dividend bookings, option exercises, etc."},{"name":"acquisition_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override the high-signal filter with a specific acquisition_method (e.g. '장내매수', '주식배당').","title":"Acquisition Method"},"description":"Override the high-signal filter with a specific acquisition_method (e.g. '장내매수', '주식배당')."},{"name":"min_value_krw","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop source trades worth less than this many KRW.","title":"Min Value Krw"},"description":"Drop source trades worth less than this many KRW."},{"name":"min_insider_count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Drop tickers with fewer than this many distinct insiders.","default":1,"title":"Min Insider Count"},"description":"Drop tickers with fewer than this many distinct insiders."},{"name":"position_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman.","title":"Position Category"},"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry sector.","title":"Sector"},"description":"Industry sector."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopInsiderTickerKR"},"title":"Response List Top Buys Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/top-sells":{"get":{"tags":["insiders-kr"],"summary":"Top KR tickers by aggregated insider selling over a window","operationId":"list_top_sells_kr","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"high_signal_only","in":"query","required":false,"schema":{"type":"boolean","description":"Default true — restrict to Tier-1 open-market sells (장내매도) and drop program trades. Pass false to include all sell types.","default":true,"title":"High Signal Only"},"description":"Default true — restrict to Tier-1 open-market sells (장내매도) and drop program trades. Pass false to include all sell types."},{"name":"acquisition_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override the high-signal filter with a specific acquisition_method.","title":"Acquisition Method"},"description":"Override the high-signal filter with a specific acquisition_method."},{"name":"min_value_krw","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop source trades worth less than this many KRW.","title":"Min Value Krw"},"description":"Drop source trades worth less than this many KRW."},{"name":"min_insider_count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Drop tickers with fewer than this many distinct insiders.","default":1,"title":"Min Insider Count"},"description":"Drop tickers with fewer than this many distinct insiders."},{"name":"position_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman.","title":"Position Category"},"description":"Filter to a position bucket. One of: CEO, CFO, COO, CTO, Chairman, Co-CEO, President, Vice Chairman."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Industry sector.","title":"Sector"},"description":"Industry sector."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopInsiderTickerKR"},"title":"Response List Top Sells Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/opportunities":{"get":{"tags":["insiders-kr"],"summary":"Recent KR open-market BUYs whose price hasn't moved much yet","operationId":"list_opportunities_kr","parameters":[{"name":"period_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Period Days"}},{"name":"max_return_pct","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Drop trades whose price has already moved more than this many percent (positive or negative) since the filing.","default":5.0,"title":"Max Return Pct"},"description":"Drop trades whose price has already moved more than this many percent (positive or negative) since the filing."},{"name":"min_value_krw","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Drop trades smaller than this many KRW.","default":100000000,"title":"Min Value Krw"},"description":"Drop trades smaller than this many KRW."},{"name":"exclude_asset_mgrs","in":"query","required":false,"schema":{"type":"boolean","description":"Drop institutional rows (자산운용/투자신탁/연금).","default":true,"title":"Exclude Asset Mgrs"},"description":"Drop institutional rows (자산운용/투자신탁/연금)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsiderTrade"},"title":"Response List Opportunities Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/plans":{"get":{"tags":["insiders-kr"],"summary":"KR pre-disclosure (D005) plans — announced but not yet executed trades","operationId":"list_plans_kr","parameters":[{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"default":90,"title":"Days"}},{"name":"stock_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stock Code"}},{"name":"is_withdrawal","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter to withdrawn (or non-withdrawn) plans.","title":"Is Withdrawal"},"description":"Filter to withdrawn (or non-withdrawn) plans."},{"name":"is_amendment","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter to amendment (or original) filings.","title":"Is Amendment"},"description":"Filter to amendment (or original) filings."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0-indexed page number.","default":0,"title":"Page"},"description":"0-indexed page number."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsiderPlanDetail"},"title":"Response List Plans Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/plans/{rcept_no}/executions":{"get":{"tags":["insiders-kr"],"summary":"Cross-reference one D005 plan against its actual executions","operationId":"get_plan_executions_kr","parameters":[{"name":"rcept_no","in":"path","required":true,"schema":{"type":"string","title":"Rcept No"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanExecutionSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/companies/search":{"get":{"tags":["insiders-kr"],"summary":"Search KR companies by stock_code, Korean name, or English name","operationId":"search_companies_kr","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term — matches stock_code prefix, company_name (Korean) substring, or company_name_en substring. Omit to list all companies by trade volume.","title":"Q"},"description":"Search term — matches stock_code prefix, company_name (Korean) substring, or company_name_en substring. Omit to list all companies by trade volume."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CompanySearchHit"},"title":"Response Search Companies Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kr/insiders/leaderboard":{"get":{"tags":["insiders-kr"],"summary":"Top KR insiders by historical avg return on their buys","operationId":"list_leaderboard_kr","parameters":[{"name":"min_buys","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Minimum lifetime purchase count to appear.","default":3,"title":"Min Buys"},"description":"Minimum lifetime purchase count to appear."},{"name":"exclude_asset_mgrs","in":"query","required":false,"schema":{"type":"boolean","description":"Drop institutional rows (자산운용/투자신탁/연금).","default":true,"title":"Exclude Asset Mgrs"},"description":"Drop institutional rows (자산운용/투자신탁/연금)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InsiderLeaderboardEntry"},"title":"Response List Leaderboard Kr"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/{stock_code}/filings":{"get":{"tags":["insiders-jp"],"summary":"Shareholding-report filings for one JP ticker","operationId":"list_insider_filings_jp","parameters":[{"name":"stock_code","in":"path","required":true,"schema":{"type":"string","title":"Stock Code"}},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":9999,"minimum":1},{"type":"null"}],"default":365,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0-indexed page number.","default":0,"title":"Page"},"description":"0-indexed page number."},{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter to specific transaction types (e.g. ['BUY']).","title":"Transaction Types"},"description":"Filter to specific transaction types (e.g. ['BUY'])."},{"name":"min_value_jpy","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop filings worth less than this many JPY.","title":"Min Value Jpy"},"description":"Drop filings worth less than this many JPY."},{"name":"purpose_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to one purpose_category (e.g. 'activist', 'passive').","title":"Purpose Category"},"description":"Filter to one purpose_category (e.g. 'activist', 'passive')."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPShareholdingReport"},"title":"Response List Insider Filings Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/{stock_code}/summary":{"get":{"tags":["insiders-jp"],"summary":"Pre-aggregated shareholding summary for one JP ticker","operationId":"get_insider_summary_jp","parameters":[{"name":"stock_code","in":"path","required":true,"schema":{"type":"string","title":"Stock Code"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JPStockSummaryMatRow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/recent":{"get":{"tags":["insiders-jp"],"summary":"Recent JP filings across all tickers","operationId":"list_recent_filings_jp","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"purpose_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"0-indexed page number.","default":0,"title":"Page"},"description":"0-indexed page number."},{"name":"transaction_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter to specific transaction types (e.g. ['BUY']).","title":"Transaction Types"},"description":"Filter to specific transaction types (e.g. ['BUY'])."},{"name":"min_value_jpy","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop filings worth less than this many JPY.","title":"Min Value Jpy"},"description":"Drop filings worth less than this many JPY."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPShareholdingReport"},"title":"Response List Recent Filings Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/top-buys":{"get":{"tags":["insiders-jp"],"summary":"Top JP tickers by aggregated insider buying over a window","operationId":"list_top_buys_jp","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"high_signal_only","in":"query","required":false,"schema":{"type":"boolean","description":"Default true — drop correction/amendment filings (paperwork).","default":true,"title":"High Signal Only"},"description":"Default true — drop correction/amendment filings (paperwork)."},{"name":"purpose_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter source filings to one purpose_category (e.g. 'activist').","title":"Purpose Category"},"description":"Filter source filings to one purpose_category (e.g. 'activist')."},{"name":"min_value_jpy","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop source filings worth less than this many JPY.","title":"Min Value Jpy"},"description":"Drop source filings worth less than this many JPY."},{"name":"min_investor_count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Drop tickers with fewer than this many distinct investors.","default":1,"title":"Min Investor Count"},"description":"Drop tickers with fewer than this many distinct investors."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopInsiderTickerJP"},"title":"Response List Top Buys Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/top-sells":{"get":{"tags":["insiders-jp"],"summary":"Top JP tickers by aggregated insider selling over a window","operationId":"list_top_sells_jp","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"high_signal_only","in":"query","required":false,"schema":{"type":"boolean","description":"Default true — drop correction/amendment filings (paperwork).","default":true,"title":"High Signal Only"},"description":"Default true — drop correction/amendment filings (paperwork)."},{"name":"purpose_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter source filings to one purpose_category.","title":"Purpose Category"},"description":"Filter source filings to one purpose_category."},{"name":"min_value_jpy","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop source filings worth less than this many JPY.","title":"Min Value Jpy"},"description":"Drop source filings worth less than this many JPY."},{"name":"min_investor_count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Drop tickers with fewer than this many distinct investors.","default":1,"title":"Min Investor Count"},"description":"Drop tickers with fewer than this many distinct investors."},{"name":"market_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Market-cap bucket. One of: mega, large, mid, small, micro.","title":"Market Cap"},"description":"Market-cap bucket. One of: mega, large, mid, small, micro."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopInsiderTickerJP"},"title":"Response List Top Sells Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/investors/{filer_edinet_code}/filings":{"get":{"tags":["insiders-jp"],"summary":"All JP filings made by one investor (EDINET code)","operationId":"list_investor_filings_jp","parameters":[{"name":"filer_edinet_code","in":"path","required":true,"schema":{"type":"string","title":"Filer Edinet Code"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPShareholdingReport"},"title":"Response List Investor Filings Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/opportunities":{"get":{"tags":["insiders-jp"],"summary":"Recent JP BUY/INITIAL filings whose price hasn't moved much yet","operationId":"list_opportunities_jp","parameters":[{"name":"period_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Period Days"}},{"name":"max_return_pct","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Drop filings whose price has already moved more than this many percent (positive or negative) since the filing.","default":5.0,"title":"Max Return Pct"},"description":"Drop filings whose price has already moved more than this many percent (positive or negative) since the filing."},{"name":"min_value_jpy","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Drop filings smaller than this many JPY.","default":100000000,"title":"Min Value Jpy"},"description":"Drop filings smaller than this many JPY."},{"name":"exclude_passive","in":"query","required":false,"schema":{"type":"boolean","description":"Drop filings with purpose_category='passive'.","default":true,"title":"Exclude Passive"},"description":"Drop filings with purpose_category='passive'."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPShareholdingReport"},"title":"Response List Opportunities Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/leaderboard":{"get":{"tags":["insiders-jp"],"summary":"Top JP investors by star rating + avg return","operationId":"list_leaderboard_jp","parameters":[{"name":"min_buys","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Minimum lifetime purchase count to appear.","default":3,"title":"Min Buys"},"description":"Minimum lifetime purchase count to appear."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPInvestorLeaderboardEntry"},"title":"Response List Leaderboard Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/convergence":{"get":{"tags":["insiders-jp"],"summary":"JP tickers with multiple distinct investors filing on the same name","operationId":"list_convergence_jp","parameters":[{"name":"min_investors","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":2,"description":"Minimum distinct investors per ticker.","default":3,"title":"Min Investors"},"description":"Minimum distinct investors per ticker."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPStockSummaryMatRow"},"title":"Response List Convergence Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jp/insiders/companies/search":{"get":{"tags":["insiders-jp"],"summary":"Search JP companies by stock_code, Japanese name, or English name","operationId":"search_companies_jp","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term — matches stock_code prefix, company_name (Japanese) substring, or company_name_en substring. Omit to list all companies by filing volume.","title":"Q"},"description":"Search term — matches stock_code prefix, company_name (Japanese) substring, or company_name_en substring. Omit to list all companies by filing volume."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JPCompanySearchHit"},"title":"Response Search Companies Jp"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/search":{"get":{"tags":["holdings"],"summary":"Fuzzy-search investors by name; resolves to CIKs ordered by AUM","description":"Case-insensitive partial-name match against the latest-holdings view. Returns the largest funds first so the most likely match is at the top. Use this to resolve a manager name to a CIK before calling investor-axis tools (`get_investor_holdings_us`, `list_investor_periods_us`, `get_investor_changes_us`).","operationId":"search_investors_us","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Partial manager name (case-insensitive)","title":"Query"},"description":"Partial manager name (case-insensitive)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InvestorSearchHit"},"title":"Response Search Investors Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/sector-exposure":{"get":{"tags":["holdings"],"summary":"Screen investors by sector concentration (e.g. top biotech specialists)","description":"Ranks 13F filers by the share of their portfolio in one sector, computed from sector-tagged top-50 holdings. `tier` buckets: specialist (>=60%), heavy (30-60%), tilted (10-30%), minimal (<10%). Interpretation caveats: corporate venture arms (Gilead, Pfizer, GSK) and single-stock endowments (e.g. Lilly Endowment holds only LLY) rank as specialists — pass `min_positions` (e.g. 5) to screen for genuinely diversified sector pickers. Chain with `get_investor_holdings_us` / `get_investor_changes_us` to see what a specialist is buying now.","operationId":"screen_investor_sector_exposure_us","parameters":[{"name":"sector","in":"query","required":false,"schema":{"type":"string","description":"Sector to rank by: 'biotech' (biotech + pharma industries, the fast path) or a sector name like 'Healthcare', 'Technology', 'Energy'.","default":"biotech","title":"Sector"},"description":"Sector to rank by: 'biotech' (biotech + pharma industries, the fast path) or a sector name like 'Healthcare', 'Technology', 'Energy'."},{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only funds in this tier: specialist | heavy | tilted | minimal.","title":"Tier"},"description":"Only funds in this tier: specialist | heavy | tilted | minimal."},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reporting period: '2026-06-30' or '2026-Q2'. Defaults to latest.","title":"Period"},"description":"Reporting period: '2026-06-30' or '2026-Q2'. Defaults to latest."},{"name":"min_total_value_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Only funds with total portfolio value ≥ this many USD.","title":"Min Total Value Usd"},"description":"Only funds with total portfolio value ≥ this many USD."},{"name":"min_positions","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Only funds with at least this many positions in the sector.","title":"Min Positions"},"description":"Only funds with at least this many positions in the sector."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SectorExposureRow"},"title":"Response Screen Investor Sector Exposure Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/catalyst-record":{"get":{"tags":["holdings"],"summary":"Screen funds by their track record on binary events (any sector)","description":"Ranks 13F filers by how their positions resolved through binary events — single-day moves >= ~25%, price-defined, NOT verified cause labels. In biotech these are trial readouts / FDA decisions / buyouts; elsewhere earnings blowups, guidance cuts, M&A. `sector='all'` (default) ranks across everything; `'biotech'` and lowercased sector names ('technology', 'energy', ...) scope the record. `hit_rate` = pops held / events decided; `impact_usd` is dollar-weighted (position value x event return). Always pass `min_events` (>= 5) — a perfect rate on 2 events is noise. Chain with `get_investor_holdings_us` to see what a proven event-caller is buying now, or `screen_investor_sector_exposure_us` to intersect with sector specialists.","operationId":"screen_investor_catalyst_record_us","parameters":[{"name":"sector","in":"query","required":false,"schema":{"type":"string","description":"Sector bucket: 'all' (rollup), 'biotech', or a lowercased sector name like 'technology' or 'energy'.","default":"all","title":"Sector"},"description":"Sector bucket: 'all' (rollup), 'biotech', or a lowercased sector name like 'technology' or 'energy'."},{"name":"min_events","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Only funds exposed to at least this many events (use >= 5).","default":5,"title":"Min Events"},"description":"Only funds exposed to at least this many events (use >= 5)."},{"name":"min_hit_rate","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"description":"Only funds with hit_rate >= this percent.","title":"Min Hit Rate"},"description":"Only funds with hit_rate >= this percent."},{"name":"min_impact_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Only funds with dollar-weighted impact >= this many USD.","title":"Min Impact Usd"},"description":"Only funds with dollar-weighted impact >= this many USD."},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"Ranking column: impact_usd (default) | hit_rate | events.","default":"impact_usd","title":"Order By"},"description":"Ranking column: impact_usd (default) | hit_rate | events."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalystRecordRow"},"title":"Response Screen Investor Catalyst Record Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/{cik}":{"get":{"tags":["holdings"],"summary":"Latest 13F holdings for one investor (or for a specific period)","operationId":"get_investor_holdings_us","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reporting period: '2026-Q2' or '2026-06-30'.","title":"Period"},"description":"Reporting period: '2026-Q2' or '2026-06-30'."},{"name":"top_n","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":50,"minimum":1},{"type":"null"}],"description":"Return only the top-N positions by USD value (slims a 50-position payload).","title":"Top N"},"description":"Return only the top-N positions by USD value (slims a 50-position payload)."},{"name":"tickers","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Only return positions matching these tickers; overrides top_n.","title":"Tickers"},"description":"Only return positions matching these tickers; overrides top_n."},{"name":"min_position_value_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Drop positions worth less than this many USD.","title":"Min Position Value Usd"},"description":"Drop positions worth less than this many USD."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopHoldingsRow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/{cik}/periods":{"get":{"tags":["holdings"],"summary":"All 13F periods on file for one investor","operationId":"list_investor_periods_us","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Limit"}},{"name":"top_n","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":50,"minimum":1},{"type":"null"}],"description":"Return only the top-N positions per period (defaults to all 50).","title":"Top N"},"description":"Return only the top-N positions per period (defaults to all 50)."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TopHoldingsRow"},"title":"Response List Investor Periods Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/{cik}/changes":{"get":{"tags":["holdings"],"summary":"QoQ position diff for one investor between two periods","operationId":"get_investor_changes_us","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"period_to","in":"query","required":true,"schema":{"type":"string","description":"Newer period: '2026-Q2' or '2026-06-30'.","title":"Period To"},"description":"Newer period: '2026-Q2' or '2026-06-30'."},{"name":"period_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Older period ('2026-Q1' or '2026-03-31'); defaults to the prior period on file.","title":"Period From"},"description":"Older period ('2026-Q1' or '2026-03-31'); defaults to the prior period on file."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvestorChanges"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/{cik}/sector-exposure":{"get":{"tags":["holdings"],"summary":"Sector-exposure history for one investor (newest quarter first)","description":"Per-quarter portfolio composition by sector for one 13F filer, including the biotech tier and top biotech positions. Use it to see whether a fund was already a sector specialist in earlier quarters, or how its sector mix is shifting. `unclassified_pct` reports how much top-50 value had no sector tag.","operationId":"get_investor_sector_exposure_us","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One reporting period: '2026-06-30' or '2026-Q2'. Default: all on file.","title":"Period"},"description":"One reporting period: '2026-06-30' or '2026-Q2'. Default: all on file."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SectorExposureRow"},"title":"Response Get Investor Sector Exposure Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/investors/{cik}/catalyst-record":{"get":{"tags":["holdings"],"summary":"One fund's binary-event track record per sector, with best/worst calls","description":"The fund's record of holding names through binary events (price-defined single-day moves — readouts/FDA/buyouts in biotech, earnings/M&A elsewhere; not verified cause labels): one row per sector bucket, the 'all' rollup first, each with hits, blowups, hit rate, dollar-weighted impact, and the five best and worst resolved calls. 404 means the fund had no scored events in the window, not that it is a bad fund.","operationId":"get_investor_catalyst_record_us","parameters":[{"name":"cik","in":"path","required":true,"schema":{"type":"string","title":"Cik"}},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only this sector bucket (e.g. 'biotech'); default all buckets.","title":"Sector"},"description":"Only this sector bucket (e.g. 'biotech'); default all buckets."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalystRecordRow"},"title":"Response Get Investor Catalyst Record Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/tickers/{ticker}/holders":{"get":{"tags":["holdings"],"summary":"Investors with `ticker` in their top-50 positions, sorted by position size","description":"Returns 13F filers that hold `ticker` **as one of their 50 largest positions**, scoped to the most recent reporting period by default. Only top-50 positions per investor are surfaced — smaller positions are not included. Pass an explicit `period` to query a different quarter.","operationId":"list_ticker_holders_us","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reporting period: '2026-Q2' or '2026-06-30'.","title":"Period"},"description":"Reporting period: '2026-Q2' or '2026-06-30'."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"ratings","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter to specific fund ratings (e.g. ['3','4','5'] for 3-star and above). Use this to avoid pulling 200 funds when you only want a rating slice.","title":"Ratings"},"description":"Filter to specific fund ratings (e.g. ['3','4','5'] for 3-star and above). Use this to avoid pulling 200 funds when you only want a rating slice."},{"name":"min_total_value_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Only funds with total AUM ≥ this many USD.","title":"Min Total Value Usd"},"description":"Only funds with total AUM ≥ this many USD."},{"name":"min_position_value_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Only funds whose position in this ticker is ≥ this many USD.","title":"Min Position Value Usd"},"description":"Only funds whose position in this ticker is ≥ this many USD."},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TickerHolder"},"title":"Response List Ticker Holders Us"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/kpi/{ticker}":{"get":{"tags":["kpi"],"summary":"Latest normalized KPI snapshot for one ticker","operationId":"get_kpi","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KPIResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/screen/insiders":{"post":{"tags":["screen"],"summary":"Screen insider activity by country, date, value, role, and ticker","description":"Screens one market per call, selected by `country`: 'KR' returns individual insider transactions, 'JP' returns 5%+ shareholding reports. The response echoes `country` — switch on it before reading `results`, since the two markets return different record shapes. There is no US coverage; use the 13F screen for US institutional flows.","operationId":"screen_insiders","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsiderScreenRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsiderScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/us/13f/screen":{"post":{"tags":["screen"],"summary":"Screen 13F holdings by period, ticker, value, and rating; returns each matched fund with only the position(s) that matched","description":"Results are wrapped in an envelope: `results` holds up to `limit` funds (max 500), `total_count` is the full server-side match count, and `truncated` says whether paging with `offset` would surface more. `period` accepts '2026-Q2' or an ISO date like '2026-06-30'.","operationId":"screen_holdings_us","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldingsScreenFilters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldingsScreenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CatalystEvent":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"},"return_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Return Pct"},"position_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Position Value Usd"},"held_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Held At","description":"Quarter-end at which the fund's position is observed."}},"type":"object","title":"CatalystEvent","description":"One binary event a fund held through (a pop it caught or a crash it ate)."},"CatalystRecordRow":{"properties":{"cik":{"type":"string","title":"Cik"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector","description":"'all' (rollup), 'biotech', or a lowercased sector name."},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since","description":"Start of the event window the record covers."},"threshold_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Threshold Pct","description":"Single-day |move| that defines an event."},"events":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Events","description":"Binary events the fund was exposed to. Judge records on >= 5 events; a 100% hit rate on 2 events is noise."},"hits":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hits","description":"Events held into a pop."},"blowups":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blowups","description":"Events held into a crash."},"hit_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hit Rate","description":"hits / (hits + blowups), percent."},"impact_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Impact Usd","description":"Sum over events of position value x event-day return — dollar-weighted skill."},"value_exposed_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Exposed Usd"},"best":{"items":{"$ref":"#/components/schemas/CatalystEvent"},"type":"array","title":"Best"},"worst":{"items":{"$ref":"#/components/schemas/CatalystEvent"},"type":"array","title":"Worst"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["cik"],"title":"CatalystRecordRow","description":"A fund's track record on binary events in one sector, price-defined:\nsingle-day moves beyond the threshold on names the fund held at the prior\nquarter-end. In biotech that means readouts/FDA/buyouts; elsewhere\nearnings blowups, guidance cuts, M&A.\n\nNOT verified cause labels. The signal is whether the fund reliably holds\nnames into binary risk and wins."},"CompanySearchHit":{"properties":{"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"type":"string","title":"Company Name"},"company_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name En"},"trade_count":{"type":"integer","title":"Trade Count"}},"type":"object","required":["stock_code","company_name","trade_count"],"title":"CompanySearchHit","description":"A KR company match from the company search endpoint."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Holding":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"cusip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cusip"},"shares_owned":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shares Owned"},"value_owned_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Owned Usd"},"portfolio_percentage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Portfolio Percentage"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank"},"activity_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Activity Pct","description":"QoQ change in this position, percent."},"activity_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Activity Value Usd","description":"QoQ change in this position, USD."},"avg_buy_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Buy Price"},"filing_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filing Date"},"report_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Period"}},"type":"object","title":"Holding","description":"A single 13F position held by an investor."},"HoldingsScreenFilters":{"properties":{"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period","description":"Reporting period: '2026-Q2' or an ISO date like '2026-06-30'."},"tickers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tickers"},"min_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Value Usd"},"max_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Value Usd"},"ratings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ratings"},"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","default":100},"offset":{"type":"integer","minimum":0.0,"title":"Offset","description":"Rows to skip, for paging past `limit` (see `truncated`).","default":0}},"type":"object","title":"HoldingsScreenFilters"},"HoldingsScreenResponse":{"properties":{"count":{"type":"integer","title":"Count","description":"Number of funds in `results`."},"total_count":{"type":"integer","title":"Total Count","description":"Funds matching the filters server-side, before limit/offset. May slightly exceed the reachable total: a matching fund whose qualifying positions are all filtered out post-fetch still counts."},"truncated":{"type":"boolean","title":"Truncated","description":"True when total_count > offset + count — page with `offset` for more."},"offset":{"type":"integer","title":"Offset","description":"Echo of the requested offset."},"results":{"items":{"$ref":"#/components/schemas/ScreenMatch"},"type":"array","title":"Results"}},"type":"object","required":["count","total_count","truncated","offset","results"],"title":"HoldingsScreenResponse","description":"Envelope for the 13F holdings screen.\n\nExists so truncation is visible instead of silent: a bare 500-row list is\nindistinguishable from \"exactly 500 matches\". `total_count` counts every\nfund matching the filters server-side; `truncated` says whether paging\n(`offset`) would surface more."},"InsiderLeaderboardEntry":{"properties":{"insider_name":{"type":"string","title":"Insider Name"},"insider_position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insider Position"},"purchase_count":{"type":"integer","title":"Purchase Count"},"avg_return":{"type":"number","title":"Avg Return"},"hit_rate":{"type":"number","title":"Hit Rate"},"most_recent_purchase":{"type":"string","title":"Most Recent Purchase"},"total_value_bought":{"type":"number","title":"Total Value Bought"},"companies_count":{"type":"integer","title":"Companies Count"},"most_recent_company":{"type":"string","title":"Most Recent Company"},"most_recent_stock_code":{"type":"string","title":"Most Recent Stock Code"},"primary_company":{"type":"string","title":"Primary Company"},"all_companies":{"items":{"type":"string"},"type":"array","title":"All Companies"}},"type":"object","required":["insider_name","purchase_count","avg_return","hit_rate","most_recent_purchase","total_value_bought","companies_count","most_recent_company","most_recent_stock_code","primary_company"],"title":"InsiderLeaderboardEntry","description":"One row in the KR insider leaderboard — historical avg return per insider."},"InsiderPlanDetail":{"properties":{"market":{"type":"string","title":"Market"},"rcept_no":{"type":"string","title":"Rcept No"},"rcept_dt":{"type":"string","title":"Rcept Dt"},"corp_code":{"type":"string","title":"Corp Code"},"corp_name":{"type":"string","title":"Corp Name"},"stock_code":{"type":"string","title":"Stock Code"},"filer_name":{"type":"string","title":"Filer Name"},"filer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filer Id"},"filer_position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filer Position"},"trade_direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Direction"},"acquisition_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acquisition Method"},"security_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Security Type"},"planned_shares":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Planned Shares"},"planned_unit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Planned Unit Price"},"planned_total_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Planned Total Amount"},"trade_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Start Date"},"trade_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade End Date"},"trade_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trade Purpose"},"price_basis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Basis"},"current_shares":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Shares"},"current_ownership_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Current Ownership Pct"},"expected_shares_after":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Shares After"},"expected_ownership_pct_after":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Ownership Pct After"},"total_shares_issued":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Shares Issued"},"is_withdrawal":{"type":"integer","title":"Is Withdrawal","default":0},"is_amendment":{"type":"integer","title":"Is Amendment","default":0},"report_nm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Nm"}},"type":"object","required":["market","rcept_no","rcept_dt","corp_code","corp_name","stock_code","filer_name"],"title":"InsiderPlanDetail","description":"One D005 pre-disclosure plan — an announced (but not yet executed) insider trade."},"InsiderScreenRequest":{"properties":{"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"},"transaction_types":{"items":{"type":"string"},"type":"array","title":"Transaction Types"},"min_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Value"},"max_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Value"},"actor_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Role"},"stock_codes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stock Codes"},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","default":200},"country":{"type":"string","title":"Country","description":"Market to screen: 'KR' (Korea) or 'JP' (Japan)."}},"type":"object","required":["country"],"title":"InsiderScreenRequest","description":"Body for `POST /v1/screen/insiders` — the filters plus a market."},"InsiderScreenResponse":{"properties":{"country":{"type":"string","title":"Country","description":"Market these results are from: 'KR' or 'JP'."},"count":{"type":"integer","title":"Count","description":"Number of records returned."},"results":{"anyOf":[{"items":{"$ref":"#/components/schemas/InsiderTrade"},"type":"array"},{"items":{"$ref":"#/components/schemas/JPShareholdingReport"},"type":"array"}],"title":"Results","description":"KR insider transactions when country='KR'; JP large-shareholding reports when country='JP'. Switch on `country` before reading."}},"type":"object","required":["country","count","results"],"title":"InsiderScreenResponse","description":"One market's screen results, tagged with the market they came from."},"InsiderTrade":{"properties":{"market":{"type":"string","title":"Market"},"rcept_no":{"type":"string","title":"Rcept No"},"rcept_dt":{"type":"string","title":"Rcept Dt"},"transaction_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transaction Date"},"corp_code":{"type":"string","title":"Corp Code"},"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"type":"string","title":"Company Name"},"insider_name":{"type":"string","title":"Insider Name"},"insider_position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insider Position"},"transaction_type":{"type":"string","enum":["BUY","SELL"],"title":"Transaction Type"},"acquisition_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acquisition Method"},"security_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Security Type"},"shares_before":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shares Before"},"shares_changed":{"type":"integer","title":"Shares Changed"},"shares_after":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shares After"},"unit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Price"},"price_at_filing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price At Filing"},"value_krw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Krw"},"price_current":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Current"},"return_since_filing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Return Since Filing"},"is_program_trade":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Program Trade"},"is_institutional":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Institutional"}},"type":"object","required":["market","rcept_no","rcept_dt","corp_code","stock_code","company_name","insider_name","transaction_type","shares_changed"],"title":"InsiderTrade","description":"One KR insider trade record."},"InvestorChange":{"properties":{"ticker":{"type":"string","title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"change_kind":{"type":"string","title":"Change Kind"},"shares_prev":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shares Prev"},"shares_curr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shares Curr"},"value_prev":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Prev"},"value_curr":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Curr"},"delta_shares":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delta Shares"},"delta_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delta Value"}},"type":"object","required":["ticker","change_kind"],"title":"InvestorChange","description":"Single position diff between two periods."},"InvestorChanges":{"properties":{"cik":{"type":"string","title":"Cik"},"period_from":{"type":"string","title":"Period From"},"period_to":{"type":"string","title":"Period To"},"new_positions":{"items":{"$ref":"#/components/schemas/InvestorChange"},"type":"array","title":"New Positions"},"exited_positions":{"items":{"$ref":"#/components/schemas/InvestorChange"},"type":"array","title":"Exited Positions"},"added_to":{"items":{"$ref":"#/components/schemas/InvestorChange"},"type":"array","title":"Added To"},"trimmed":{"items":{"$ref":"#/components/schemas/InvestorChange"},"type":"array","title":"Trimmed"}},"type":"object","required":["cik","period_from","period_to"],"title":"InvestorChanges","description":"QoQ change set for one investor."},"InvestorSearchHit":{"properties":{"cik":{"type":"string","title":"Cik"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"investment_manager":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investment Manager"},"portfolio_manager":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Portfolio Manager"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"latest_period":{"type":"string","title":"Latest Period"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Usd"}},"type":"object","required":["cik","latest_period"],"title":"InvestorSearchHit","description":"Slim result row for `search_investors` — enough to resolve a name to a CIK."},"JPCompanySearchHit":{"properties":{"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"type":"string","title":"Company Name"},"company_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name En"},"filing_count":{"type":"integer","title":"Filing Count"}},"type":"object","required":["stock_code","company_name","filing_count"],"title":"JPCompanySearchHit","description":"A JP company match from the company search endpoint."},"JPInvestorLeaderboardEntry":{"properties":{"filer_edinet_code":{"type":"string","title":"Filer Edinet Code"},"filer_name":{"type":"string","title":"Filer Name"},"filer_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filer Name En"},"individual_or_corp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Individual Or Corp"},"entity_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Group"},"dominant_purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dominant Purpose"},"purchase_count":{"type":"integer","title":"Purchase Count"},"avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Return"},"hit_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Hit Rate"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"star_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Star Rating"},"total_value_bought":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Bought"},"companies_count":{"type":"integer","title":"Companies Count"},"most_recent_company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Most Recent Company"},"most_recent_stock_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Most Recent Stock Code"},"last_filing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Filing"},"all_companies":{"items":{"type":"string"},"type":"array","title":"All Companies"}},"type":"object","required":["filer_edinet_code","filer_name","purchase_count","companies_count"],"title":"JPInvestorLeaderboardEntry","description":"One row in the JP investor leaderboard — historical avg return per filer."},"JPInvestorRegistry":{"properties":{"star_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Star Rating"}},"type":"object","title":"JPInvestorRegistry","description":"Embedded JP investor star rating."},"JPShareholdingReport":{"properties":{"doc_id":{"type":"string","title":"Doc Id"},"filing_date":{"type":"string","title":"Filing Date"},"obligation_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Obligation Date"},"base_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Date"},"filer_name":{"type":"string","title":"Filer Name"},"filer_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filer Name En"},"filer_edinet_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filer Edinet Code"},"issuer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer Name"},"issuer_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Issuer Name En"},"stock_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stock Code"},"shares_held":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shares Held"},"holding_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Holding Ratio"},"prev_holding_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prev Holding Ratio"},"ratio_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ratio Change"},"total_outstanding":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Outstanding"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose"},"purpose_category":{"anyOf":[{"type":"string","enum":["activist","engagement","passive","strategic","corporate","other","unknown"]},{"type":"null"}],"title":"Purpose Category"},"acquisition_amount_jpy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Acquisition Amount Jpy"},"acquisition_method":{"anyOf":[{"type":"string","enum":["open_market","negotiated","acquisition","subscription","private","block_purchase","unknown"]},{"type":"null"}],"title":"Acquisition Method"},"filing_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filing Type"},"transaction_type":{"type":"string","enum":["BUY","SELL","INITIAL","HOLD","CHANGE","CORRECTION","UNKNOWN"],"title":"Transaction Type"},"individual_or_corp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Individual Or Corp"},"representative":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Representative"},"business_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Description"},"exchange_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exchange Name"},"entity_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Group"},"holder_count":{"type":"integer","title":"Holder Count","default":0},"is_special_exception":{"type":"boolean","title":"Is Special Exception","default":false},"is_correction":{"type":"boolean","title":"Is Correction","default":false},"corrects_doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrects Doc Id"},"price_at_filing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price At Filing"},"price_current":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Current"},"value_jpy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Jpy"},"inflow_value_jpy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Inflow Value Jpy"},"return_since_filing":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Return Since Filing"},"is_joint_filing":{"type":"boolean","title":"Is Joint Filing","default":false},"aggregate_holding_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Aggregate Holding Ratio"},"aggregate_prev_holding_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Aggregate Prev Holding Ratio"},"investor":{"anyOf":[{"$ref":"#/components/schemas/JPInvestorRegistry"},{"type":"null"}]}},"type":"object","required":["doc_id","filing_date","filer_name","transaction_type"],"title":"JPShareholdingReport","description":"One JP large-shareholding report (5%+ ownership filing)."},"JPStockSummaryMatRow":{"properties":{"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"type":"string","title":"Company Name"},"company_name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name En"},"filing_count":{"type":"integer","title":"Filing Count"},"investor_count":{"type":"integer","title":"Investor Count"},"first_filing":{"type":"string","title":"First Filing"},"last_filing":{"type":"string","title":"Last Filing"},"price_current":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Current"},"max_holding_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Holding Ratio"},"buy_count":{"type":"integer","title":"Buy Count"},"buy_investor_count":{"type":"integer","title":"Buy Investor Count"},"buy_total_value":{"type":"number","title":"Buy Total Value"},"buy_avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buy Avg Return"},"total_inflow":{"type":"number","title":"Total Inflow"},"investor_quality_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Investor Quality Score"},"sell_count":{"type":"integer","title":"Sell Count"},"sell_investor_count":{"type":"integer","title":"Sell Investor Count"},"sell_total_value":{"type":"number","title":"Sell Total Value"},"activist_count":{"type":"integer","title":"Activist Count"},"engagement_count":{"type":"integer","title":"Engagement Count"},"passive_count":{"type":"integer","title":"Passive Count"},"strategic_count":{"type":"integer","title":"Strategic Count"},"corporate_count":{"type":"integer","title":"Corporate Count"},"om_count":{"type":"integer","title":"Om Count"},"negotiated_count":{"type":"integer","title":"Negotiated Count"},"acquisition_count":{"type":"integer","title":"Acquisition Count"},"special_exception_count":{"type":"integer","title":"Special Exception Count"},"entity_group_count":{"type":"integer","title":"Entity Group Count"},"joint_filing_count":{"type":"integer","title":"Joint Filing Count"}},"type":"object","required":["stock_code","company_name","filing_count","investor_count","first_filing","last_filing","buy_count","buy_investor_count","buy_total_value","total_inflow","sell_count","sell_investor_count","sell_total_value","activist_count","engagement_count","passive_count","strategic_count","corporate_count","om_count","negotiated_count","acquisition_count","special_exception_count","entity_group_count","joint_filing_count"],"title":"JPStockSummaryMatRow","description":"All-time aggregated JP filings for one ticker."},"KPIResponse":{"properties":{"company":{"type":"string","title":"Company"},"filing_date":{"type":"string","title":"Filing Date"},"kpis":{"items":{"$ref":"#/components/schemas/NormalizedKPI"},"type":"array","title":"Kpis"}},"type":"object","required":["company","filing_date"],"title":"KPIResponse"},"NormalizedKPI":{"properties":{"id":{"type":"string","title":"Id"},"metric":{"type":"string","title":"Metric"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"unit":{"type":"string","title":"Unit"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scale"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group"},"quarterly":{"items":{"$ref":"#/components/schemas/NormalizedKPIDataPoint"},"type":"array","title":"Quarterly"},"yearly":{"items":{"$ref":"#/components/schemas/NormalizedKPIDataPoint"},"type":"array","title":"Yearly"},"featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Featured"},"investor_signal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Investor Signal"},"reliable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reliable"}},"type":"object","required":["id","metric","unit"],"title":"NormalizedKPI"},"NormalizedKPIDataPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"type":"number","title":"Value"}},"type":"object","required":["date","value"],"title":"NormalizedKPIDataPoint"},"PerformanceHistory":{"properties":{"weighted":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Weighted"},"unweighted":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Unweighted"}},"additionalProperties":true,"type":"object","title":"PerformanceHistory","description":"Cumulative-return windows for a fund's reported portfolio.\n\nEach map is keyed by window (e.g. ``\"3yr_cumulative_pct\"``) → percent."},"PlanExecutionSummary":{"properties":{"plan":{"$ref":"#/components/schemas/InsiderPlanDetail"},"matched_trades":{"type":"integer","title":"Matched Trades"},"executed_shares":{"type":"integer","title":"Executed Shares"},"executed_value":{"type":"number","title":"Executed Value"},"trades":{"items":{"$ref":"#/components/schemas/InsiderTrade"},"type":"array","title":"Trades"}},"type":"object","required":["plan","matched_trades","executed_shares","executed_value","trades"],"title":"PlanExecutionSummary","description":"Cross-reference: announced plan vs actual executions."},"ScreenMatch":{"properties":{"cik":{"type":"string","title":"Cik"},"manager":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manager"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"period":{"type":"string","title":"Period"},"report_period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Period"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Usd"},"performance_history":{"anyOf":[{"$ref":"#/components/schemas/PerformanceHistory"},{"type":"null"}]},"matched_positions":{"items":{"$ref":"#/components/schemas/Holding"},"type":"array","title":"Matched Positions"}},"type":"object","required":["cik","period"],"title":"ScreenMatch","description":"A fund that passed a holdings screen, carrying only the matching position(s).\n\nReturns just the position(s) that satisfied the filter plus a fund summary,\nso the payload is bounded and the caller gets exactly what it screened for.\nThe single `manager` field collapses the old\ncompany/investment_manager/portfolio_manager triplicate."},"SectorExposureRow":{"properties":{"cik":{"type":"string","title":"Cik"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"},"report_period":{"type":"string","title":"Report Period"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Usd"},"sector_exposure":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Sector Exposure","description":"Percent of portfolio value by sector, largest first."},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector","description":"The sector this row was screened on (screen endpoint only)."},"sector_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sector Pct","description":"The screened sector's share of the portfolio, percent."},"biotech_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Biotech Pct"},"biotech_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Biotech Value Usd"},"n_biotech":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N Biotech","description":"Distinct biotech/pharma positions in the top 50. Filter >= 5 to exclude single-stock holders (e.g. corporate endowments holding only their sponsor's stock score 100% on one position)."},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","description":"specialist (>=60%) | heavy (30-60%) | tilted (10-30%) | minimal (<10%)."},"top_biotech":{"items":{"$ref":"#/components/schemas/SectorPosition"},"type":"array","title":"Top Biotech"},"unclassified_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unclassified Pct"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["cik","report_period"],"title":"SectorExposureRow","description":"One fund's portfolio composition by sector for a reporting period.\n\nPercentages are shares of the fund's WHOLE portfolio value even though\nonly its top-50 positions are visible in 13F data. ``unclassified_pct``\nreports how much top-50 value had no sector tag — treat rows with a high\nvalue there with caution."},"SectorPosition":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Usd"},"portfolio_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Portfolio Pct"}},"type":"object","title":"SectorPosition","description":"One position inside a sector slice (e.g. a fund's largest biotech holding)."},"StockSummaryMatRow":{"properties":{"market":{"type":"string","title":"Market"},"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"type":"string","title":"Company Name"},"trade_count":{"type":"integer","title":"Trade Count"},"insider_count":{"type":"integer","title":"Insider Count"},"first_trade":{"type":"string","title":"First Trade"},"last_trade":{"type":"string","title":"Last Trade"},"price_current":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Current"},"buy_count":{"type":"integer","title":"Buy Count"},"buy_insider_count":{"type":"integer","title":"Buy Insider Count"},"buy_total_value":{"type":"number","title":"Buy Total Value"},"buy_avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buy Avg Return"},"sell_count":{"type":"integer","title":"Sell Count"},"sell_insider_count":{"type":"integer","title":"Sell Insider Count"},"sell_total_value":{"type":"number","title":"Sell Total Value"},"om_trade_count":{"type":"integer","title":"Om Trade Count"},"om_insider_count":{"type":"integer","title":"Om Insider Count"},"om_total_value":{"type":"number","title":"Om Total Value"},"om_avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Om Avg Return"},"om_buy_count":{"type":"integer","title":"Om Buy Count"},"om_sell_count":{"type":"integer","title":"Om Sell Count"},"prog_trade_count":{"type":"integer","title":"Prog Trade Count"},"prog_insider_count":{"type":"integer","title":"Prog Insider Count"},"prog_total_value":{"type":"number","title":"Prog Total Value"},"prog_avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prog Avg Return"},"prog_buy_count":{"type":"integer","title":"Prog Buy Count"},"prog_sell_count":{"type":"integer","title":"Prog Sell Count"},"other_trade_count":{"type":"integer","title":"Other Trade Count"},"other_insider_count":{"type":"integer","title":"Other Insider Count"},"other_total_value":{"type":"number","title":"Other Total Value"},"other_avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Other Avg Return"},"other_buy_count":{"type":"integer","title":"Other Buy Count"},"other_sell_count":{"type":"integer","title":"Other Sell Count"}},"type":"object","required":["market","stock_code","company_name","trade_count","insider_count","first_trade","last_trade","buy_count","buy_insider_count","buy_total_value","sell_count","sell_insider_count","sell_total_value","om_trade_count","om_insider_count","om_total_value","om_buy_count","om_sell_count","prog_trade_count","prog_insider_count","prog_total_value","prog_buy_count","prog_sell_count","other_trade_count","other_insider_count","other_total_value","other_buy_count","other_sell_count"],"title":"StockSummaryMatRow","description":"All-time aggregated insider activity for one KR ticker."},"TickerHolder":{"properties":{"cik":{"type":"string","title":"Cik"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"period":{"type":"string","title":"Period"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Usd"},"position":{"anyOf":[{"$ref":"#/components/schemas/Holding"},{"type":"null"}]}},"type":"object","required":["cik","period"],"title":"TickerHolder","description":"Slim per-fund row for `list_ticker_holders` — only the requested ticker's position."},"TopHoldingsRow":{"properties":{"cik":{"type":"string","title":"Cik"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"investment_manager":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Investment Manager"},"portfolio_manager":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Portfolio Manager"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"period":{"type":"string","title":"Period"},"total_value_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Usd"},"performance_history":{"anyOf":[{"$ref":"#/components/schemas/PerformanceHistory"},{"type":"null"}]},"top_50_holdings":{"items":{"$ref":"#/components/schemas/Holding"},"type":"array","title":"Top 50 Holdings"}},"type":"object","required":["cik","period"],"title":"TopHoldingsRow","description":"One investor's top-50 13F positions for a given reporting period."},"TopInsiderTickerJP":{"properties":{"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"filing_count":{"type":"integer","title":"Filing Count"},"investor_count":{"type":"integer","title":"Investor Count"},"total_value_jpy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Jpy"},"avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Return"},"latest_filing_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Filing Date"}},"type":"object","required":["stock_code","filing_count","investor_count"],"title":"TopInsiderTickerJP","description":"Per-ticker aggregated JP filings (BUY/SELL/INITIAL) over a date window."},"TopInsiderTickerKR":{"properties":{"stock_code":{"type":"string","title":"Stock Code"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"trade_count":{"type":"integer","title":"Trade Count"},"insider_count":{"type":"integer","title":"Insider Count"},"total_value_krw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Value Krw"},"avg_return":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Return"},"latest_trade_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Trade Date"}},"type":"object","required":["stock_code","trade_count","insider_count"],"title":"TopInsiderTickerKR","description":"Per-ticker aggregated KR insider buying/selling over a date window."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}