Signal8
SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.
| Endpoint | https://mcp.signal8.ai/mcp (streamable-http) |
|---|---|
| Registry version | 0.19.0 |
| Now | 108 tools · grade F (44) · pin ts_25650be88e35efd4715f2cd374d65091 · protocol 2025-06-18 |
| First / last listed | 2026-10-24 18:23 UTC / 2026-10-24 18:23 UTC |
| Grade over time | 2026-10-24: F (44), 108 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: search_companies get_company_profile get_quote get_market_metrics get_short_interest get_float get_float_history get_historical_prices get_stock_price_change get_financials get_earnings get_executives get_news get_analyst_consensus get_analyst_estimates get_clinical_trials search_clinical_trials get_top_movers get_market_news get_market_breadth get_trading_halts get_earnings_calendar get_economic_calendar get_filing_calendar get_post_earnings_movers get_recent_material_filings screen_sec_filings search_sec_filings get_filing_documents get_filing_structured get_filing_document get_filing_exhibits get_exhibit_content search_filing_text lookup_accession_number screen_sec_filings_performance get_insiders get_ownership get_institutions get_institution_detail get_institution_holdings get_institution_position_changes get_institution_activity get_institution_filings get_institution_derivatives get_institution_portfolio_analytics get_institutions_leaderboards get_insider_transactions get_insider_cluster_buys get_institution_top_aum search_institutions get_insider_cross_company get_compliance screen_companies get_premarket_scan_history get_split_history get_etf_bundle get_politicians get_politician_detail get_politician_transactions get_politician_activity get_politicians_most_active get_politician_recent_trades get_politician_disclosures get_politician_late_filers get_politician_committees get_politician_votes get_politician_pnl get_politicians_pnl_leaderboard get_politician_scorecard get_politician_roles get_recent_congressional_votes get_recently_sponsored_bills get_political_sector_rotation get_senate_trades_by_ticker get_cash_position get_cash_history screen_must_raise get_cash_runway_calendar get_dilution_coverage get_dilution_risk get_dilution_snapshot get_dilution_instruments get_baby_shelf_capacity get_dilution_performance get_dilution_history get_intraday_bars get_volume_profile get_accumulation_snapshot get_insider_positions get_insider_positions_by_ticker get_analyst_grades get_price_target get_analyst_coverage get_politician_donors get_politician_donor_summary get_donor_aggregates get_policy_events get_policy_trade_overlap get_policy_trade_leaderboard get_legislative_calendar get_rvol_history get_premarket_scanner get_upcoming_reverse_splits get_recent_uplistings search_learn_guides get_learn_guide define_term
search_companies | Search for companies by name or ticker symbol in the Signal8 database. Returns matching companies with their ticker, name, CIK, and exchange. Use this as the first step to find a company before calling other tools. params: query*, limit |
get_company_profile | Get an enriched company profile by ticker symbol. Returns CIK, exchange, sector, industry, market cap, employee count, description, and other fundamental data. This is a lightweight lookup -- use this when you only need basic company info rather than the full bundle. Always includes halted/haltCode/haltedAt trading-halt status (false/null when trading normally); a halted-but-listed ticker reports params: ticker* |
get_quote | Get the current stock quote for a company including price, volume, change, market cap, and other real-time market data. Use this when a user asks about a stock's current price or trading activity. Always includes halted/haltCode/haltReason/haltedAt/resumptionAt trading-halt fields (false/null when trading normally); a halted ticker returns the last-known quote instead of an error, or currentPrice: params: ticker* |
get_market_metrics | Get computed market metrics for a company including volume averages, volatility, SMAs, and trend direction. Use when analyzing trading patterns or technical indicators beyond the basic quote. params: ticker* |
get_short_interest | Get short interest data for a company including short volume, short ratio, days to cover, and short percent of float. Use when analyzing bearish sentiment or potential short squeeze setups. 🔴 "shortInterestPercent" null ALWAYS carries "shortInterestPercentReason" (since 2026-10-04): "float_not_point" = the float on record is a snapshot BOUND or ESTIMATE (<= / >= / ~), and a percent-of-float is ne params: ticker* |
get_float | Get float data for a company: floatShares, floatDefinition, as-of date, and — when the headline float is WITHHELD — the bounds and labelled stand-ins that replace it. Use when analyzing share supply. The share count the float was judged against (`basisSharesOutstanding`) is DATED: `sharesOutstandingAsOf` + `sharesOutstandingAsOfKind` ("stated" / "checked" / "none" = date not recorded) and a vendor params: ticker* |
get_float_history | Get the POINT-IN-TIME float history for a company — one sample per trade date (float shares, shares outstanding, and the source the float came from). Use to answer "what was the float on date X" or to see float expand across a dilution event, which the latest-only get_float cannot show. IMPORTANT: this series is FORWARD-ONLY — it began accumulating in mid-2026 and is NOT backfilled, so early/absen params: ticker*, days |
get_historical_prices | Get historical OHLCV price candles for a stock. Supports daily, weekly, and monthly resolutions. Use period shorthand (1M, 3M, 6M, 1Y, 5Y, ALL) or explicit from/to UNIX timestamps. Default is 1 year of daily candles. Use this to compute price returns, chart price history, or analyze volume trends over time. params: ticker*, period, resolution, from, to |
get_stock_price_change | Get percentage price changes for a stock across multiple timeframes: 1D, 5D, 1M, 3M, 6M, YTD, 1Y, 3Y, 5Y, 10Y, and MAX. Use this for quick "how much is it up/down" answers without fetching full candle data. params: ticker* |
get_financials | Get income statement, balance sheet, and cash flow data for a company. Supports annual, quarterly, and trailing-twelve-month views. Use when analyzing revenue, profitability, debt, or cash position. params: ticker*, type, limit |
get_earnings | Get historical earnings data for a company including EPS actual vs estimate, revenue actual vs estimate, and surprise percentages. Use when analyzing earnings beats/misses or upcoming earnings expectations. params: ticker*, limit |
get_executives | Get key executives and officers of a company including name, title, compensation, and tenure. Use when researching company leadership or management quality. params: ticker* |
get_news | Get recent news articles, press releases and AI-analysed SEC filings for a company. Use when researching recent developments, catalysts, or sentiment drivers. Filing rows (category "sec_filing") are event-bearing forms only (8-K, 6-K, 424B prospectus supplements, S-1/F-1, 10-K/10-Q/20-F, SC 13D, proxies, delisting notices; never Form 3/4/5, 13G or bank-note 424B2) and carry formType + accessionNum params: ticker*, limit, pressReleasesOnly |
get_analyst_consensus | Get analyst ratings consensus for a company including average target price, number of analysts, buy/hold/sell breakdown, and consensus recommendation. Use when evaluating Wall Street sentiment or price targets. params: ticker* |
get_analyst_estimates | Get forward analyst estimates for a company including EPS, revenue, EBITDA, and net income (low/high/avg) with analyst counts. Supports annual and quarterly periods. Use when analyzing forward earnings expectations or revenue forecasts. params: ticker*, period, limit |
get_clinical_trials | Get clinical trial data for a biotech/pharma company including trial phase, status, conditions, and interventions. Use when analyzing a biotech company's pipeline or upcoming catalyst events. params: ticker*, limit |
search_clinical_trials | Search clinical trials market-wide (cross-company). Distinct from get_clinical_trials, which is scoped to a single ticker. Filter by phase, indication, sponsor, status, and date window; sort and paginate the results. params: phase, indication, sponsor, status, dateField, from, to, sort, order, limit, offset |
get_top_movers | Top stock movers — gainers (largest % up), losers (largest % down), or active (highest volume). Optional session window (premarket / regular / afterhours; regular default; not supported for active). Optional date (YYYY-MM-DD) returns a PAST trade date's gainers/losers on a historical daily close-to-close basis (computed from split-adjusted daily bars, NOT intraday) — session is rejected when date params: direction*, limit, session, includePennyStocks, date |
get_market_news | Get the latest market-wide news across ALL tickers, most recent first. Every item is significance-classified at ingest (critical | major | standard); the default filter of critical,major is the "top stories" view. Use for "what is happening in the market right now" — for news about one company, use get_news with a ticker instead. Requires the /news/latest public endpoint (added 2026-07-29; 404 unt params: limit, significance |
get_market_breadth | Get market breadth aggregates (advance/decline counts and ratio, percent of constituents above their 50DMA and 200DMA, and counts of new 52-week highs/lows) for a chosen universe (sp500, ndx, or all). Use to add market-state context to commentary, tweets, or daily summaries. params: universe |
get_trading_halts | List currently-active trading halts across NASDAQ/NYSE/AMEX (from the consolidated Nasdaq Trader halt feed). Each halt includes ticker, market, haltCode (T1/T2/T12/LUDP/H10/...), human-readable reason, haltedAt, and the scheduled resumptionAt when one is set. An EMPTY list is a normal state (no active halts right now), not an error. Halts are tradeable catalysts — use this to discover halted names params: none |
get_earnings_calendar | Get upcoming and recent earnings releases between two dates. Optionally restrict to a list of tickers. Returns ticker, date, time (BMO/AMC), EPS estimate, and revenue estimate when available. Supports market cap filtering to focus on large-cap or small-cap earnings only. params: from*, to*, tickers, minMarketCap, maxMarketCap |
get_economic_calendar | Get scheduled macro/economic events (CPI, FOMC, jobs reports, GDP, etc.) between two dates. Optionally filter to a single country (ISO-3166 alpha-2, e.g. "US"). Defaults to US when omitted. params: from*, to*, country |
get_filing_calendar | Get the forward-looking 10-K / 10-Q SEC filing-deadline calendar within a date window. Optionally restrict to a universe (sp500/ndx/dji/all) and/or a list of form types (default both 10-K and 10-Q). params: from, to, universe, formTypes |
get_post_earnings_movers | Get stocks that moved significantly after earnings reports on a given date. Returns pre-computed price changes with earnings surprise data in a single call — no need to chain get_earnings_calendar + get_historical_prices + get_quote per ticker. Includes preEarningsClose, currentPrice, changePct, EPS/revenue actuals vs estimates, and surprise percentages. Filter by minimum absolute % change thresho params: date*, minChangePct, limit |
get_recent_material_filings | Recent material 8-K filings (last 7 days) for the constituents of an index universe. By default returns the high-signal 8-K item codes (material agreements, M&A, executive changes, restructurings, etc.); pass `items` to filter to specific 8-K item codes. Choose the universe with `universe`. params: universe, items, limit |
screen_sec_filings | Screen SEC filings across all companies with company-level filters (sector, industry, market cap, exchange) combined with filing-level filters (form type, date range). Returns filings enriched with company metadata: ticker, sector, industry, exchange, market cap, and price. Use this to answer questions like "find all S-1 filings from biotech companies under $500M market cap" or "show me recent 8-K params: formTypes, dateFrom, dateTo, sector, industry, exchange, minMarketCap, maxMarketCap, sortBy, sortOrder, page, pageSize |
search_sec_filings | Search and list SEC filings by company (CIK), form type, date range, 8-K item codes and excluded forms, optionally with a full-text query over filing bodies, and optionally by COMPANY FACTS (market cap, float, price, sector, industry, exchange, company type, foreign issuer, recent IPO). Returns rows with `id` (the filingId for get_filing_document / get_filing_exhibits), cik, company_name, accessio params: ciks, q, sort, match, facets, understand, section, exhibitTypes, matchedSections, cursor, page, pageSize, formTypes, excludeForms, items, dateFrom, dateTo, minMarketCap, maxMarketCap, minFloat, maxFloat, minPrice, maxPrice, sectors, industries, exchanges, companyTypes, foreignIssuer, recentIpo |
get_filing_documents | List EVERY document in one SEC filing by accession number — the primary document, each exhibit, XML and XBRL files, graphics — with seq, type (e.g. "8-K", "EX-99.1"), description, size in bytes, `stored` and `secUrl`. Also returns the filing's cik, companyName, formType, filingDate, acceptedAt, bodyStored, primaryDocument, indexUrl, and `filingId`. HOW TO READ A DOCUMENT: if it has an `exhibitId`, params: accessionNumber* |
get_filing_structured | Parsed, machine-readable data from an ownership or holdings filing, by accession number. `kind` says which: "ownership" (Form 3/4/5 and amendments) — issuer, reporting owners with relationship (director, officer title, 10% owner, or the filer's own "Other" text), and `parsed.transactions` (one row per transaction: table nonDerivative/derivative, securityTitle, transactionDate, code, acquiredDispos params: accessionNumber*, holdingsLimit |
get_filing_document | Get the full raw text/HTML content of an SEC filing by its internal filing ID (the `id` on search_sec_filings rows, `filingId` from lookup_accession_number or get_filing_documents). Returns the complete filing document which can be very large (10-K filings can be 1MB+). Use the maxLength parameter to truncate content for previews. The response includes company_name, form_type, filing_date, cik, an params: filingId*, maxLength |
get_filing_exhibits | List the readable exhibits (individual documents with stored text) within an SEC filing, by internal filing ID. Returns each exhibit's `id`, exhibit type, description, content size and sec_url. Use the `id` with get_exhibit_content. Excludes XML/XBRL. For the COMPLETE document list of a filing by accession number (including files with no stored text), use get_filing_documents. params: filingId* |
get_exhibit_content | Get the full text/HTML content of a single exhibit from an SEC filing. Returns the exhibit text along with exhibit_type, description, company_name, accession_number, and form_type. Use the maxLength parameter to truncate large exhibits. Find exhibit IDs with get_filing_documents (`exhibitId`, by accession number) or get_filing_exhibits (by filing ID), or from search_filing_text matches (`exhibit_i params: id*, maxLength |
search_filing_text | Full-text search across SEC filing content that returns the MATCHING PASSAGE: one match per filing, each with the exhibit it was found in (`exhibit_id`, `exhibit_type`) and the snippet with context. Query syntax: unquoted words must ALL appear (any order, any distance); "quoted phrase" = exact wording; OR between alternatives (merger OR acquisition); -word or -"phrase" to exclude; w1 NEAR/10 w2 (a params: pattern*, cik, filingId, accessionNumber, formType, limit, snippetLength, sort, match, understand, facets, section, exhibitTypes, matchedSections |
lookup_accession_number | Look up a filing or exhibit by its SEC accession number. Supports both dashed format (e.g., "0001193125-22-010026") and compact 18-digit format. Returns filing metadata including company name, form type, filing date, exhibit count and `filingId` (for get_filing_document / get_filing_exhibits). If the filing is held in Signal8's archive (isInDatabase: true) its content can be read here; if it is on params: accessionNumber* |
screen_sec_filings_performance | Analyze stock price performance after SEC filings. Returns individual filing records with pre-computed price returns at +1 day, +3 days, +7 days, and +30 days after the filing date, plus aggregate statistics (average, median, % negative, best, worst) across all matching filings. Combine company-level filters (sector, industry, market cap, exchange) with filing filters (form type, date range). Use params: formTypes, dateFrom, dateTo, sector, industry, exchange, minMarketCap, maxMarketCap, sortBy, sortOrder, page, pageSize |
get_insiders | Get insider trading discovery data for a company. Includes cluster buying detection, entity-centric insider model, and Form 4 cross-referencing. Shows insider transactions with buying/selling patterns that may signal upcoming corporate actions. Each insider includes a transactionBreakdown by SEC code (P=Purchase, S=Sale, F=Tax withholding, M=Exercise, G=Gift, A=Award), netSharesSold12m (code S onl params: ticker*, limit, offset |
get_ownership | Get unified ownership breakdown for a company combining Form 4 insider holdings, 13F institutional holdings, and 13D/13G activist positions. All entities are resolved across the three SEC form types into a single view with counterparty resolution. The allHolders array is paginated via limit/offset (default 100). Aggregate stats (institutional/insider/beneficial totals and percentages, plus the `re params: ticker*, limit, offset |
get_institutions | Get institutional holders (13F filers) for a company. Returns institutions that hold positions in this stock based on SEC 13F filings, including shares held, portfolio weight, and filing dates. Useful for understanding institutional ownership concentration. params: ticker*, limit, offset |
get_institution_detail | Get detailed information about a specific institutional investor by their SEC CIK number. Returns the institution name, total AUM, number of holdings, and filing history. Use get_institutions first to find the CIK for an institution. params: cik* |
get_institution_holdings | Get the full portfolio holdings for a specific institution by CIK. Returns all positions from their latest 13F filing with shares, value, and portfolio weight. Supports pagination for institutions with large portfolios. params: cik*, limit, offset |
get_institution_position_changes | Diff two quarterly 13F snapshots for an institution. Compares the latest filing against the prior quarter and returns per-position changes: new positions, increased, decreased, and exited. Sorted by |changePercent| descending so the biggest moves surface first. Much more efficient than calling get_institution_holdings twice and diffing client-side — the server computes everything in a single SQL q params: cik*, limit, offset |
get_institution_activity | Get an institution's position changes over recent 13F periods by CIK. Reads the number of trailing periods to include. params: cik*, periods |
get_institution_filings | Get the list of 13F filings for an institution by CIK, with pagination. params: cik*, limit, offset |
get_institution_derivatives | Get an institution's reported PUT/CALL derivative positions by CIK (13F options), with pagination and sorting. params: cik*, period, limit, offset, sortBy, sortOrder |
get_institution_portfolio_analytics | Get sector allocation and top holdings analytics for an institution's portfolio by CIK. params: cik* |
get_institutions_leaderboards | Two market-wide institution leaderboards in one call: topByAum (largest holders by assets under management, name-deduped) and mostActive (highest 13F position-change volume). No CIK required. For the full paginated AUM list use get_institution_top_aum. params: limit |
get_insider_transactions | Get detailed insider transaction history for a company from Form 4 filings. Returns individual buy/sell transactions with insider name, title, shares, price, and transaction codes. Supports pagination for companies with extensive insider activity. Filter by year/month to narrow results, or use transactionCode to find only purchases (P), sales (S), etc. Useful for identifying "first insider buy sin params: ticker*, limit, offset, year, month, transactionCode |
get_insider_cluster_buys | Detect cluster buying patterns for a company. Identifies periods where 3+ distinct insiders purchased shares within a 14-day window -- a strong bullish signal that often precedes positive corporate announcements or price appreciation. params: ticker* |
get_institution_top_aum | Discover top institutional holders across the entire company universe ranked by assets under management (AUM). Unlike get_ownership which shows institutions for a single company, this tool searches across all companies to find the largest institutional players. Optionally set a minimum AUM. Useful for identifying smart money flows and major institutional positioning trends. params: minAum, limit, offset |
search_institutions | Search institutional investors (13F filers) by name. Returns matching institutions with CIK, name, AUM, holdings count, and latest filing period. Use this to find a specific fund or investment manager when you know part of their name (e.g., "Vanguard", "BlackRock", "Citadel"). Results are ranked by AUM descending. params: q*, limit, offset |
get_insider_cross_company | Discover insider trading patterns across multiple companies. Unlike get_insiders which shows insider activity for a single ticker, this tool searches the entire universe to find insiders active across multiple companies, cluster buying patterns, and large transactions. Filter by insider name, transaction type, or date range. Cluster buying is computed only for purchases (transactionType P, the def params: insiderName, transactionType, startDate, endDate, limit, offset |
get_compliance | Get full compliance rules evaluation for a company. Runs Nasdaq/NYSE deficiency detection, bid price tracking, and delinquent filing detection. Returns a comprehensive compliance picture combining SEC filing data, market data, and exchange rules. This is the most thorough compliance check available. params: ticker* |
screen_companies | Since 2026-10-03 the float column ALWAYS carries the dilution snapshot's own figure when the snapshot has one: "float" is the measured POINT float (null on a withheld snapshot row), and such a row then carries "floatEstimate" (shares) + "floatEstimateBound" ("point" / "ceiling" / "floor") + "floatEstimateBasis" (the working). RENDERING (2026-10-18): a "point" is the plain number with its basis as params: country, industry, exchange, market, minPrice, maxPrice, minVolume, maxVolume, minCashRunway, maxCashRunway, includeRunwayExhausted, minCash, maxCash, minFloat, maxFloat, minSharesOutstanding, maxSharesOutstanding, minMarketCapComputed, maxMarketCapComputed, floatSource, minDividendYield, maxDividendYield, sortBy, sortOrder, limit, offset, excludeHalted |
get_premarket_scan_history | Historical MARKET-WIDE premarket scan for a single PAST trade date. For the requested ET date, returns every ticker with that day's premarket (default) session volume and its relative volume (RVOL) vs the trailing 30-day same-session baseline — the SAME RVOL math as get_rvol_history, but across the whole market for one date instead of one ticker across many dates. Filter by RVOL, market cap, price params: date*, session, minRvol, includeNoHistory, minMarketCap, maxMarketCap, minBaselineVolume, minSessionVolume, minPrice, maxPrice, minFloat, maxFloat, includeUnscreened, limit, offset, asOfTime, baselineDays |
get_split_history | Get stock split history for a company including forward and reverse splits with dates, ratios, type classification, and cumulative 2-year reverse split ratio. Relevant for NASDAQ/NYSE minimum bid-price compliance (1:250 cumulative reverse-split cap). IMPORTANT: `cumulativeReverseSplitRatio2yr` is null when it CANNOT BE STATED, which is NOT the same as no reverse splits — read `cumulativeWithheldRe params: ticker* |
get_etf_bundle | Get aggregated ETF data in a single call. Combines multiple data sources (profile, holdings, sector weightings, country exposure, performance, news, analyst coverage, and comparables) into one response. Each data type is cached independently. Specify which types to include or omit to get above-the-fold defaults (profile, stock-summary, holdings, sectors). params: ticker*, include |
get_politicians | List and search congressional politicians who have STOCK Act trading disclosures. Filter by party (D/R/I), state, or search by name. Returns paginated results with trade counts, last trade date, and net buy/sell direction over the trailing 12 months. params: search, party, state, sortBy, sortOrder, limit, offset |
get_politician_detail | Get the full profile for a politician including party, state, chamber, trade statistics, filing delay metrics, most traded sector, and their 10 most recent transactions. Use get_politicians first to find the slug (e.g. "sen-nancy-pelosi"). params: slug* |
get_politician_transactions | Get paginated trade history for a specific politician. Returns individual STOCK Act disclosures with ticker, transaction type, amount range, filing delay, and late filing flag. Includes a summary with total buys/sells and net value. params: slug*, type, sortBy, sortOrder, limit, offset |
get_politician_activity | Get activity metrics for a politician broken down by period (30d, 90d, 1y, all-time). Includes buy/sell counts and values per period, most traded tickers (top 10), and transaction type breakdown. Useful for analyzing trading patterns over time. params: slug* |
get_politicians_most_active | Discover the most active congressional traders ranked by trade count within a lookback period. Returns each politician with trade count, tickers traded, buy/sell values, and top tickers. Useful for identifying the most prolific political traders. params: period, limit |
get_politician_recent_trades | Get recent STOCK Act trades across all politicians. Each trade includes the senator info, ticker, transaction type, amount, and filing delay. Filter by direction (buy/sell) and lookback period. Useful for monitoring current congressional trading activity. params: days, direction, limit, offset |
get_politician_disclosures | Per-DISCLOSURE feed of politician trades: one item per congressional STOCK Act periodic transaction report (PTR) or executive-branch OGE Form 278-T that contains at least one trade whose bracket LOWER bound is >= minAmount. Each item carries the politician, filing link, filing delay, and ALL trades of the report sorted largest bracket first, with qualifyingTradeCount for how many clear the thresho params: since, limit, minAmount, kinds |
get_politician_late_filers | Get STOCK Act late filing violations -- trades where the disclosure was filed more than 45 days after the transaction (a legal violation). Sorted by filing delay descending. Excludes trades whose transaction date is suspect (a probable mistyped year upstream: ~one year off the rest of its own on-time filing) -- their delay is not measured. owner null means not stated, never "Self". Useful for iden params: days, limit, offset |
get_politician_committees | Get committee assignments for a politician including committee name, chamber, role (Chair, Ranking Member, etc.), and subcommittee memberships. Use to correlate trading activity with committee oversight areas. Requires a politician slug (e.g. "sen-nancy-pelosi") -- use get_politicians first to find the slug. params: slug* |
get_politician_votes | Get voting records for a politician by slug. Returns congressional votes with bill info, position (Yea/Nay/Not Voting), and result. Useful for assessing alignment between a politician's votes and their trading positions. Requires Bioguide ID resolution. params: slug*, limit, offset |
get_politician_pnl | Get estimated realized + unrealized profit & loss for a politician. Methodology: each disclosed trade amount range is converted to an estimated share count using the stock's historical market price on the transaction date, then FIFO-matched on SHARES (realized = (sellPrice − buyPrice) × matched shares); open positions are marked to the current price for unrealized P&L. Works for Congress (sen-/rep params: slug* |
get_politicians_pnl_leaderboard | Rank politicians (Congress + executive branch) by estimated trading P&L across the universe. Sort by total P&L, win rate, or traded volume. P&L uses price-adjusted share estimation: disclosed amount ranges → estimated shares via historical price → FIFO on shares → open positions marked to current price. Figures are ESTIMATES (±25-40% from disclosure bracket width). params: sortBy, limit, offset |
get_politician_scorecard | Top 5 and bottom 5 politicians (Congress + executive-branch officials) by ESTIMATED trading P&L over a trailing window (default and only supported window: 90 days), plus SPY's return over the same window as a benchmark, and imageUrl — a ready-to-attach 2160x2700 PNG card of the same ranking (null when unavailable; card.reason says why). ALL P&L FIGURES ARE ESTIMATES (estimate: true, estimateRange params: window |
get_politician_roles | Get committee leadership roles (Chair, Ranking Member, etc.) for a politician. Use get_politicians first to find the slug. params: slug* |
get_recent_congressional_votes | Get recent congressional roll-call votes across all members, sourced from GovTrack (both chambers as available — currently Senate-heavy). Each vote includes member, bill info, position, and result. params: limit, offset |
get_recently_sponsored_bills | Get the most recently introduced bills across all congressional sponsors. Each bill includes the sponsor block (bioguideId, fullName, party, state, politicianSlug) so persona agents can link directly to the sponsor detail page. politicianSlug is null when the sponsor is no longer in the active roster (typically ex-members). Requires CONGRESS_API_KEY on the backend. params: limit, congress, offset |
get_political_sector_rotation | Which market SECTORS politicians have been trading in over a trailing window. Aggregates congressional + executive trades by sector and returns, per sector: trade count, total dollar volume, number of distinct politicians, and the top tickers. Use it to see where political trading activity is concentrating (e.g. "politicians piled into Energy this month"). Sort by count or dollar volume. params: sortBy, windowDays, chamber, limit |
get_senate_trades_by_ticker | Reverse lookup — find which politicians recently traded a given TICKER. Returns recent STOCK Act disclosures for that symbol with politician info, transaction type, and amount. params: ticker*, limit, offset |
get_cash_position | Get the Signal8 cash position model for a company, derived from the dilution snapshot pipeline: anchor cash and anchor date, monthly burn, post-anchor capital raises (with SEC filing citations), known outflows, estimated current cash and runway months. Use when analyzing a company's current cash situation, runway, or capital raise activity. ALWAYS RETURNS 200 — read `available` and `reason`, never params: ticker* |
get_cash_history | Get up to 10 years of quarterly cash position history from SEC XBRL filings (data.sec.gov company-facts). Returns an array of {periodEnd, usd, formType, isAnnual} sorted chronologically. Deduped by period with annual filings preferred over quarterly. Not feature-gated — works for any company with SEC filings. params: ticker* |
screen_must_raise | Find companies with imminent capital raise needs based on estimated cash runway. Defaults to companies with less than 6 months of cash remaining, sorted by urgency (lowest runway first). Useful for identifying distressed companies, imminent dilution situations, or potential financing catalysts. Runway is estimated from current burn rate. Companies whose ESTIMATED cash is already exhausted are incl params: maxMonths, includeExhausted, market, industry, limit, offset |
get_cash_runway_calendar | Find companies projected to run out of cash within a date window. Similar to lockup expiration calendars but for cash depletion events. Returns companies sorted by urgency (lowest runway first). Runway is an estimate based on current burn rate — actual depletion depends on future capital raises and operational changes. Default window is today to 90 days out. When the window starts today or earlier params: from, to, industry, market, limit, offset |
get_dilution_coverage | Cheap pre-check for whether Signal8 holds a dilution analysis for a company: coverage status (verified / stale / not_covered), extraction state (never_extracted / running / failed / timeout / complete), last attempt and last success timestamps, the coverage tier, and whether the ticker is out of scope. CALL THIS FIRST before the expensive dilution tools — it answers "is there anything to fetch" fo params: ticker* |
get_dilution_risk | Get the dilution pressure score: a 0-100 score with its seven-component breakdown (shelf capacity, ATM/equity-line capacity, warrants in the money, convertible proximity, cash burn urgency, historical dilution, toxic financing), plus four risk levels — overall, offering ability, overhead supply, cash need. When the filings state no current share count, components that need the share count or marke params: ticker* |
get_dilution_snapshot | Get the dilution snapshot header (the heaviest dilution call): summary totals (potential new shares and their percentage of shares outstanding, per-family share totals), the cash position (anchor cash, monthly burn, estimated current cash, runway months), the float block, and `meta` provenance. Cash amounts are in the filer's REPORTING currency, not always USD: read `cashPosition.currency` (ISO 42 params: ticker* |
get_dilution_instruments | Get ONE instrument family's rows with per-field SEC citations — each figure carries the accession number, filing date and the verbatim quoted sentence it was read from, so every number can be traced to a filing. Families: warrants, convertibles, preferred, shelfs, atms, elocs, s1_offerings, equity_plans, exchangeables, recent_offerings. One family per call — request the families you actually need params: ticker*, family* |
get_baby_shelf_capacity | Get the SEC Form S-3 General Instruction I.B.6 "baby shelf" capacity: how much the issuer may raise off an effective shelf right now, given the one-third-of-public-float cap that applies below a $75M non-affiliate float, less the trailing-twelve-month takedowns already used. Returns the public float basis, the cap, takedowns counted and the remaining raisable amount. 🔴 `constraintApplies: false` params: ticker* |
get_dilution_performance | Get post-offering price performance: for each recorded offering, how the stock traded after it priced or closed. Use when assessing how the market has absorbed this issuer's past financings. 🔴 THIS IS HISTORY, NOT A FORECAST — it describes what happened after prior offerings and must never be phrased as an expectation, a price target or a prediction about a named company. An empty or unavailable params: ticker* |
get_dilution_history | Get the historical shares-outstanding and cash series from SEC XBRL filings, with offering and material-cash-event overlays so an issuance or a raise can be lined up against the share count and cash balance around it. Use for share count growth over time and for the cash trajectory between financings. 🔴 THE HISTORICAL SHARE COUNTS ARE AS FILED — each point is on the split basis in force when it w params: ticker* |
get_intraday_bars | Get intraday OHLCV candles at 1, 5, 15, 30, or 60-minute resolution. Use for intraday price action analysis, volume patterns, and short-term technical analysis. Returns open, high, low, close, and volume for each bar. Set extended=true (1-minute resolution only) to include premarket (04:00–09:30 ET) and after-hours (16:00–20:00 ET) bars. params: ticker*, resolution*, from*, to*, extended |
get_volume_profile | Get volume distribution across price levels for a single trading day. Returns price buckets with volume, Point of Control (highest volume level), and Value Area (price range containing 70% of volume). Use for identifying support/resistance and high-volume price nodes. params: ticker*, date*, bucketSize |
get_accumulation_snapshot | Get intraday accumulation/distribution metrics for the current or most recent trading session. Returns session VWAP, volume above/below VWAP, estimated buy vs sell volume (tick rule), volume by time period (morning/midday/afternoon), and comparison to average volume. Use for assessing real-time buying/selling pressure. params: ticker* |
get_insider_positions | Get current open insider positions for a CIK (either an insider or an issuer). If an issuer (company) CIK is supplied, returns all insiders' positions for that company. If an insider (reporting-person) CIK is supplied, returns that insider's open positions across all issuers they have filed Form 4 for. The response includes a `lookupMode` field (`"issuer"` or `"insider"`) indicating which interpre params: cik* |
get_insider_positions_by_ticker | Get per-insider position aggregates for a given ticker — which insiders hold positions in the stock and their aggregate cost/value. Derived from Form 4 filings. NOT LIFETIME: every figure covers only the Form 4 history Signal8 holds, which starts at the response's `coverageStart` date (also repeated on each row) — say "since <coverageStart>", never "lifetime" or "all-time". Each row carries `costB params: ticker* |
get_analyst_grades | Get recent analyst grade actions (upgrades, downgrades, initiations) for a ticker, including the grading firm and previous/new grade. params: ticker*, limit |
get_price_target | Get analyst price target data for a ticker. By default returns the consensus / split-adjusted average price target. Set list=true to return the full per-analyst list of individual price targets instead. params: ticker*, list, limit |
get_analyst_coverage | Get aggregated analyst coverage for a ticker — consolidated view of grades, targets, and coverage breadth across covering firms. params: ticker* |
get_politician_donors | Get the paginated list of campaign donors (individuals and PACs) for a single politician across one election cycle. Returns donor name, amount, type, employer/occupation (individuals), and committee details (PACs). Use this when a user asks "who donated to <politician>" or wants the full donor list. For a quick top-10 + cycle totals overview, use get_politician_donor_summary instead. params: slug*, cycle, type, minAmount, sortBy, sortOrder, limit, offset |
get_politician_donor_summary | Get a bundled donor summary for a single politician: cycle totals (raised, spent, cash-on-hand, debts), donor count, top 10 individual donors, and top 10 PAC donors — all in one response. This is the right tool for "who funds <politician>" or "biggest donors to <politician>" style questions. For the full paginated list, use get_politician_donors. params: slug*, cycle |
get_donor_aggregates | Get market-wide campaign-finance rollups across ALL tracked politicians for a cycle: total raised, top 10 individual donors, top 10 PACs, party/chamber/cycle splits, and a most-funded politician leaderboard. Use for "who are the biggest donors in 2024?" or "which party raised more?" type questions. For a single politician, use get_politician_donor_summary. params: cycle, party, chamber |
get_policy_events | List mirrored executive orders (policy events) from the Federal Register feed. Filter by signing-date range, affected sector, or free-text title query. Each event includes its Federal Register document number (externalId), title, signing date (eventDate), normalized affected sectors, full-text URL, and flaggedTradeCount — the number of official trades that occurred in an affected sector near the s params: from, to, sector, q, limit, offset |
get_policy_trade_overlap | For a single politician, list trades that occurred within a window of days before or after the signing of an executive order affecting the traded sector. Each row contains the trade, the nearestEvent, daysDelta (negative = traded N days before EO signing, positive = traded N days after), matchBasis, and matchCount, plus a summary (totalFlags, totalEstimatedUsd, topSector). Defaults to trades 1-14 params: slug*, window, direction, limit, offset |
get_policy_trade_leaderboard | Rank politicians (Congress + executive branch) by trades that occurred near executive-order signings in sectors the orders affect. Each row includes the politician, flaggedTradeCount, totalEstimatedUsd, topSector, and an exampleEvent. Use for "who trades most around policy activity" style questions. Defaults to the same "traded 1-14 days before signing" lens as get_policy_trade_overlap; same-day t params: sort, window, direction, limit, offset |
get_legislative_calendar | Forward-looking legislative catalyst calendar: upcoming House/Senate floor votes (bills and Senate cloture motions) filtered to items that can move tickers. Each item includes the predicted vote window (start/end/granularity/confidence/provenance), marketRelevance (low/medium/high), significance (1-5), affected sectors with direction + mechanism, verified affected tickers with evidence quotes, pas params: from, to, minRelevance, limit, offset |
get_rvol_history | Get the per-day relative-volume (RVOL) time series for a ticker, bucketed by trading session (premarket 04:00–09:30 ET, regular 09:30–16:00, afterhours 16:00–20:00, or all four). Each day's RVOL compares that session's volume to a trailing same-session baseline (30 trading days by default — configurable via "baselineDays"), so premarket volume is judged against premarket history (not a stale full- params: ticker*, session, days, asOfTime, baselineDays |
get_premarket_scanner | Get the live premarket scanner board — the top premarket gainers and losers by absolute gap %, each row enriched with rvol, marketCap, floatShares (the measured POINT float, null on a withheld dilution-snapshot row — such a row then carries "floatEstimate" {shares, bound: "point" | "ceiling" | "floor", basis}. RENDERING (2026-10-18): a "point" is printed as the plain number with its as-of and cave params: includePennyStocks, universe, sort |
get_upcoming_reverse_splits | Get reverse stock splits SCHEDULED to take effect within a day-offset window of the current US market day, for companies under a market-cap ceiling. Offsets are days from today on the US market calendar: fromOffset=1, toOffset=1 is tomorrow; fromOffset=1, toOffset=7 is the week ahead. Each row carries the ticker, company name, the exact vendor integers (splitFrom/splitTo), a pre-rendered ratio ("1 params: fromOffset, toOffset, maxMarketCap |
get_recent_uplistings | Get OTC-to-exchange uplistings that FINRA recorded on a given US market day, for companies under a market-cap ceiling. Each row carries the old OTC symbol, the resolved new exchange symbol (or null), a confirmed flag, the destination venue (NASDAQ / NYSE / NYSE American / ARCA), company name, effective date, market cap and float in SHARES. 🔴 THIS IS A SAME-DAY READ AND THERE IS NO FORWARD-LOOKING params: dayOffset, maxMarketCap |
search_learn_guides | Search the free Signal8 Academy (signal8.ai/learn) — plain-English guides that explain dilution (ATMs, warrants, convertibles, baby shelf, cash runway), how to read SEC filings (8-K items, Form 4 codes, 13D/13G, 424B5, S-1/S-3), market structure (halts, short interest, float, reverse splits, STOCK Act disclosures) and how to use Signal8. Returns matching guides with title, description, track, sect params: query, track, limit |
get_learn_guide | Get one Signal8 Academy guide as Markdown, by track and slug (both come from search_learn_guides, or from a signal8.ai/learn/<track>/<slug> URL). Returns title, description, section, lastVerified, the public url, the full Markdown body (links already rewritten to absolute signal8.ai URLs), the related guides, the glossary terms it uses (with one-line definitions) and its SEC sources (accession num params: track*, slug* |
define_term | Look up a term in the Signal8 Academy glossary (signal8.ai/learn/glossary) — dilution, SEC filing and trading jargon such as "ATM offering", "baby shelf", "full ratchet", "pre-funded warrant", "going concern", "LULD", "days to cover", "Form 25". Accepts a glossary slug ("atm-offering"), the term itself, or a common alias ("ATM", "price reset"); matching is case- and punctuation-insensitive. Return params: term* |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.