{"openapi":"3.1.0","info":{"title":"WaveMan API","version":"0.1.0","description":"Public JSON API over SEC and House filings. Documented at https://wave-man.com/api; agents see /SKILL.md and /mcp."},"servers":[{"url":"https://wave-man.com"}],"paths":{"/api/v1/stats":{"get":{"summary":"Stats","description":"Row counts, date range and ingest health for every dataset.","operationId":"stats_api_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/insiders/recent":{"get":{"summary":"Recent","description":"Newest Form 4 transactions, optionally filtered by code and minimum value.","operationId":"recent_api_v1_insiders_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"min_value","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Value"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/top":{"get":{"summary":"Top","description":"Largest Form 4 code P buys or code S sells in the last N days.","operationId":"top_api_v1_insiders_top_get","parameters":[{"name":"side","in":"query","required":false,"schema":{"type":"string","default":"buy","title":"Side"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/activity":{"get":{"summary":"Activity","description":"Daily Form 4 buy/sell dollar totals for the activity chart.","operationId":"activity_api_v1_activity_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":14,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trend/monthly":{"get":{"summary":"Trend Monthly","description":"Monthly insider buy and sell dollar totals.","operationId":"trend_monthly_api_v1_trend_monthly_get","parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","default":60,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/netflow":{"get":{"summary":"Netflow","description":"Tickers with the largest net insider buying or selling over N days.","operationId":"netflow_api_v1_insiders_netflow_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"side","in":"query","required":false,"schema":{"type":"string","default":"buy","title":"Side"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":15,"title":"Limit"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/notable":{"get":{"summary":"Notable","description":"Form 4 code P purchases by the C-suite only, the cleanest signal.","operationId":"notable_api_v1_insiders_notable_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"min_value","in":"query","required":false,"schema":{"type":"number","default":250000,"title":"Min Value"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/{ticker}/summary":{"get":{"summary":"Ticker Summary","description":"Insider buy and sell totals for one company.","operationId":"ticker_summary_api_v1_insiders__ticker__summary_get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search":{"get":{"summary":"Search","description":"Ticker and company-name lookup.","operationId":"search_api_v1_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/clusters":{"get":{"summary":"Clusters","description":"Cluster buys: several insiders INDEPENDENTLY purchasing the same stock.\n\nCounting distinct buyers alone ranks employee purchase plans first: TSM\nshowed 28-31 officers buying on the same day, monthly, which is payroll\nrather than conviction, and three of the old top four had zero buyers\noutside such a day. So days on which five or more insiders bought the\nsame company are treated as administrative and excluded from the count.","operationId":"clusters_api_v1_insiders_clusters_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}},{"name":"min_insiders","in":"query","required":false,"schema":{"type":"integer","default":3,"title":"Min Insiders"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insiders/{ticker}":{"get":{"summary":"By Ticker","description":"Form 4 transactions for one company, newest first.","operationId":"by_ticker_api_v1_insiders__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/changed/{ticker}":{"get":{"summary":"Changed 30D","description":"What changed at one company in the last 30 days: insider, fund, stake, planned-sale and Congress events, newest first.","operationId":"changed_30d_api_v1_changed__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/funds/top":{"get":{"summary":"Funds Top","description":"Largest 13F filers by reported portfolio value.","operationId":"funds_top_api_v1_funds_top_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/holdings/{ticker}":{"get":{"summary":"Holdings For Ticker","description":"Funds holding one company, from the latest 13F quarter.","operationId":"holdings_for_ticker_api_v1_holdings__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/13f/new-positions":{"get":{"summary":"New Positions","description":"Biggest brand-new fund positions in the latest quarter.","operationId":"new_positions_api_v1_13f_new_positions_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/signals/confluence":{"get":{"summary":"Confluence","description":"Tickers where insiders bought AND funds opened/added in the latest\nquarter, the double-green-light screen.","operationId":"confluence_api_v1_signals_confluence_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/asof":{"get":{"summary":"Insiders Asof","description":"Insider transactions as they were known on a past date (point in time).","operationId":"insiders_asof_api_v1_asof_get","parameters":[{"name":"as_of","in":"query","required":true,"schema":{"type":"string","title":"As Of"}},{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stakes":{"get":{"summary":"Stakes","description":"New 5%+ stakes (13D/13G), activist filings by default.","operationId":"stakes_api_v1_stakes_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":180,"title":"Days"}},{"name":"activist_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Activist Only"}},{"name":"min_pct","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Pct"}},{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"}},{"name":"include_amendments","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Amendments"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stakes/{ticker}":{"get":{"summary":"Stakes For","description":"13D/13G stakes in one company.","operationId":"stakes_for_api_v1_stakes__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/track-records":{"get":{"summary":"Track Records","description":"Insiders ranked by how their past purchases performed.","operationId":"track_records_api_v1_track_records_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}},{"name":"min_trades","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Min Trades"}},{"name":"min_companies","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Min Companies"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/track-records/meta":{"get":{"summary":"Track Records Meta","description":"The base rate and coverage, so a client can show what \"good\" means.","operationId":"track_records_meta_api_v1_track_records_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/planned-sales":{"get":{"summary":"Planned Sales","description":"Form 144 notices of planned insider sales.","operationId":"planned_sales_api_v1_planned_sales_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}},{"name":"min_value","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Value"}},{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/planned-sales/{ticker}":{"get":{"summary":"Planned Sales For","description":"Form 144 notices for one company.","operationId":"planned_sales_for_api_v1_planned_sales__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/screen":{"get":{"summary":"Screen","description":"Filter the universe on any combination of signals.\n\nFilters arrive as `min_<field>` / `max_<field>` query params, e.g.\n?min_insider_buyers_180d=2&min_congress_buyers_365d=1&min_revenue_growth_pct=0\n\nA field left unfiltered is ignored entirely rather than treated as zero , \nNULL means \"we have no data for this company\", which is not the same as a\nvalue of nothing, and filtering on it would silently drop companies for\nlacking coverage rather than for failing the test.","operationId":"screen_api_v1_screen_get","parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"insider_net_usd_180d","title":"Sort"}},{"name":"desc","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/heat":{"get":{"summary":"Heat","description":"Filing intensity by sector and dataset, against each cell's own\n12-month baseline.\n\nA cell is `observed / expected`, where expected is what that sector and\ndataset filed per day over the preceding year, scaled to the window. So\n1.0 is a normal month and 2.4 means the filings arrived at 2.4x the usual\nrate, which is the only way to compare a sector that files constantly\nwith one that rarely files at all.\n\nCells whose baseline is too thin to be a baseline return null rather than\na large ratio computed from three filings.","operationId":"heat_api_v1_heat_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/spark":{"get":{"summary":"Spark","description":"90-day trend shapes for the desk's TREND column. Values are indexed to\n100 at the window start, never raw closes, we hold licensed price data\nfor computation and must not redistribute an actual price series; a\nnormalized 13-point shape is a trend, not a quote feed.","operationId":"spark_api_v1_spark_get","parameters":[{"name":"tickers","in":"query","required":true,"schema":{"type":"string","title":"Tickers"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/screen/meta":{"get":{"summary":"Screen Meta","description":"What the screener can filter on, and how fresh it is, so a client can\nbuild the form without hardcoding our column list.","operationId":"screen_meta_api_v1_screen_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/congress/recent":{"get":{"summary":"Congress Recent","description":"Newest STOCK Act trades by members of Congress.","operationId":"congress_recent_api_v1_congress_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"}},{"name":"member","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member"}},{"name":"side","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Side"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/congress/top":{"get":{"summary":"Congress Top","description":"Most-traded names. Ranked by how many DISTINCT members touched a\nticker, not by dollar size, the amounts are bands, so summing them would\nmanufacture a precision the disclosure does not have.","operationId":"congress_top_api_v1_congress_top_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/congress/members":{"get":{"summary":"Congress Members","description":"Most active members of Congress by trade count.","operationId":"congress_members_api_v1_congress_members_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/congress/overlap":{"get":{"summary":"Congress Overlap","description":"Names bought by BOTH a company insider and a member of Congress in the\nsame window, the only view here that neither source produces alone.","operationId":"congress_overlap_api_v1_congress_overlap_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":180,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financials/{ticker}":{"get":{"summary":"Financials","description":"Fundamentals for one company: the last N periods of every concept.","operationId":"financials_api_v1_financials__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"freq","in":"query","required":false,"schema":{"type":"string","default":"annual","title":"Freq"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"}},{"name":"periods","in":"query","required":false,"schema":{"type":"integer","default":5,"title":"Periods"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financials/{ticker}/series":{"get":{"summary":"Financials Series","description":"One concept as a time series, the shape a chart or a model wants.","operationId":"financials_series_api_v1_financials__ticker__series_get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"concept","in":"query","required":true,"schema":{"type":"string","title":"Concept"}},{"name":"freq","in":"query","required":false,"schema":{"type":"string","default":"annual","title":"Freq"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"As Of"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financials/{ticker}/restatements":{"get":{"summary":"Financials Restatements","description":"Every reported version of a concept, newest filing first.\n\nThis is the point-in-time story made visible: the same period shows up\nonce per filing that touched it, so you can see what was reported at the\ntime versus what the company says now.","operationId":"financials_restatements_api_v1_financials__ticker__restatements_get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"concept","in":"query","required":true,"schema":{"type":"string","title":"Concept"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/today":{"get":{"summary":"Today Count","description":"Filings received since midnight UTC and the newest insider trades,\nfor the landing page hero. Cached a minute.","operationId":"today_count_api_v1_today_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/brief/{day}":{"get":{"summary":"Brief Api","description":"Filing day brief as JSON: day is YYYY-MM-DD or \"latest\". 404 when no\nfiling reached EDGAR or the House Clerk that day.","operationId":"brief_api_api_v1_brief__day__get","parameters":[{"name":"day","in":"path","required":true,"schema":{"type":"string","title":"Day"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/landing":{"get":{"summary":"Landing Data","description":"Everything the landing page animates, all real and all public: the\nnewest events across four filing types, one company's last year indexed\nto 100 with its filings on it (a shape, never a price), four Sonar\nshapes, and headline counts. Cached five minutes.","operationId":"landing_data_api_v1_landing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/today5":{"get":{"summary":"Today5 Api","operationId":"today5_api_api_v1_today5_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tape":{"get":{"summary":"Tape Api","description":"The header marquee's data, same 15-minute cache the company pages\nuse, so the desk and the server pages scroll the same truth.","operationId":"tape_api_api_v1_tape_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/sonar.json":{"get":{"summary":"Sonar Json","description":"Every scored company with its seven scores, one fetch for the\nscreener. The table changes once a night, so an hour of caching costs\nnothing and spares 8,000-row queries per drag.","operationId":"sonar_json_api_v1_sonar_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp":{"post":{"summary":"MCP endpoint (JSON-RPC 2.0, Streamable HTTP)","description":"initialize, ping and tools/list are public; tools/call needs Authorization: Bearer wm_live_... (a Pro API key). Tools: search_company, insider_trades, insider_clusters, latest_insider_trades, fund_holdings, fund_changes, activist_stakes, planned_sales, congress_trades, congress_member, what_changed, stock_sonar, todays_five, financials, filing_day_brief. See /SKILL.md.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC response"},"202":{"description":"notification accepted"},"400":{"description":"parse error or invalid request"}},"security":[{},{"bearer":[]}]}}},"components":{"schemas":{"AskBody":{"properties":{"question":{"type":"string","title":"Question"}},"type":"object","required":["question"],"title":"AskBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"},"WatchBody":{"properties":{"ticker":{"type":"string","maxLength":12,"title":"Ticker"}},"type":"object","required":["ticker"],"title":"WatchBody"}},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Pro API key wm_live_..."}}}}