OptionWhales
REMOTE · API.OPTIONWHALES.IO · 2 COMPONENTS
US options flow & stock data: unusual activity, gamma levels, IV, earnings. OAuth sign-in or keys.
Available components
Last scanned (19 hours ago)
Scores higher than 91% of remote servers
Unreachable for 1 day in a row. Last reached 3 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Stability: pass → unverified ▼ security
- Authorization: partial → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 2 Nov 26 +1
- Stability: 0.97 → pass security
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 0
- Schema quality: 3369 → 3832 ▼ functional
- New tool “absorption_market” functional
- New tool “absorption_ticker” functional
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://api.optionwhales.io/mcp/connect
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.optionwhales.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690 | 8 | Verified |
| optionwhales.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.optionwhales.io/mcp/connect | Unreachable | ||
| http (plaintext) | http://api.optionwhales.io/mcp/connect | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
abnormal_trades_current Unusual options activity ~106
Unusual options activity this session — large, sweep-like or volume-versus-open-interest outlier orders with ticker, direction, size and time. Use for 'any unusual options activity in NVDA?' or 'biggest options trades today'. Without an account: the latest 3 trades (ticker, direction, type, time); free: the latest 5 with core fields; Pro: the full feed.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Trades to return (default 100) |
No output schema declared.
No examples provided.
absorption_market Absorption cross-section ~272
WHICH tickers are having their order flow ABSORBED right now - large flow moving price less than the continuous-tape Kyle-lambda model explains - for a date (default latest): one row per ticker with the absorption strength percentile, the side, the pre-event context and whether it is tradeable (DROP context + Q3/Q4), plus whole-market breadth. row_semantics says whether each row is the day's PEAK event (settled session) or the LATEST one (live). This is an EVENT FEED, not a validated signal: the regime gate is long-only (SPY 63-day return > 0) and fails in bear tapes, auction windows are excluded as mechanical artifacts, and provisional=true means the event was detected live without calibration. Check coverage.completeness before concluding the tape is quiet - a degraded feed looks identical to a calm one. Use for 'who is absorbing selling today?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD (default latest) |
| include_events | boolean | – | Attach each row's recent events |
| limit | integer | – | Rows to return (default 50) |
| min_pctile | number | – | Minimum absorption percentile (0-100) |
| tradeable_only | boolean | – | Only DROP context + Q3/Q4 rows |
No output schema declared.
No examples provided.
absorption_ticker Absorption for one ticker ~191
One ticker's absorption events for a date (default latest) PLUS its trailing per-day direction history, so you can tell whether today is unusual for the name. Each event carries the absorption strength percentile, the side, the pre-event context quartile and provisional=true when it was detected live without calibration. Forward returns in the history are RAW LONG P&L and are deliberately NOT signed by the absorption side, so a negative number on a sell-absorption day is not a losing signal. Use for 'is NVDA being absorbed, and is that unusual?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD (default latest) |
| days | integer | – | Trailing sessions of history (default 20) |
| limit | integer | – | Events to return (default 20) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
contract_atm At-the-money option strikes ~105
Near-the-money option strikes grouped by expiry, within a band around spot (default plus or minus 5%). Use to find the liquid at-the-money contracts for a ticker. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Snapshot date YYYY-MM-DD (default latest) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| width | number | – | Strike band as a fraction of spot (default 0.05) |
No output schema declared.
No examples provided.
contract_chain Option chain ~136
Option chain for a ticker from the latest open-interest snapshot: each contract's OCC symbol, strike, expiry, type and open interest (OI > 0). Filter by expiry, call/put or minimum OI. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Snapshot date YYYY-MM-DD (default latest) |
| expiry | string | – | One expiry, YYYY-MM-DD |
| limit | integer | – | Contracts to return (default 500) |
| min_oi | integer | – | – |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| type | string | – | – |
No output schema declared.
No examples provided.
contract_historic Option contract price history ~90
Daily OHLC price bars for one option contract by OCC symbol (e.g. SPY260130C00600000) between two dates, about a year of look-back. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | yes | YYYY-MM-DD |
| occ | string | yes | OCC option symbol, e.g. SPY260130C00600000 |
| to | string | yes | YYYY-MM-DD |
No output schema declared.
No examples provided.
darkpool_ranking Dark pool ranking ~71
Off-exchange (dark pool) activity: the market-wide off-exchange share and a per-ticker ranking by off-exchange notional for a date (default latest). Use for 'where is dark pool activity concentrated?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD (default latest) |
No output schema declared.
No examples provided.
darkpool_time_profile Dark pool time profile ~213
WHEN one ticker's off-exchange (dark pool) volume traded, by price, for a date (default latest): a 5-minute × price grid of shares, the point of control and value area, and the largest block prints at their report time (outside_nbbo flags prints reported beyond the quote, away_from_quote those priced away from it: >0.1% and 2 cents outside). cells_side gives each cell's [buy, sell, away] shares (buy = at the ask + 60% near it, sell = at the bid + 60% near it, away left out, rest neutral); totals add buy_volume, sell_volume, away_volume. Side is an NBBO-location proxy, not buy/sell; ~15 min delayed. Use for 'when did the dark pool trade NVDA around 180?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD (default latest) |
| ticker | string | yes | Ticker, e.g. NVDA |
No output schema declared.
No examples provided.
directional_current Directional score by ticker ~63
Per-ticker directional score for this session (-1 bearish to +1 bullish) combining net premium, order clustering and implied volatility. Use to rank names by bullish or bearish options positioning. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| max_display | integer | – | Tickers to return (default 100) |
No output schema declared.
No examples provided.
dividends Dividend history ~67
Cash dividend history for a stock: amount, frequency, ex-dividend and pay dates. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Dividends to return (default 20) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
earnings_calendar Earnings calendar ~138
Upcoming earnings reports: date, before/after market, EPS and revenue estimates. Pass a ticker for 'when does NVDA report?', or omit it for 'who reports this week?' (days sets the window, default 7). Without an account: date and time for one ticker or the next 3 reporters; free: up to 10 with estimates; Pro: the full calendar plus the options-flow intent label.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Days ahead to return (default 7) |
| limit | integer | – | Reporters to return (default 10) |
| ticker | string | – | Optional ticker, e.g. NVDA |
No output schema declared.
No examples provided.
earnings_current Earnings options positioning ~45
Options positioning around earnings for companies reporting this session: pre-earnings order flow, Greeks and intent signals. Use for 'how are traders positioned into NVDA earnings?'. Pro.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
economic_calendar Economic calendar ~82
Upcoming US economic events (CPI, FOMC, jobs, GDP and more) with impact level and the ETFs that historically react. Use for 'what macro events are coming up?'. Without an account: the next 3 high-impact events; free and Pro: the full calendar.
| Name | Type | Req | Description |
|---|---|---|---|
| impact | string | – | Optional filter: high, medium or low |
No output schema declared.
No examples provided.
financials Company financials ~83
Company financial statements (income statement, balance sheet, cash flow) for trailing-twelve-month, quarterly or annual periods, latest first. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Periods to return (default 4) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| timeframe | string | – | – |
No output schema declared.
No examples provided.
gex_levels Gamma exposure (GEX) levels ~209
Dealer gamma-exposure key levels for a ticker: gamma flip, max pain, call wall, put wall and spot. Call wall = the strike at/above spot with the largest call gamma, put wall = the strike at/below spot with the largest put gamma; max pain is struck per expiration and max_pain_expiry names the (front) expiry it belongs to — max_pain_basis / wall_basis say which definition each field carries. Use when asked where price may pin, bounce, stall or accelerate, e.g. 'what are the gamma levels on SPY?'. session defaults to the latest trading day. Without an account and on free: SPY and QQQ; Pro: any ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| dte_filter | integer | – | Optional expiry window filter |
| session | string | – | Trading date YYYY-MM-DD, or 'latest' (default) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
greek_exposure Dealer greek exposure ~109
Dealer gamma, charm and vanna exposure for a ticker, by strike and by expiry (calls, puts, net). Use for detailed hedging-flow analysis beyond the key GEX levels. session defaults to the latest trading day. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| dte_filter | string | – | – |
| session | string | – | Trading date YYYY-MM-DD, or 'latest' (default) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
insider_trades Insider trades ~88
SEC Form 4 insider transactions for a stock, latest first: insider, transaction code, shares, price, value and the SEC filing link. Use for 'are insiders buying AAPL?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Transactions to return (default 25) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
intent_flow_current Options flow intent rankings ~94
Today's options-flow intent rankings: which tickers show bullish vs bearish institutional positioning (accumulation, distribution, hedging), with direction bias and strength. Use for 'what are big options traders doing today?' or 'where is smart money flowing?'. Without an account: top 3 tickers (ticker, intent, direction); free: top 3 with core fields; Pro: every tracked ticker with all fields.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
market_tide Market options tide ~97
Market-wide options net-premium 'tide': signed large-order premium into calls versus puts, its intraday cumulative curve, and the top net-premium tickers for a session. Use for 'is options flow bullish or bearish overall today?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | Trading date YYYY-MM-DD, or 'latest' (default) |
| top_n | integer | – | Top tickers to include (default 25) |
No output schema declared.
No examples provided.
momentum_rankings Options flow momentum rankings ~70
Tickers ranked by options-flow momentum (the fastest-changing positioning this session). Use for 'which stocks have the strongest options momentum right now?'. Free accounts: top 3; Pro: up to 200 with all fields.
| Name | Type | Req | Description |
|---|---|---|---|
| top | integer | – | Tickers to return (default 50) |
No output schema declared.
No examples provided.
oi_movers Open interest movers ~68
Tickers ranked by day-over-day change in total options open interest (top gainers, losers, most active). Use for 'where is new options positioning building?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| dte | string | – | – |
| limit | integer | – | Tickers to return (default 50) |
No output schema declared.
No examples provided.
oi_timeseries Open interest history ~79
Open interest and volume across recent snapshots for one ticker (calls, puts, total). Use to see whether options positioning is building or unwinding. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| dte | string | – | – |
| slot | string | – | – |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
screener Multi-signal stock screener ~220
Screen the market across options-flow net premium, open-interest change, FDA catalysts and congressional trading. Filter by direction, minimum premium or OI change, catalyst window, trial phase or congress activity; sort and limit. Use for 'find bullish options-flow names with an FDA catalyst in the next 30 days'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| fda_within_days | integer | – | Require an FDA catalyst within N days (0 = no requirement) |
| has_congress | boolean | – | Require congressional trades in the last 30 days |
| limit | integer | – | Rows to return (default 25) |
| min_abs_premium | number | – | Minimum absolute net premium in dollars |
| min_oi_change | integer | – | Minimum day-over-day OI change |
| order | string | – | – |
| phase | string | – | – |
| session | string | – | Trading date YYYY-MM-DD, or 'latest' (default) |
| signals | array | – | Signals a row must carry |
| sort_by | string | – | – |
No output schema declared.
No examples provided.
seasonality Monthly seasonality ~82
Monthly seasonality for a stock: average and median return by calendar month, hit rate, best and worst years over a 1 to 25 year look-back. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| years | integer | – | Look-back in years (default 10) |
No output schema declared.
No examples provided.
sector_tide Sector options tide ~52
Options net premium aggregated by sector for a session. Use for 'which sectors are seeing bullish options flow?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | – | Trading date YYYY-MM-DD, or 'latest' (default) |
No output schema declared.
No examples provided.
short_interest Short interest ~80
FINRA short interest history (bi-weekly settlements) with days to cover for a stock. Use for 'how heavily shorted is GME?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Settlements to return (default 24) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
short_volume Daily short volume ~68
Daily FINRA short-sale volume and short-volume ratio for a stock, with per-venue split. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Days to return (default 30) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
stock_candles Stock intraday candles ~129
Intraday OHLCV bars for a stock on a session (default today), 1 to 60 minute bars; returns the most recent `limit` bars. Live bars are real-time for watchlisted symbols and 15 minutes delayed otherwise. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Most recent bars to return (default 120) |
| session | string | – | YYYY-MM-DD (default today) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| timespan | integer | – | Minutes per bar (default 1) |
No output schema declared.
No examples provided.
stock_news Stock news with sentiment ~83
Recent news for a ticker, each article with a pre-computed sentiment (positive, negative, neutral) and its reasoning. Use for 'why is TSLA moving?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Articles to return (default 10) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
stock_quote Stock quote ~78
Latest price for a stock or ETF. Real-time for symbols on your key's real-time watchlist; otherwise the most recent price at least 15 minutes old. Use for 'what is NVDA trading at?'. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
stock_splits Stock split history ~63
Stock split history for a ticker: execution date and split ratio. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Splits to return (default 20) |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
technical_indicator Technical indicator ~151
Technical indicator series for a stock: SMA, EMA, RSI or MACD on adjusted closes (daily by default), latest first. Use for 'is AAPL overbought?' (RSI) or trend questions. Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| indicator | string | yes | – |
| limit | integer | – | Points to return (default 50) |
| long_window | integer | – | – |
| short_window | integer | – | – |
| signal_window | integer | – | – |
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
| timespan | string | – | – |
| window | integer | – | Look-back window for sma/ema/rsi (default 14) |
No output schema declared.
No examples provided.
volatility_movers Implied volatility movers ~84
Tickers whose 30-day at-the-money implied volatility moved most versus the prior close (expansions and/or compressions). Use for 'which stocks saw the biggest IV spikes today?'. Free accounts: top 3; Pro: up to 50.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| limit | integer | – | Tickers to return (default 10) |
No output schema declared.
No examples provided.
volatility_term_structure Implied volatility term structure ~113
At-the-money implied volatility by expiration (the IV term structure), plus spot and the overall ATM IV for a ticker. Use for 'is NVDA implied volatility elevated?' or 'is the vol curve inverted before earnings?'. Free accounts: SPY, QQQ, AAPL, MSFT, GOOGL, AMZN, NVDA, META, TSLA; Pro: any ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock or ETF ticker, e.g. NVDA, SPY, BRK.B |
No output schema declared.
No examples provided.
How do I install the OptionWhales MCP server?
OptionWhales is a hosted endpoint at https://api.optionwhales.io/mcp/connect, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.optionwhales.io
claude mcp add --transport http io-optionwhales-options-flow 'https://api.optionwhales.io/mcp/connect'
What is the OptionWhales MCP server?
OptionWhales is an MCP server listed in the public MCP registry as io.optionwhales/options-flow. US options flow & stock data: unusual activity, gamma levels, IV, earnings. OAuth sign-in or keys. This page covers its hosted endpoint (https://api.optionwhales.io/mcp/connect).
Is the OptionWhales MCP server safe to use?
OptionWhales scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the OptionWhales MCP server expose?
OptionWhales exposes 34 tools: intent_flow_current, momentum_rankings, abnormal_trades_current, directional_current, market_tide, and 29 more. Their descriptions and schemas cost roughly 3,679 tokens of context every time the server is loaded.
Does the OptionWhales MCP server require authentication?
Its publisher declares no required credentials for OptionWhales. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the OptionWhales MCP server still maintained?
OptionWhales is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.