DilutionScan

com.dilutionscan由 dilutionscan.com 发布官方发布者v0.19.0更新于 Nov 4, 2026

小盘股稀释数据,每个数字均注明其SEC文件出处。需要DilutionScan Pro。

AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。

原文描述

Small-cap dilution data, each figure cited to its SEC filing. Requires DilutionScan Pro.

已验证Streamable HTTP可网页运行

概览

DilutionScan 的托管 MCP 服务(mcp.dilutionscan.com),由 dilutionscan.com 发布;可选 API 密钥;Streamable HTTP;34 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

发布者
dilutionscan.com
端点
mcp.dilutionscan.com
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 DilutionScan,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.dilutionscan%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "dilutionscan": {
      "type": "http",
      "url": "https://mcp.dilutionscan.com/mcp"
    }
  }
}

工具

34

search_companies

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.

输入参数limitquery必填

get_company_profile

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 delisted:false. `sharesOutstanding` is DATED: `sharesOutstandingAsOf` + `sharesOutstandingAsOfKind` ("stated" = the issuer's statement date; "checked" = when it was last confirmed against a vendor; "none" = date not recorded) and a vendor-free `sharesOutstandingSource`. Quote the date with the count; null is NOT MEASURED, never zero.

输入参数ticker必填

get_quote

Get Stock 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:null + halted:true when nothing is recoverable. priceAsOfDate is the ET date the price PRINTED (priceAsOf the trade time when known), not when it was read; priceIsStale true means it is an older held close, so say "last traded at $X on <date>", never "trading at" or "today"; null = print date not measured. marketCap is the live price × the SEC-derived share count; when that count is unavailable it is null with marketCapWithheldReason set — NOT MEASURED, never "no market cap" and never $0. The count itself rides as `sharesOutstanding` with `sharesOutstandingAsOf` + `sharesOutstandingAsOfKind` ("stated" = the issuer's statement date; "checked" = when it was last confirmed against a vendor; "none" = date not recorded) and a vendor-free `sharesOutstandingSource` — quote the date with the count. When no MEASURED count exists, `sharesOutstanding` and `marketCap` are a BEST ESTIMATE (the newest dated filed or reference count, moved onto today's split basis): `sharesOutstandingEstimated: true`, `sharesOutstandingEstimateKind` ("stated_as_of" = the ISSUER's last stated count, a dated point; the filings record later issuances LISTED in `statedAsOf.events`, not added — "at_least" is the retired name of the same state) and `marketCapEstimated: true` with `marketCapAsOf` (the count's date). Render a stated_as_of count WITH its date and its events ("2,357,498 as of 2026-10-08 · plus an offering closed 2026-10-09 whose share count is not stated"); never as a bound, never as today's count.

输入参数ticker必填

get_short_interest

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 never struck off a bound — do NOT divide "shortInterest" by a ceiling, floor or estimate from get_float yourself; "float_unavailable" = no float of any kind on record; "short_pct_of_float_unreconciled" = a point float existed but the ratio was implausible or the split basis could not be resolved; "float_class_scope_mismatch" = the float on record POOLS more than one separately listed share class (e.g. Class A + Class D) while short interest is reported for this symbol's class only — do NOT divide "shortInterest" by get_float's figure yourself for that ticker. A null percent is NOT MEASURED, never 0%.

输入参数ticker必填

get_float

Get Float Data

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. CARDINAL RULE: null / absent / withheld means NOT MEASURED, never "no float", "no restricted shares" or zero. A numeric 0 is a MEASURED zero and passes a null check, so decide from the reason/marker fields ("floatWithheldReason", "restrictedBlockCount", "provenance", "direction"), never from the value alone. The share count the float was judged against ("basisSharesOutstanding") is DATED by "sharesOutstandingAsOf" + "sharesOutstandingAsOfKind" ("stated" / "checked" / "none" = date not recorded) and "sharesOutstandingSource"; never present the count without its date. "floatDefinition": "tradeable" (shares outstanding minus affiliates minus restricted/unregistered blocks; filing-derived snapshot tickers), "non_affiliate" (the SEC I.B.6 figure, which INCLUDES restricted shares held by non-affiliates; not a trader's float), "non_affiliate_estimate" (from ownership filings), "free_float" (vendor). "floatDefinition" and "source" appear only on snapshot results; read an ABSENT floatDefinition as "not a filing-derived tradeable float". "nonAffiliateFloatShares" (snapshot tickers) is the ONLY correct input to baby-shelf / I.B.6 math; never use the tradeable float there, and never present the non-affiliate figure as tradeable supply. PRECEDENCE: when the snapshot carries ANY figure ("floatEstimate", "tradeableFloatCeiling", an "affiliateBasis" range), "floatShares" stays null and THAT figure is the answer. A lower tier fills "floatShares" (its own "source" and definition, with "snapshotFloatWithheldReason" as provenance context, not a second refusal) only when the snapshot has no figure, or its only figure is a trivial ceiling (>= 99% of the share count), which is stripped. Floors, points, every "shares_outstanding_ceiling" and an "affiliate_sizing_estimate" (quote its "reason" and "unsizedAffiliates") are kept. A

输入参数ticker必填

get_float_history

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/absent history is expected and an empty rows array is a normal result, not an error or a delisted company. Each row carries "source" ("computed" | "sec_10k" or a market-data vendor tier) because float quality varies by provider — weigh rows accordingly rather than treating all sources as equal. Charged per your API tier.

输入参数daysticker必填

search_sec_filings

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 by COMPANY FACTS (market cap, float, price, sector, industry, exchange, company type, foreign issuer, recent IPO). Rows carry `id` (the filingId for get_filing_document / get_filing_exhibits), cik, company_name, accession_number, form_type, filing_date, acceptedAt, primaryDocument, bodyStored and itemNumbers (plus `rank` and `snippet` with `q`); `pagination` has `total`, `totalRelation` ("eq" exact; "gte" a lower bound cut at 10,000, when `totalEstimate` is "about N"), `hasMore` and `nextCursor`. The `ciks` filter matches the filing's own CIK: a Form 4 filed under the reporting owner's CIK is NOT returned for the issuer's CIK. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so ABSENCE BEFORE archiveFrom IS NOT EVIDENCE a filing was never filed; check SEC EDGAR for earlier periods. Record-only rows (bodyStored: false) have no stored body; open them at their sec.gov URL. Every response carries `archiveFrom` and `rangeStartsBeforeArchive`: a range with no dateFrom or starting before archiveFrom is NEVER definitive (`searchIndex.complete: false`, `reason: "outside_held_range"`, `heldFrom`); report "the archive only holds filings from <archiveFrom>", never "no such filing exists". An empty text result is definitive only when `searchIndex.complete` is true. Full-text `q`: 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 (also NEAR(10), or bare NEAR = within 10) = words close together; word* = prefix of 4+ letters (dilut* matches dilution, dilutive); $AAPL or a capitalised

输入参数qcikspagesortitemsmatchcursordateTofacetssectionsectorsdateFrom另有 17 个

get_filing_documents

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`, call get_exhibit_content with that id; for the whole submission text call get_filing_document with `filingId`. `exhibitId: null` means the document has no readable text row here (XML/XBRL/graphics, or text not held) — open its `secUrl`. When `readableIdsResolved` is false the id lookup failed and exhibitId is omitted (not "none"); get_filing_exhibits(filingId) lists them. `stored: false` means Signal8 holds the filing record but not that document's body — it exists on EDGAR at `secUrl`. A filing not held in the archive returns a not-found error; its documents are still on EDGAR. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so ABSENCE BEFORE archiveFrom IS NOT EVIDENCE a filing was never filed; check SEC EDGAR for earlier periods. Record-only rows (bodyStored: false) have no stored body; open them at their sec.gov URL.

输入参数accessionNumber必填

get_filing_document

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, and accession_number alongside the content. Record-only filings (bodyStored: false) have no body here — open them on sec.gov. To read one exhibit rather than the whole submission, use get_filing_documents or get_filing_exhibits, then get_exhibit_content. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so ABSENCE BEFORE archiveFrom IS NOT EVIDENCE a filing was never filed; check SEC EDGAR for earlier periods. Record-only rows (bodyStored: false) have no stored body; open them at their sec.gov URL.

输入参数filingId必填maxLength

get_filing_exhibits

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.

输入参数filingId必填

get_exhibit_content

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_id`).

输入参数id必填maxLength

search_filing_text

Search Filing Text

Full-text search across SEC filing content that returns the MATCHING PASSAGE: one match per filing, with the exhibit it was found in (`exhibit_id`, `exhibit_type`) and a 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 (also NEAR(10), or bare NEAR = within 10) = words close together; word* = prefix of 4+ letters (dilut* matches dilution, dilutive); $AAPL or a capitalised ticker scopes to that company; a form code (8-K, 10-Q, S-1), "item 5.02" / "8-K 1.05" and a bare year (2024) scope to that form / 8-K item / year. Quote multi-word phrases; the archive's reading of the query is in meta.understanding. Best for locating specific clauses ("change of control", "anti-dilution", "right of first refusal") and for the excerpt of a known filing (pass accessionNumber or filingId). Use search_sec_filings with `q` for filing-level paging, totals, date ranges, 8-K items, excluded forms or company filters. Filters: CIK, filing, accession number, form type, section (risk_factors, mdna, ex99 …; applied only when meta.sections confirms it, otherwise meta.unsupported says the whole filing was searched) and exhibitTypes (EX-10 …). Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see `archiveFrom` in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so ABSENCE BEFORE archiveFrom IS NOT EVIDENCE a filing was never filed; check SEC EDGAR for earlier periods. Record-only rows (bodyStored: false) have no stored body; open them at their sec.gov URL.

输入参数ciksortlimitmatchfacetspattern必填sectionfilingIdformTypeunderstandexhibitTypessnippetLength另有 2 个

lookup_accession_number

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 only found on SEC EDGAR the response has isInDatabase: false and basic metadata only. For the full document list use get_filing_documents.

输入参数accessionNumber必填

get_compliance

Get Compliance Evaluation

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. Rules cover bid price, equity, reverse-split limit, market value of publicly held shares, publicly held shares, holders, timely periodic filings, annual meeting and audit committee, per exchange tier. Standards that could not be judged from any measurement are listed in `notEvaluated` (not passing, not failing); never read them, or the absence of a deficiency notice, as compliance. This is the most thorough compliance check available.

输入参数ticker必填

get_split_history

Get Stock 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 `cumulativeWithheldReason` to tell them apart. `unconfirmed_splits_in_window` means at least one in-window reverse split is evidenced by only one source, so no cumulative is defensible: the confirmed splits alone would understate it, and understating a cumulative can put an issuer that breaches the 1:250 cap under it. Each row also carries `confirmed`; a `confirmed: false` split appears only in the announcement calendar, which retains every announcement and retracts none, so it is usually an amended or superseded announcement and occasionally a real split the effected-splits ledger missed. Both are returned. `ratioDisplay` and `type` are likewise null for a ratio whose exact factor cannot be determined. NOT EVERY VENDOR "SPLIT" IS A SPLIT: stock dividends and other distributions under 25%, spin-off price factors and consolidations under 1.5x are returned in `nonSplitAdjustments` (each with a `kind` and `meaning`), never in `splits`, and are excluded from `totalSplits`, `reverseSplitCount` and the cumulative. Do not describe them as splits.

输入参数ticker必填

get_cash_position

Get AI 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 the HTTP status: coverage is partial, so `available: false` with reason `snapshot_not_generated` means THIS COMPANY HAS NOT BEEN ANALYSED YET, which is different from it having no cash data and different from an outage (an outage is a 5xx). Never report a company as having no cash or no runway on the strength of an unavailable response. The `scenarios` envelope is preserved for compatibility but only `scenarios.closed` is populated: `pending` and `announced` are null with reason `scenario_not_modelled` because the extraction records only REALIZED cash-raising events and never models speculative raises. Do not infer them from shelf or ATM capacity. CURRENCY: amounts are in the filer's REPORTING currency, which is not always USD (Canadian, European, Japanese and Chinese filers report in their own currency). Read top-level `currency` (ISO 4217; null = not determined) and `currencySource` ("presumed_usd" means no foreign-currency marker was found, not a measurement). Every money object is {usd, native: {amount, currency}}: `usd` (and scenarios.closed.estimatedCashUsd / adjustedEstimatedCashUsd / netCapitalRaisesUsd) is null when the block is not in USD; nothing is converted. Never present `native.amount` as dollars. monthsOfCashLeft is currency-neutral and stays populated. Included in Signal8 Pro (403 FEATURE_NOT_AVAILABLE, requiredTier "pro", without it). That is a tier upgrade, not an add-on purchase — the add-on is no longer sold.

输入参数ticker必填

get_cash_history

Get 10-Year 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.

输入参数ticker必填

screen_must_raise

Screen Companies That Must Raise Capital

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 included by default and listed first: they carry cash_runway_months null with cashRunwayReason "estimate_would_be_negative" (the last cash figure, dated cashRunwayAsOf, rolled forward by the burn rate is below zero today). That is an estimate from a dated balance, never a reported zero balance — say "estimated exhausted as of today, last cash figure <cashRunwayAsOf>", not "has no cash". Rows also carry estimatedCurrentCash / estimatedCashAsOf (dilution-snapshot cash projection; null = not measured) and listingMarket.

输入参数limitmarketoffsetindustrymaxMonthsincludeExhausted

get_cash_runway_calendar

Get Cash Runway Depletion 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 it also lists, first, companies whose ESTIMATED cash is already exhausted (cash_runway_months null, cashRunwayReason "estimate_would_be_negative", cashRunwayAsOf = the date of the cash figure that was rolled forward) — an estimate, never a reported zero balance.

输入参数tofromlimitmarketoffsetindustry

get_dilution_coverage

Get Dilution Coverage Status

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. An `outOfScope` ticker is a statement about the PRODUCT (dilution analysis covers small-cap issuers only) and says NOTHING about that company's dilution. `stale` means the analysis is real but predates recent filings; `statusDetail` refines it: `newer_filing_unread` (`unreadFilings` names the material filings since: new/amended instrument, 424B5 pricing, split, 10-K) or `delisting_filed` (`delistingFiled` names the Form 25/25-NSE/15). Say the analysis predates that filing, never present it as current. A null `unreadFilings` is NOT MEASURED, never "nothing filed since". ALWAYS RETURNS 200: read `available` and `reason`, never the HTTP status. `not_covered` means this company has not been analysed yet, not that it has no dilution; an outage is a 5xx. NULL, absent or withheld means NOT MEASURED; it never means "no dilution", "no warrants", "no shelf" or zero. A numeric 0 is a MEASURED zero and defeats a null check: decide from the availability/withheld/reason field, never from the value itself. Included in Signal8 Pro: without it the call returns 403 FEATURE_NOT_AVAILABLE with `requiredTier: "pro"` (a tier upgrade; there is no add-on to buy).

输入参数ticker必填

get_dilution_risk

Get Dilution Pressure Score and Risk Levels

Get the dilution pressure score: 0-100 with a 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. 🔴 SCORE: components whose inputs could not be measured are DROPPED FROM THE DENOMINATOR, so 58 may be 58 out of 85. Always report `score`/`scoreMaxMeasured` and name the excluded `scoreUnmeasuredComponents`; NEVER rescale it to /100, and never read a low numerator as low risk. `scoreDenominatorThin: true` (under 70 measured points) is a PARTIAL reading ("N of M measured"). A non-null `scoreWithheldReason` (e.g. `no_dilution_snapshot`) means NO score, not zero. With no filed share count, share-count / market-cap components rest on `details.sharesOutstandingEstimate` {shares, kind, asOf, source} (`details.marketCapSource: "derived_price_x_estimated_os"`): say they rest on an estimate. 🔴 LEVELS: when `levelsAreLowerBound` (always present) is true, the levels named in `levelsLowerBoundScope` are floors, not measurements: "medium" means AT LEAST medium. State those (and only those) as a lower bound. `levelsLowerBoundReason`: `unquantified_live_instruments` floors overall + overheadSupply; `offering_capacity_unknown` and `market_cap_unmeasured` floor overall + offeringAbility, NOT `overheadSupply`; `os_growth_span_short`, `os_growth_issuance_floor`, `os_growth_rebased_partial` floor historical + overall; `overhead_capacity_unquantified` floors overheadSupply + overall. Name the stated reason, never another. `details.levelBounds` per level: `floor` (unsized instruments at zero), `ceiling` (at filed maximum; null = some instrument has none), `exact`, `bestEstimate`, `estimated`, `estimateBasis`; report an estimated level as a best estimate with its floor and ceiling, never as a measurement. A null `overall` with a non-null `levelsWithheldReason` is WITHHELD, not low. `offeringAbil

输入参数ticker必填

get_dilution_snapshot

Get Dilution Snapshot Summary

Get the dilution snapshot header (the heaviest dilution call): summary totals (potential new shares, their % of shares outstanding, per-family totals), the cash position (anchor cash, monthly burn, estimated current cash, runway months), the float block, and `meta` provenance. NO INSTRUMENT ROWS: call get_dilution_instruments per family, and get_dilution_coverage first. Cash is in the filer's REPORTING currency: read `cashPosition.currency` (ISO 4217; null = not determined) and `cashPosition.currencySource` ("presumed_usd" is not a measurement) before calling it dollars (runway months are currency-neutral). 🔴 FLOAT: a non-null `floatWithheldReason` means the tradeable float was NOT MEASURED; never state it as a number. A declined block (`available: false`) may carry `refusal.withheldReason`, the exact value get_float serves. `tradeableFloatCeiling` is an UPPER BOUND, NOT a float: never feed it to a market capitalisation, percent-of-float, short-interest ratio or comparison; say in words the float is at most that figure, with no ~ / ≤ / ≥ glyph. 🔴 BOUNDED TOTALS: a null total (`potentialNewShares`, `totalWarrantShares`, `totalConvertibleShares`, `totalEquityPlanShares`, `totalExchangeableShares`, `potentialDilutionPercent`) may sit beside `<key>Bound: "ceiling"`, `<key>Ceiling`, `<key>Floor`: report "at most <ceiling>" and the floor as the measured part, never the ceiling as the total. With `potentialDilutionPercentBoundReason: "stated_count_denominator"` there is NO floor: the ceiling divides by the last stated share count (as of `potentialDilutionPercentCeilingShareCountAsOf`); say "at most X%, against the count stated as of <date>". 🔴 `notMeasuredReasons[]` ({field, code, text, detail, expected {form, dueDate, status}}) says WHY a figure is null; quote it, never turn it into a value. `expectedFilings[]` lists the next periodic report(s); `status: "late"` means due by `dueDate` with none on file as of `checkedOn` (say exactly that, never speculate why); `dueDate

输入参数ticker必填

get_dilution_instruments

Get Dilution Instrument Rows by Family

Get ONE instrument family's rows with per-field SEC citations (accession number, filing date and the verbatim sentence each figure was read from). Families: warrants, convertibles, preferred, shelfs, atms, elocs, s1_offerings, equity_plans, exchangeables, recent_offerings. One family per call; request only what you need. 🔴 `withheldRows` / `withheldRowCount`: rows that could NOT be verified were blanked, so every family total is a LOWER BOUND; say so. An empty rows array on a covered company is a measured "none found in the filings read"; an unavailable response is not. 🔴 `disputed` status (warrants / convertibles / preferred / exchangeables): the issuer's latest filing disputes the instrument; it is SHOWN and EXCLUDED from totals (`summary.disputedInstrumentCount` / `disputedInstrumentShares`); report it as a disputed claim, never as outstanding or retired. `contingencyTrigger: "event_of_default"`: still outstanding and COUNTED; say "converts only on an event of default", never not dilutive. 🔴 convertibles `principalBasis` `aggregate_only` / `fair_value_only` / `conflict` / `undisclosed_since_issue`: the current balance is NOT MEASURED (principalOutstanding null); report `principalOriginal` as the ORIGINAL principal. `conversionBasis: "formula_unanchored"`: no share count computable; unquantified, not zero. convertibles / preferred `sharesIssuableBasis: "conflict_upper_bound"`: report "up to `sharesIssuableIfConverted`; the issuer states `sharesIssuableIssuerStated`", never the higher figure alone as the issuer's count. 🔴 warrants with null `sharesUnderlying` beside `aggregateExerciseValueDollars` / `exercisePriceFloor` / `sharesCeilingAsFiled` are dollar-denominated or capped: `summary.warrantSharesCeiling` is a ceiling, never a count and never in `potentialNewShares`. `warrantCount` counts WARRANTS, not shares. 🔴 shelfs `babyShelfCurrentCapacityDollars` is a STORED, DATED figure, NOT TODAY'S HEADROOM: always report it with `babyShelfCapacityAsOf` (null = und

输入参数family必填ticker必填

get_baby_shelf_capacity

Get Baby-Shelf (S-3 I.B.6) Raisable 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 now, under the one-third-of-public-float cap that applies below a $75M non-affiliate float, less trailing-twelve-month takedowns. Returns the float basis, the cap, takedowns counted and the remaining raisable amount. 🔴 `constraintApplies: false`: the cap does NOT bind (float >= $75M, primary offerings unlimited under I.B.1); not "no capacity" and not a favourable finding. 🔴 `constraintApplies: null` with `suppressedReason: "float_unmeasured"`: the float value was NOT MEASURED; report not measured, NEVER as "the cap does not bind" and NEVER as unlimited. 🔴 A `suppressed` figure is WITHHELD (e.g. an issuer delisted to OTC cannot run an S-3 primary): report it as not stateable, NEVER as $0 raisable. `suppressedReason: "ib6_pool_unattributed"`: the cap applies but trailing sales could not all be attributed, so $0 is a lower bound; `remainingCapacity` is null and `capacityUpperBoundDollars` means "at most". `suppressedReason: "issuer_not_ib6_limited"`: the issuer's current prospectus offers more than the cap with no I.B.6 limitation (`issuerUnlimitedOffer`); whether the cap applies is NOT MEASURED, never $0, constrained or unlimited. `floatValueBasis: "issuer_stated"`: the issuer's own printed I.B.6 float (`issuerStatedFloat`, prospectus <= 60 days old) was lower than the live valuation and was used. A null remaining capacity is not measured, not zero. ALWAYS RETURNS 200: read `available` and `reason`, never the HTTP status. `not_covered` means this company has not been analysed yet, not that it has no dilution; an outage is a 5xx. NULL, absent or withheld means NOT MEASURED; it never means "no dilution", "no warrants", "no shelf" or zero. A numeric 0 is a MEASURED zero and defeats a null check: decide from the availability/withheld/reason field, never from the value itself. Figures are as of `meta.asOfDate`, from filings read through `meta.filing

输入参数ticker必填

get_dilution_performance

Get Post-Offering Price 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 series means no offering performance was measured, NOT that offerings had no effect and NOT that there were no offerings. ALWAYS RETURNS 200: read `available` and `reason`, never the HTTP status. `not_covered` means this company has not been analysed yet, not that it has no dilution; an outage is a 5xx. NULL, absent or withheld means NOT MEASURED; it never means "no dilution", "no warrants", "no shelf" or zero. A numeric 0 is a MEASURED zero and defeats a null check: decide from the availability/withheld/reason field, never from the value itself. Figures are as of `meta.asOfDate`, from filings read through `meta.filingsThrough` (a stale date predates anything filed since). Share counts are on one split basis; a row that cannot be rebased is omitted and counted, never published on a mixed basis. Included in Signal8 Pro: without it the call returns 403 FEATURE_NOT_AVAILABLE with `requiredTier: "pro"` (a tier upgrade; there is no add-on to buy).

输入参数ticker必填

get_dilution_history

Get Shares-Outstanding and Cash 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 was reported and is NOT rebased to today, so a reverse split shows as a step and points either side of one are not directly comparable. Do not compute a growth rate across a split boundary from these raw points. A gap in the series means no filing supplied that period, not that the share count was unchanged. ALWAYS RETURNS 200: read `available` and `reason`, never the HTTP status. `not_covered` means this company has not been analysed yet, not that it has no dilution; an outage is a 5xx. NULL, absent or withheld means NOT MEASURED; it never means "no dilution", "no warrants", "no shelf" or zero. A numeric 0 is a MEASURED zero and defeats a null check: decide from the availability/withheld/reason field, never from the value itself. Figures are as of `meta.asOfDate`, from filings read through `meta.filingsThrough` (a stale date predates anything filed since). Share counts are on one split basis; a row that cannot be rebased is omitted and counted, never published on a mixed basis. Included in Signal8 Pro: without it the call returns 403 FEATURE_NOT_AVAILABLE with `requiredTier: "pro"` (a tier upgrade; there is no add-on to buy).

输入参数ticker必填

get_upcoming_reverse_splits

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-for-20"), the effective date, market cap, float in SHARES, and price. floatShares is on the SAME split basis as the market cap. floatBasis says what it is: "measured", or "estimate" / "estimate_rebased" (the float ladder's point estimate, moved across this split when it predates it) — present an estimate as an estimate. 🔴 floatShares: null MEANS NOT MEASURED OR WITHHELD — never zero, never "no float". Such rows ARE included (they have a valid market cap); floatWithheldReason says why. Do not substitute a float from another source. floatUnknownCount counts those null-float rows IN the list; it is not a withholding count (withheldCount is). price is on the SAME split basis as the market cap (null when it cannot be stated on one basis), so never pair it with a pre-split price from elsewhere. WHAT THIS IS: rows are splits scheduled AS OF NOW — not a guarantee that every split effective in the window is already known. The underlying stock_splits table has NO created_at column, so there is no way to measure when a row first appeared, and a split announced later will simply be missing. Describe results as "scheduled as of now", NEVER as "all of" or "every" reverse split. A scheduled split can also be postponed or cancelled after it is announced. 🔴 capUnknownCount IS A WITHHOLDING COUNT, NOT A ZERO. It counts rows that passed every other filter and were DELIBERATELY EXCLUDED because Signal8 has no measured market cap for them — typically real OTC microcaps. It does NOT mean those companies have no dilution, no split, or no cap; it means the cap was not measured, so they cannot b

输入参数toOffsetfromOffsetmaxMarketCapincludeLifecycle

get_reverse_split_lifecycle

Get Reverse Split Lifecycle

Get the reverse-split LIFECYCLE Signal8 has tracked from a company's own SEC filings (proxies, 8-K Items 3.03/5.03/5.07, 6-Ks): one episode per split authority, newest first, each with its state (proposed, vote scheduled, approved, ratio set, effective date announced, charter filed, … or closed), the ratio or authorised range, meeting / vote / effective dates, the state history, and the events behind it oldest first. Every event carries its source (accession and an EDGAR sourceUrl) and its facts; every STATED fact carries the VERBATIM QUOTE it was read from — cite the quote and link the source rather than paraphrasing. 🔴 NOT STATED IS NOT MEASURED, NEVER "NO". A fact with notStated:true (or a null field) means the documents read did not say it — never that it is false, zero or absent. coverage "unresolved" means the ticker could not be matched to an SEC registrant: NOT MEASURED. coverage "tracked" with an EMPTY episodes list means no episode has been tracked from the filings read since the tracker started — it is NOT evidence that no reverse split is planned; never say "no reverse split". effectiveDate is the date the ISSUER STATED, strictly parsed: a SCHEDULED date, not a confirmation that the split happened (it can be postponed or abandoned). A conditional date ("the 25th trading day after the Trigger Event") is returned VERBATIM in effectiveCondition and is never a date — do not compute one from it. verification is copied from the tracker: "provisional" = one source, not cross-checked (the default, not "doubtful"); "verified" = cross-checked. APPROVAL (present only when approvalAvailable is true): each episode carries approvalPath {path, label, quote, sourceUrl} — shareholder_vote, written_consent, fpi_written_resolution, pre_approved_range (the board set the ratio inside a range shareholders approved earlier), board_only (the company's OWN filing states no shareholder approval was required, quoted) or unknown. The response also carries domicile {code, label, gr

输入参数ticker必填

get_ended_reverse_splits

Get Ended Reverse Splits

List reverse-split episodes ACROSS COMPANIES that ended WITHOUT the split taking effect, from Signal8's SEC-filing tracker: outcome "vote_failed" (shareholders did not approve), "abandoned" (the company said it will not proceed), "authority_expired" (an approval lapsed unused past its stated deadline) or "postponed_indefinitely". Splits that DID happen are not here (get_reverse_splits_list, view "recent"); one company's full history is get_reverse_split_lifecycle. Newest end first. Each row is the Reverse Splits page row (ticker, companyName, hasPage, ratio / ratioMin / ratioMax, trackerState, meetingDate, approvedDate, exchange, securityType, marketCapUsd, cik, approvalPath, domicile, splitAuthority, authorityTerms, verification) plus sourceUrl / sourceAccession and sourceDocuments (EVERY document behind the episode, each with accession or URL; cite them) and an "ended" block: outcome, outcomeLabel, endedOn, endedOnBasis, closedReason (the tracker's own note, verbatim), voteDate, closingAccession / closingUrl (the filing that closed it, when one did). 🔴 endedOnBasis says what endedOn IS: "vote_date" or "meeting_date" = the vote as stated; "authority_expiry" = the stated last day of the authority; "closing_filing" = the ET day of the filing that closed it; "recorded" = none of those, the day the TRACKER recorded the close, which can be later than the event. Say which. 🔴 NULL MEANS NOT MEASURED OR NOT STATED. An EMPTY list is what the tracker has on file for the window, never "no company abandoned a split"; completeness "tracked_episodes" = what the tracker has read from filings since it started, not every company. boundReached: true = the window held more episodes than one read returns; narrow it with from / to. 🔴 LOCKED ROWS ARE WITHHELD, NOT ABSENT. The facts are Signal8 Pro. A key not owned by a Pro account gets rows with locked: true and ONLY ticker, companyName, hasPage and exchange (access "preview", lockedCount); never read a locked row as anything but "fa

输入参数tofromlimitcursoroutcomeexchange

get_reverse_split_authority

Get Reverse Split Authority

Screen companies whose BOARD still holds reverse-split authority it may use WITHOUT ANOTHER shareholder vote: an approval on file (shareholder vote or written consent; tracker states consent_pending, voted_approved, ratio_fixed) not past a stated expiry, one row per company (its newest approval; other live ones in otherLiveAuthorityEpisodeIds). Soonest stated expiry first. Each row is the Reverse Splits page row (ticker, companyName, ratio, exchange, approvalPath, domicile, splitAuthority, authorityTerms, sourceUrl / sourceAccession, sourceDocuments: every document behind the approval with accession or URL; cite them) plus an "authority" block: episodeId, state, approvedDate, approvedRatio {fixed, min, max} (the per-split ratio or range approved), cumulativeCap (cap on the PRODUCT of every split drawn on it), multiStep, expiresOn, expiryTerm, daysUntilExpiry, and room: capRatio + capBasis ("cumulative_cap", or "single_split_maximum" = no cumulative cap stated and nothing drawn, so one split up to the approved maximum), perSplitMax, usedSplits + usedRatio (product of the splits already executed on it; 1 = none drawn), remainingRatio (capRatio / usedRatio), exhausted, nextSplitMax, pendingRatio (a ratio the board set that has not taken effect) and a one-line label. The approval route is approvalPath.path (shareholder_vote, written_consent, fpi_written_resolution, pre_approved_range, board_only or unknown = "Not determined", never "no vote"). Ratios are 1-for-N factors and combine by product. 🔴 NOT MEASURED IS NEVER "NONE REMAINING". room.remainingRatio null comes with room.notMeasuredReason: "cumulative_cap_not_stated", "ratio_not_stated" or "drawn_split_ratio_not_stated"; say the remaining room is not measured and why. Such rows are LISTED, never dropped, and never read as full. expiresOn null = the documents read state no expiry, NOT "never expires". An empty list is what the tracker has on file, never "no board holds authority". This screen covers approvals on fil

输入参数limitcursorexchangeminRemainingexpiringBefore

get_reverse_splits_list

Get Reverse Splits List

Get the cross-company reverse-split lists the Signal8 Reverse Splits page serves: ONE view per call. view "upcoming" = splits with an effective date from tomorrow through 30 US market days ahead, the vendor market calendar UNION Signal8's SEC-filing tracker (filings, exchange and depositary notices); "recent" = the same union for effective dates in the past 30 days; "approved_no_date" = tracked episodes where shareholders (or the board, where no vote is required) have APPROVED a reverse split but no effective date is stated yet; "vote_pending" = tracked episodes where a reverse split is PROPOSED and the shareholder vote has NOT happened yet. A security sits on exactly one view (upcoming, then recent, then approved_no_date, then vote_pending). Each row carries ticker, companyName, hasPage, source ("market_calendar" or "tracker"), stage + stageLabel, trackerState, ratio (or ratioMin / ratioMax for an authorised range), meetingDate, approvedDate, effectiveDate, effectiveDateSource, marketCalendarAgrees / marketCalendarDate / marketCalendarRatio, effectiveCondition, verification, marketConfirmation (recent only), marketCapUsd + capBucket, securityType, exchange, cik, sourceUrl / sourceAccession / sourceFormType / sourceFiledDate / sourceLabel, sourceDocuments (every document behind the episode), quote, adsRatioChange, approvalPath, domicile, splitAuthority and authorityTerms. 🔴 NULL MEANS NOT MEASURED OR NOT STATED, NEVER "NO SPLIT", never zero, never "no vote needed", never "no date". A null ratio = the documents state none yet; a null marketCapUsd = cap not measured (capBucket is then null, never "nano"); a null verification = no tracked episode; a null domicile = not measured (never "Delaware"); a null marketConfirmation = the price step was not measured. An EMPTY rows array on a view is normal and is not evidence that no company is splitting. completeness says what the view is: "scheduled_as_of_now" (upcoming) and "recorded_as_of_now" (recent) are what is KNOWN as

输入参数captypeviewboardlimitoffsetdomicileexchange

search_learn_guides

Search Signal8 Academy Guides

Free: works without an API key or Pro plan (the hosted server only needs a signed-in account). Search the 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, section, reading time, lastVerified date, the public url and the signal8:// resource uri — no bodies; call get_learn_guide for the full Markdown. Keyword match: every query word must appear somewhere in the guide; title hits rank highest. An empty query lists every guide (optionally one track) in reading order. Use this to ground an explanation of a concept the user asked about, or to cite a guide alongside data from the dilution / filing tools. An empty result means no guide matched the words given — try fewer or broader words (e.g. "warrant" rather than "warrant inducement repricing") — not that the topic is unimportant.

输入参数limitquerytrack

get_learn_guide

Get Signal8 Academy Guide

Free: works without an API key or Pro plan (the hosted server only needs a signed-in account). 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 numbers). Guides use hypothetical examples ("Company X") unless a source is cited; they are education, not advice about any named company. When you quote or paraphrase a guide, cite its url.

输入参数slug必填track必填

define_term

Define a Market / SEC Term

Free: works without an API key or Pro plan (the hosted server only needs a signed-in account). 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. Returns the term, a one-line short definition, the long definition as Markdown, related terms, the Academy guides that use it, and the public url. A TERM_NOT_FOUND error means the glossary has no entry for that wording — not that the concept does not exist; try search_learn_guides with the same words.

输入参数term必填

版本历史

1
  1. v0.19.0最新Nov 3, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。