{"openapi":"3.1.0","info":{"title":"CryptoDataAPI (RealtimeAPI)","version":"30dd9c35","description":"CryptoDataAPI served through the RealtimeAPI gateway. Pay per request in USDC with x402 (no account), or send an `X-API-Key` / `Authorization: Bearer rta_live_...` key. Each operation's `x-price` is the per-request price.","x-feed-slug":"cryptodata"},"servers":[{"url":"https://api.realtimeapi.ai/v1/cryptodata"}],"security":[{},{"ApiKeyHeader":[]},{"BearerKey":[]}],"paths":{"/algobrain/page":{"get":{"operationId":"algobrain-page","summary":"Read Algobrain Page","description":"One AlgoBrain page as markdown (frontmatter parsed into fields), by the\n``path`` a search result gave you. ``wiki/``, ``.md`` and the folder may be left\noff (``atr-trailing-stop``); the response's ``path`` is always the stored one.\n\n404 ``page_not_found`` for an unknown or ambiguous path, with ``suggestions`` (up\nto 5 real paths: a search over the words in yours, else the newest pages) and\n``search_url`` (that search). All tiers. Content is CC BY 4.0.\n\nA strategy page also carries ``strategy`` (its frontmatter block, as on search\nresults) and ``gates``: every condition the strategy checks — ``role`` (universe,\nentry, filter, exit, stop, sizing) and ``rule`` — mapped to ONE ``endpoint`` and ONE\nresponse ``field``, with ``runnable`` true, ``partial`` (the endpoint measures part of\nit; ``note`` says what a human still judges) or false (nothing we serve measures it;\n``note`` says what is missing). ``input: position`` marks a condition on your own\nposition (entry fill, time in trade); ``input: derived`` one built from the gates named in\n``inputs`` (a composite score, a construction rule). ``replay`` / ``replay_field`` name a history\nendpoint that reproduces the field for past dates. ``{coin}``-style placeholders are\nyours to fill. ``gates`` is null until a page has been mapped.","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string"},"description":"A result's `path`, e.g. wiki/strategies/atr-trailing-stop.md. The `wiki/` prefix, the `.md` suffix and the folder are optional: `atr-trailing-stop` works"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/algobrain/search":{"get":{"operationId":"algobrain-search","summary":"Search Algobrain","description":"Search the AlgoBrain strategy wiki (~5k pages: strategies, the Hyperliquid\nsignal baskets, concepts, methodology).\n\n**Ranking** (2026-10-10): a page NAMED by the query comes first (its title, an acronym in\nits title, or an alias), then pages with the whole query as a phrase in their title or\naliases, then every term in the title/aliases, then every term anywhere, then any term.\nWithin each tier, concept and strategy pages rank above the ~2.5k generated per-coin\npages, then by BM25. Each result says which tier it came from in ``match``\n(``exact_title``, ``title_phrase``, ``title_terms``, ``all_terms``, ``any_term``); its\n``score`` (BM25) orders results only within a tier.\n\nEach result carries ``path``, ``title``, ``type``, ``tags``, a ``snippet``\naround the match, a relevance ``score`` (higher is better; null when ``q`` is\nempty) and ``read`` — the ``/algobrain/page`` URL for the full markdown. Filters\nwithout ``q`` list matching pages by title. A bare call (no ``q``, no filter) lists\nthe newest pages by their ``updated`` date, so an agent can discover real paths\nbefore it has a query. All tiers. Content is CC BY 4.0.\n\nStrategy pages also carry ``strategy``: the authors' frontmatter —\n``backtest_status``, ``horizon``, ``strategy_type``, ``complexity``,\n``crowding_risk``, ``markets``, ``edge_source`` and the ESTIMATES\n``expected_sharpe`` / ``expected_max_drawdown`` / ``breakeven_cost_bps``, labelled\n``expected_sharpe_source: \"author_estimate\"``. They are literature expectations, not\nresults measured on any venue, so results are never ranked by them; filter on\n``backtest_status`` (e.g. ``cost-corrected``, ``walk-forward-validated``, ``live``)\nto find the pages with the most evidence behind them. ``strategy`` is null on\nnon-strategy pages. Each strategy filter is an any-of match (``horizon=swing``\nalso finds ``swing|position`` pages).\n\n``strategy.runnable`` / ``strategy.gate_counts`` summarise the page's **gates** — each\ncondition the strategy checks mapped to one endpoint and one response field, or marked\npartial (a human judgement remains) or not runnable (we serve nothing that measures it).\n``runnable=all`` finds pages an agent can run end to end. The gates themselves are on\n``/algobrain/page``. An unrecognised query parameter is a 400.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":""},"description":"Free-text query, e.g. `atr trailing stop trend following`. Omit it and every filter to list the newest pages"},{"name":"type","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Page type filter: strategy, concept, entity, market, …"},{"name":"tag","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Exact tag filter, e.g. mean-reversion"},{"name":"category","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Top-level wiki folder, e.g. strategies, strategy-development, concepts"},{"name":"backtest_status","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Strategy pages by the authors' evidence label: untested, naive-backtested, cost-corrected, walk-forward-validated, paper-traded, pilot, live, paused, retired"},{"name":"horizon","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Holding style: scalp, intraday, swing, position, long-term. NOT a bar interval (the wiki has no 1h/4h field)"},{"name":"strategy_type","in":"query","required":false,"schema":{"type":["string","null"]},"description":"quantitative, hybrid, algorithmic, technical, fundamental, …"},{"name":"complexity","in":"query","required":false,"schema":{"type":["string","null"]},"description":"beginner, intermediate, advanced"},{"name":"crowding_risk","in":"query","required":false,"schema":{"type":["string","null"]},"description":"low, medium, high"},{"name":"market","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Market the strategy is written for, e.g. crypto, options"},{"name":"runnable","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Strategy pages by gate coverage: `all` (every condition maps to an endpoint + field), `partial`, `none`"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":50}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/algobrain/stats":{"get":{"operationId":"algobrain-stats","summary":"Algobrain Stats","description":"Size and freshness of the hosted AlgoBrain index: page counts by category\nand type, ``built_at`` (unix s) and the wiki ``source_commit`` it was built\nfrom. All tiers.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/archives":{"get":{"operationId":"backtesting-archives","summary":"List Archives","description":"List archived files available for download from cold storage.\n\nUse ``data_type=daily`` for consolidated Parquet files containing all\nsymbols for an exchange in a single file (recommended for bulk downloads).\n\n``data_type=klines_deep`` / ``funding_deep`` expose the deep monthly cold\nhistory (one Parquet per symbol per month) — much further back than the\nrolling daily files. ``klines_deep`` is coarse OHLCV (``interval`` 1h/4h/1d)\nfor BOTH exchanges: ``exchange=binance`` (spot, back to each market's listing\n— BTCUSDT to Aug 2017) and ``exchange=hyperliquid`` (1d to HL's 2023 launch).\n``funding_deep`` is hourly HL ``funding_rate`` + ``premium`` only (what\n``fundingHistory`` carries); minute-level mark / oracle / OI history is\n``hl_asset_ctxs``.\n\nPass ``start``/``end`` (YYYY-MM-DD; YYYY-MM for deep tiers) to filter by date\nserver-side — strongly recommended for high-volume types where the unfiltered\nlisting can be large enough to time out.","parameters":[{"name":"data_type","in":"query","required":false,"schema":{"type":"string","default":"klines"},"description":"Data type: daily, klines, funding, funding_hourly, hl_asset_ctxs, liquidations, hl_liquidations, hl_trade_flow, l4_depth, news_events, snapshots, klines_deep, or funding_deep. Use 'daily' for consolidated per-exchange bundles; 'hl_liquidations' is the per-event Hyperliquid liquidation tape, 'hl_trade_flow' the 1-min HL taker buy/sell buckets, 'funding_hourly' the settled HL funding prints with the boundary oracle price and 'hl_asset_ctxs' Hyperliquid's own 1-minute mark / oracle / mid / OI snapshots from its S3 archive, 2023-05-20 on (each one file per day, all coins); 'l4_depth' is 1-second exact-price band depth per coin-day reconstructed from the Hyperliquid order tape (pass symbol; from the day it is switched on, 2026-10-24 at the earliest); the '*_deep' tiers are monthly cold history (see /archives/index)."},{"name":"exchange","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by exchange (klines/funding/daily/klines_deep/funding_deep only)"},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by symbol, or snapshot type name for snapshots"},{"name":"start","in":"query","required":false,"schema":{"type":"string"},"description":"Earliest archive date to include (YYYY-MM-DD, inclusive; YYYY-MM for '*_deep' tiers). Recommended for large types like liquidations to avoid listing timeouts."},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"Latest archive date to include (YYYY-MM-DD, inclusive; YYYY-MM for '*_deep' tiers)."},{"name":"interval","in":"query","required":false,"schema":{"type":"string"},"description":"Candle interval for klines_deep only: 1h, 4h, or 1d (ignored for other types)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/archives/download":{"get":{"operationId":"backtesting-archives-download","summary":"Download Archives","description":"Generate pre-signed download URLs for archived files.\n\nUse ``data_type=daily`` for consolidated Parquet files (one per exchange)\ninstead of individual per-symbol files.\n\n``data_type=klines_deep`` (with ``interval`` 1h/4h/1d) and ``funding_deep``\nserve the deep monthly cold history — one Parquet per symbol per month,\nreaching far past the rolling daily files: ``exchange=binance`` spot klines\nback to each market's listing (BTCUSDT to Aug 2017), ``exchange=hyperliquid``\n1d to its 2023 launch. For deep tiers ``start``/``end`` match the file's\nYYYY-MM token, so pass month-granular bounds (e.g. ``start=2019-01``).","parameters":[{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start date (YYYY-MM-DD; YYYY-MM for '*_deep' tiers)"},{"name":"data_type","in":"query","required":false,"schema":{"type":"string","default":"klines"},"description":"Data type: daily, klines, funding, funding_hourly, hl_asset_ctxs, liquidations, hl_liquidations, hl_trade_flow, l4_depth, news_events, snapshots, klines_deep, or funding_deep. Use 'daily' for consolidated bundles; 'hl_liquidations' for the per-event HL liquidation tape; 'hl_trade_flow' for the 1-min HL taker buckets; 'funding_hourly' for the settled HL prints with the boundary oracle price; 'hl_asset_ctxs' for Hyperliquid's 1-minute mark / oracle / OI snapshots (one file per day, all coins, 2023-05-20 on); 'l4_depth' for 1-second exact-price band depth per coin-day (L4 reconstruction, pass symbol); '*_deep' for deep monthly cold history."},{"name":"exchange","in":"query","required":false,"schema":{"type":"string"},"description":"Exchange filter (klines/funding/daily/klines_deep/funding_deep)"},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Symbol, or snapshot type name for snapshots"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End date (YYYY-MM-DD, defaults to today; YYYY-MM for '*_deep' tiers)"},{"name":"interval","in":"query","required":false,"schema":{"type":"string"},"description":"Candle interval for klines_deep only: 1h, 4h, or 1d (ignored for other types)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/archives/index":{"get":{"operationId":"backtesting-archives-index","summary":"Get Archive Index","description":"Return the backtesting archive index — a compact summary of all\navailable data types, symbols, exchanges, and date ranges.\n\nConsumers should call this once to discover what's available, then\nuse ``/archives/download`` to fetch specific files.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/daily-snapshots":{"get":{"operationId":"backtesting-daily-snapshots","summary":"List Daily Snapshots","description":"List dates with an archived daily snapshot available (YYYY-MM-DD).\n\nSnapshots are produced once per day at 20:00 UTC (and on server startup).\nEach archived snapshot contains everything `/api/v1/daily` returns —\nhealth score, derivatives, sentiment, macro, ETF flows, cycle indicators,\non-chain composite score, all on-chain collector states.\n\nPass ``start``/``end`` (YYYY-MM-DD, inclusive) to bound the date range.","parameters":[{"name":"start","in":"query","required":false,"schema":{"type":"string"},"description":"Earliest date to include (YYYY-MM-DD, inclusive)."},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"Latest date to include (YYYY-MM-DD, inclusive)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/daily-snapshots/{date}":{"get":{"operationId":"backtesting-daily-snapshots-date","summary":"Get Daily Snapshot By Date","description":"Retrieve an archived daily snapshot for `date` (YYYY-MM-DD UTC).\n\nReturns the full snapshot identical in shape to `/api/v1/daily`, including\nthe new `onchain_health_score` field. Use this to build historical\nregime-tagged backtests without re-computing per-day signals yourself.\n\nA snapshot for today is not written until the 20:00 UTC daily build (it is\nkeyed by build date, so day D lands at 20:00 UTC on D — NOT 01:00 UTC, which\nis the separate backtesting Parquet export). Those 404s carry `Retry-After`\n(seconds until that build) so a polling client backs off instead of hot-\nlooping; one consumer was observed retrying today's date ~1900 times in 2h.","parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/export":{"get":{"operationId":"backtesting-export","summary":"Export Data","description":"Export kline data as streaming CSV download.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"Symbol to export"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"binance"},"description":"binance or hyperliquid"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/funding":{"get":{"operationId":"backtesting-funding","summary":"Get Funding","description":"Historical funding — the 5-minute rate snapshots (with OI / mark) or, with\n``grain=hourly``, the settled hourly Hyperliquid payments.\n\nRead ``grain`` on the response before aggregating: the default rows sample\nthe live hourly rate ~12 times per settlement, so summing them overstates\ncarry ~12x. The honest daily carry from the snapshot series is\n``mean(funding_rate) x 24``; the exact figure is ``sum(funding_rate)`` over\nthe ``grain=hourly`` rows. ``coverage`` gives local retention for the\nsymbol; ``next_cursor`` / ``has_more`` page the window.\n\nHyperliquid pays funding on the ORACLE price (rate x position x oracle),\nwhich its history API never serves. ``oracle_price`` on the hourly rows is\nthe asset context at the settlement boundary: Hyperliquid's own archived\nminute snapshot (``oracle_source=hl_s3_asset_ctxs``, ``oracle_as_of`` = its\nstamp) or, from 2026-10-24 03:00 UTC, our read seconds after the boundary\n(``live_read``, ``oracle_as_of`` = our wall clock). Null only where\nneither exists.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"Symbol, e.g. BTC or BTCUSDT"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"hyperliquid"},"description":"binance or hyperliquid"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"grain","in":"query","required":false,"schema":{"type":"string","default":"snapshot_5m"},"description":"`snapshot_5m` (default): the LIVE rate sampled every 5 minutes, plus open interest, mark and (from 2026-10-24 02:10 UTC) `oracle_price` / `premium` — a rate series, NOT payments; do not sum it. Hyperliquid rows before 2026-03-30 are hourly settled prints seeded from the deep archive (null OI/mark). `hourly`: one row per settled Hyperliquid funding print (HL `fundingHistory`, the carry actually paid), with `premium` plus the asset context at that boundary — `oracle_price` / `mark_price` / `open_interest` / `oracle_as_of` and `oracle_source` (`hl_s3_asset_ctxs` = HL's archived minute snapshot, `live_read` = our read seconds after it, from 2026-10-24 03:00 UTC); hyperliquid only, filled daily for the previous UTC day."},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/hl-funding-bars":{"get":{"operationId":"backtesting-hl-funding-bars","summary":"Get Hl Funding Bars","description":"Hyperliquid funding and open interest aligned to the candle clock — one\nrow per closed bar per coin, so a funding/OI condition can be tested against\nthe same 4h bar a price signal fires on.\n\n``time`` is the bar open and equals the ``timestamp`` of the matching\n``/hyperliquid/candles`` bar (join on it). Per bar: ``funding_sum`` (carry\nactually settled in ``(time, time + interval]`` — a settlement at 16:00 pays\nfor the hour before it, so it belongs to the bar that closes at 16:00) with\n``n_settlements``; ``funding_rate_mean`` (mean live hourly rate over the\nbar); ``oi_open`` / ``oi_close`` / ``oi_change_pct`` (base-coin units, first\nand last 5-min sample in the bar) and ``mark_close``.\n\nPoint-in-time: every value was observable by the bar's close — act on it at\nthe NEXT bar's open. Bars start where our 5-min snapshots do (2026-03-30;\nsee ``coverage``). Older minute-level OI / mark / oracle is the\n``hl_asset_ctxs`` archive (Hyperliquid's own snapshots, 2023-05-20 on);\nolder settled funding with the boundary oracle / OI is\n``/backtesting/funding?grain=hourly``. ``funding_sum`` is null for the most recent day until its\nprints are archived. Window ≤ 93 days per call. Pro Plus.","parameters":[{"name":"coin","in":"query","required":true,"schema":{"type":"string"},"description":"One HL coin name (BTC, kPEPE) or a comma list (up to 25; every value rides the index)."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"4h"},"description":"Bar width: 1h, 4h or 1d — the same UTC grid as /hyperliquid/candles"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms); floored to the interval"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now); floored to the interval, EXCLUSIVE"},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/hl-liquidation-bars":{"get":{"operationId":"backtesting-hl-liquidation-bars","summary":"Get Hl Liquidation Bars","description":"Incremental liquidation flow per closed bucket, summed from the exact\nHyperliquid fill tape — the burst clock ``/backtesting/liquidations``'\nrolling-24h level cannot give you.\n\nEach row is one UTC clock-aligned ``interval`` bucket: ``long_usd`` /\n``short_usd`` (notional liquidated on each side), ``total_usd``,\n``n_long`` / ``n_short`` (fills) and ``max_fill_usd``. Buckets with no fills\nare not returned. ``start`` and ``end`` are floored to the grid, so the\nbucket containing ``now`` is never served — its fills are still forming and\nlive on ``/backtesting/hl-liquidations``. Omit ``coin`` for one market-wide\nrow per bucket (``coin`` null, window ≤ 31 days); give a coin or comma list\nfor per-coin rows (window ≤ 93 days).\n\nEvery bar is auditable: the ``audit`` block says how to pull the raw fills\nthat summed to it. Same tier as the tape (Pro, Pro Plus included).","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string"},"description":"One HL coin name (BTC, kPEPE) or a comma list (up to 25) for per-coin bars. Omit for ONE market-wide series summed over every perp."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"15m"},"description":"Bucket width: 5m, 15m or 1h (UTC clock-aligned)"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms); floored to the interval"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now); floored to the interval, EXCLUSIVE"},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/hl-liquidations":{"get":{"operationId":"backtesting-hl-liquidations","summary":"Get Hl Liquidations","description":"Query the per-event Hyperliquid liquidation tape.\n\nExact liquidation fills (market + backstop) across the full HL perp\nuniverse — time, coin, liquidated side, px, sz, USD notional, method,\nmark price, liquidated user and tx hash — unlike ``/backtesting/liquidations``'\nvenue-merged rolling-24h totals. Rows are ordered by the full ``(time, tid)``\nkey and ``next_cursor`` resumes exactly there: one liquidation order sweeping\nN book levels is N rows at ONE ``time``, so ``start = last.time + 1`` paging\nsilently drops the siblings that fell past a page boundary — use the cursor.\n\nLive capture began 2026-07-23 (``coverage.local_first`` is authoritative);\nthe ``hl_liquidations`` daily Parquet archive additionally holds a pilot\nbackfill 2026-04-24 → 2026-05-05. A window that starts before local\nretention returns ``[]`` with ``coverage.archive_hint`` set rather than\nsilently. Pro (Pro Plus included) since 2026-09-07; the archive itself stays\nPro Plus. Bucketed flow from these fills: ``/backtesting/hl-liquidation-bars``.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string"},"description":"One HL universe coin name (BTC, kPEPE) or a comma list (up to 25; every value rides the index). Omit for all coins."},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/hl-trade-flow":{"get":{"operationId":"backtesting-hl-trade-flow","summary":"Get Hl Trade Flow","description":"Query the archived Hyperliquid trade tape: 1-minute taker buy/sell\nbuckets per perp.\n\nEach row is one closed UTC minute for one coin — ``buy_notional`` /\n``sell_notional`` by aggressor side, ``n_trades``, ``vwap``,\n``max_fill_usd``, ``large_fill_share`` (fills >= $25k) and ``partial``\n(the collector's socket did not watch the whole minute; such minutes are\nnever back-filled). Same row shape as the live ``/hyperliquid/trade-flow``\nminus its served-only ``cvd_usd``. Minutes with no fills are NOT stored.\nServes the local retention window; the full history is archived daily as\nthe ``hl_trade_flow`` data type (one Parquet per day, all coins — see\n``/backtesting/archives``). Coverage begins 2026-09-09. Pro (Pro Plus\nincluded), matching ``/hl-liquidations``; the archive stays Pro Plus.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string"},"description":"One HL coin name (BTC, kPEPE) or a comma list (up to 25; every value rides the index). Omit for all coins."},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/klines":{"get":{"operationId":"backtesting-klines","summary":"Get Klines","description":"Query historical OHLCV klines for backtesting.\n\nThe archive stores closed 1-minute bars. ``interval`` (1m default, or 5m, 15m, 30m,\n1h, 4h, 1d) aggregates them per request on the UTC grid: ``t`` is the bar open, and\n``n`` says how many 1-minute bars went into it, so a bar with a gap, or one still\nforming at ``end``, is visible. ``start`` is floored to the interval. Until 2026-10-10\n``interval`` was not read at all and every call returned 1m bars.\n\n``grain`` says what a row is, ``coverage`` where local rows start and stop for this\nsymbol, and ``next_cursor`` / ``has_more`` page the window without re-fetching a\nboundary bar. An aggregated page scans at most ~278 days of 1m rows, so a long 1d\nrequest pages early. An unrecognised query parameter is a 400.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"Trading pair, e.g. BTCUSDT (Binance) or BTC (Hyperliquid)"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"binance"},"description":"binance or hyperliquid"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1m"},"description":"Bar width: 1m (as stored), or 5m, 15m, 30m, 1h, 4h, 1d, aggregated from the 1m bars on the UTC grid"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/liquidation-density":{"get":{"operationId":"backtesting-liquidation-density","summary":"Get Liquidation Density","description":"Hyperliquid liquidation density near the mark, as a time series.\n\nPer coin per point: ``mark``, and for bands of ±0.5 / 1 / 2 / 3 / 5% of\nmark the USD of long positions liquidating BELOW the mark\n(``long_below``) and shorts liquidating ABOVE it (``short_above``) —\nplus the same split by ``trader_type`` (vault, market_maker, whale,\nsmart_money, high_leverage, other) and by ``leverage`` bucket\n(3/5/10/20/25/40/50/100x). Derived from the archived ``liquidation_levels``\n+ ``liquidation_map`` snapshots: ~2 KB a point instead of ~1 MB a snapshot.\nHistory starts 2026-06-26 (the full-universe feed); ≤ 93 days per call.\nCSV carries the all-account bands only. Pro Plus.","parameters":[{"name":"coin","in":"query","required":true,"schema":{"type":"string"},"description":"One HL coin name (BTC, HYPE, kPEPE) or a comma list (up to 25)."},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end)."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h"},"description":"5m (every archived snapshot) or 1h (the first snapshot of each hour)."},{"name":"splits","in":"query","required":false,"schema":{"type":"string","default":"trader_type,leverage"},"description":"Breakdowns to include: any of trader_type, leverage (comma list), or `none` for the all-account bands only (~10x smaller)."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/liquidations":{"get":{"operationId":"backtesting-liquidations","summary":"Get Liquidations","description":"Venue-merged liquidation totals — a ROLLING 24-HOUR level sampled every\n5 minutes (OKX + Bybit + Hyperliquid), not that interval's flow.\n\nEach row answers \"how much was liquidated in the 24h ending at this\nsample\"; summing rows, or differencing consecutive ones, does not recover a\nburst. For incremental 5m / 15m / 1h flow from exact fills use\n``/backtesting/hl-liquidation-bars``; for the fills themselves,\n``/backtesting/hl-liquidations``. Rows are ordered (time, symbol) and\n``next_cursor`` resumes exactly there.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"One symbol, or a comma list (BTC,ETH,SOL — up to 25; every value rides the index). Omit for all symbols."},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":1000,"minimum":1,"maximum":10000}},{"name":"cursor","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window."},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json"},"description":"json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/news-events":{"get":{"operationId":"backtesting-news-events","summary":"Get News Events","description":"Query the archived market-moving news tape, with market-response labels.\n\nThe backtestable form of ``/api/v1/news/market-moving``: every qualified\ncatalyst with its ``impact_score``, signed ``bias``, ``corroboration``, and\nthe MEASURED move that followed — ``ret_15m`` / ``ret_1h`` / ``ret_4h``,\n``vol_mult`` (vs that coin's own 30-day baseline), ``oi_change_pct``,\n``funding_shift`` and a combined ``abnormality``. That last set is what makes\nthe impact score calibratable rather than merely asserted.\n\nTwo constraints worth stating plainly:\n\n* **Only qualified events are archived.** Stories that failed the noise gate\n  or scored below the impact threshold were discarded at ingest and no row\n  exists for them. Do not treat this as \"all news\".\n* **History starts when this shipped and CANNOT be backfilled.** RSS serves a\n  recent window only, so no earlier tape will ever exist — the same\n  constraint as ``/regimes/history``.\n\nResponse columns are NULL for windows that have not matured yet, which means\n\"not yet measured\", not \"no reaction\". Pro Plus.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by HL perp symbol (e.g. SOL, kPEPE) or MARKET; omit for all"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"min_impact","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0,"maximum":1},"description":"Minimum impact_score"},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"minimum":1,"maximum":5000}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/signum-rgg":{"get":{"operationId":"backtesting-signum-rgg","summary":"Get Signum Rgg Archive","description":"Per-day SIGNUM_RGG colour state for the full universe, from the daily archive.\n\nThin wrapper over ``/backtesting/daily-snapshots/{date}`` that returns only\nits ``signum_rgg`` block, split into ``summary`` (counts, breadth, top\nlists) and the full ``by_symbol`` map (colour, signed score, ADX/DI,\ndays_in_color, flipped_at, price, ``hl_symbol`` join key). Available for\nevery archived day (the block has been stored since 2026-03-02).\n\n``computed_from`` (present on days archived from 2026-09-09) is the last\nCOMPLETED daily bar the colours were read from; the archive is built at\n20:00 UTC, so a day's block carries the colours completed through the\nprevious UTC close. Days before that were archived with the forming bar\nincluded. Same auth gate as ``daily-snapshots``. 404 (with ``Retry-After``\nwhile today's build is pending) when the day has no snapshot, and 404\nwhen a snapshot exists but predates the SIGNUM block.","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string"},"description":"Archived day, YYYY-MM-DD (UTC)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/snapshots":{"get":{"operationId":"backtesting-snapshots","summary":"Get Snapshots","description":"Query historical JSON snapshots for a data type.\n\nStreamed row-by-row so peak memory stays ~one row regardless of ``limit``.\nA limit=1000 pull of fat types (coinglass_oi / coinglass_funding /\nstablecoins) otherwise decompressed ~300MB and ballooned ~1GB through\nserialization, OOM-looping the 2.5GiB container. The JSON response shape is\nunchanged, so consumers need no changes. Streaming also means bytes start\nflowing immediately — no more 60s nginx 504 on large pulls. No heavy-read\nsemaphore needed here: memory is now bounded by the stream itself, and the\nrequest rate is bounded by nginx/Cloudflare on the /backtesting route.","parameters":[{"name":"data_type","in":"query","required":true,"schema":{"type":"string"},"description":"Snapshot type, e.g. market_health, fear_greed, coinglass_etf_flows"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"Start time (ISO 8601 or unix ms)"},{"name":"end","in":"query","required":false,"schema":{"type":"string"},"description":"End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end), so consecutive windows do not repeat a boundary row."},{"name":"bounds","in":"query","required":false,"schema":{"type":"string","default":"half-open"},"description":"Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":1000}},{"name":"universe","in":"query","required":false,"schema":{"type":["string","null"]},"description":"For dex_trending: filter to hl_perps"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/snapshots/types":{"get":{"operationId":"backtesting-snapshots-types","summary":"Get Snapshot Types","description":"List all available snapshot data types with row counts and date ranges.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/status":{"get":{"operationId":"backtesting-status","summary":"Get Status","description":"Get backtesting storage statistics.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/backtesting/symbols":{"get":{"operationId":"backtesting-symbols","summary":"Get Symbols","description":"List all tracked symbols with available date ranges.","parameters":[{"name":"exchange","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by exchange: binance or hyperliquid"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/changelog":{"get":{"operationId":"changelog","summary":"Get Changelog","description":"Public API changelog + current version (no API key required).\n\nPoll this to detect breaking or notable response-shape changes. The same\nversion string is on every `/api/*` response as the `X-API-Version` header.\n`/changelog` serves this identical JSON to any non-browser caller.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins":{"get":{"operationId":"coins","summary":"List Coins","description":"List all coins, paginated by market cap rank.","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"minimum":1}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":50,"minimum":1,"maximum":250}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_coins","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins/categories":{"get":{"operationId":"coins-categories","summary":"Coin Categories","description":"Get all unique coin categories.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins/category-groups":{"get":{"operationId":"coins-category-groups","summary":"Coin Category Groups","description":"Curated coin-category themes (20+ major categories).\n\nCovers AI, Layer-1 / platform, Layer-2 & scaling, DeFi, DEX, lending, liquid\nstaking, stablecoins, exchange tokens, meme, privacy, RWA, NFT, gaming,\nmetaverse, DePIN, oracles, interoperability, storage, Bitcoin / Solana /\nCosmos ecosystems, PoW and derivatives. Each group carries a plain-English\ndescription and a resolved list of the tracked coins that belong to it (live\nprice, market cap, rank, 24h/7d change), sorted by market-cap rank. Unlike\n`/coins/categories` (raw CoinGecko tag names), this is an editorial set built\nfor the Coin Categories page.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"minimum":1,"maximum":100},"description":"Max coins per category group"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins/search":{"get":{"operationId":"coins-search","summary":"Search Coins","description":"Search coins by name or symbol.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins/top":{"get":{"operationId":"coins-top","summary":"Top Coins","description":"Get top N coins by market cap.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_coins-top","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/coins/{symbol}":{"get":{"operationId":"coins-symbol","summary":"Get Coin","description":"Get a single coin profile by symbol (e.g., BTC, ETH).","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/daily":{"get":{"operationId":"daily","summary":"Get Daily Snapshot","description":"Full daily snapshot of all current (non-history) data in one response.\n\nExcludes Binance spot prices and Hyperliquid data which are available\nvia dedicated ``/daily/prices`` and ``/daily/hyperliquid`` endpoints.\n\n**Market health block (`market_health`)**\n\nDual-score architecture: 4 long-term components (Price Trend, Market Breadth,\nStablecoin Flow 90d, Macro/DXY) + 7 short-term components (Volume Quality,\nFear & Greed, Derivatives, Market Breadth Short, Volatility, Short-Term Price,\nStablecoin Flow 14d). Combined score = 0.5·LT + 0.5·ST.\n\n- `market_health.total_score` / `long_term_score` / `short_term_score`: int 0–100\n- `market_health.sentiment` / `long_term_sentiment` / `short_term_sentiment`: BULLISH | NEUTRAL | BEARISH\n- `market_health.components`: `{name: {score, weight}}` (per-component details\n  are stripped from `/daily`; hit `/market-health` for component `.details`)\n- `market_health.indicators`: flat denormalization for quick consumption (below)\n\n**`market_health.indicators` contract**\n\nA flat dict of the most-filtered values from `components.<x>.details`. Keys are\n**omitted entirely** when the source value is unavailable (never null) so consumers\ncan safely use `dict.get(key, default)` for fallbacks. Committed key set:\n\n- `long_short_ratio` (float) — BTC long/short ratio (Binance perps)\n- `funding_rate` (float, %) — avg funding rate (aliased from `avg_funding_rate`;\n  CoinGlass cross-exchange when available, Binance fallback)\n- `buy_ratio` (float, 0–1) — weighted taker-buy ratio across top spot pairs\n- `fear_greed_value` (int, 0–100) — averaged Fear & Greed index\n- `breadth_pct` (float, %) — share of top-30 coins above their 200D MA\n- `pct_from_200ma` (float, %) — BTC distance from 200D MA\n- `cross_status` (str) — Golden | Death | Neutral\n- `stablecoin_change_7d` (float) — 7-day stablecoin market-cap change\n\n**Cross-exchange scope**\n\n`market_health` is computed cross-exchange (CoinGlass aggregate + Binance) and\nis **not** scoped by the `exchange` query param. The `exchange` filter only\ntrims the `coins`, `coinglass.funding`, and `coinglass.liquidations` lists.\nIn particular `indicators.long_short_ratio` is BTC-on-Binance, used as a\nmarket-wide sentiment signal — not a per-exchange Hyperliquid metric.\n\n**Payload trimming and filter-source readiness**\n\nTo keep responses small, `coinglass.funding` and `coinglass.liquidations` are\nalways capped at the top 100 entries (sorted by max absolute funding rate\nand 24h liquidation USD respectively) regardless of the `exchange` filter.\nThe full long tail is available at the dedicated\n`/market-intelligence/funding-rates` and `/market-intelligence/liquidations`\nendpoints. When `exchange` is set to a specific venue whose coin set has\nnot yet loaded after server start, this endpoint returns `503` rather than\nsilently emitting the unfiltered payload.\n\n**Technical / Structural regime block (`technical_regime`)**\n\nUniverse-wide counts (`above_200ma`, `in_squeeze`, `overbought_1d`, …) plus\ntop-N symbol lists (`top_in_squeeze`, `top_overbought`, `top_oversold`,\n`top_near_high`, `top_near_low`) as a macro overlay. The full per-symbol map\n(`by_symbol`, keyed by ticker, each entry carrying the `ma` / `bollinger` /\n`range_state` / `rsi` blocks) is **omitted by default** to keep this payload\ncompact — pass `technical_detail=true` to include it here, or read it\npoint-in-time from `/backtesting/daily-snapshots/{date}` where it is always\npresent. Per-symbol `rsi.*_1h` fields are only meaningful in the live\nsnapshot; backfilled historical days have no intraday series.\n\n**Volatility regime block (`volatility_regime`)**\n\nRealized-vol risk-sizing overlay (Regime #13): regime counts + shares\n(`compressed`, `expanding`, `vol_shock`, `mean_reverting`, `normal`), a\n0-100 `composite_score` (higher = more market-wide vol stress) with\n`sentiment`, `median_vol_pctile_30`, and top-N lists (`top_compressed`,\n`top_vol_shock`, `top_expanding`). The full per-symbol map (`by_symbol`,\neach entry carrying the `regime` + `vol` metrics incl. the vol-target\nmultiplier) is **omitted by default** — pass `volatility_detail=true` to\ninclude it, or read it point-in-time from `/backtesting/daily-snapshots/\n{date}`. Per-symbol `vol.rv_1h` is live-only; backfilled days land null.\n\n**SIGNUM_RGG directional trend radar (`signum_rgg`)**\n\nDaily RED/GREY/GREEN trend classifier (ADX(14)+DMI with hysteresis) across the\nfull HL-perp ∪ top-Binance-spot universe — Regime #14's directional companion.\nUniverse summary: `green`/`grey`/`red` counts + shares, a directional\n`net_breadth_pct` = (green−red)/n·100, `mean_trend_score`, a\nBULLISH/NEUTRAL/BEARISH `sentiment`, and `top_green`/`top_red` (most strongly\ntrending). The full per-symbol map (`by_symbol`, keyed by bare ticker, each\ncarrying `color`, a signed `score` (+ADX green / −ADX red / 0 grey),\n`adx`/`plus_di`/`minus_di`, `days_in_color`, and the `hl_symbol` join key) is\n**omitted by default** — pass `signum_detail=true` to include it, or read it\npoint-in-time from `/backtesting/daily-snapshots/{date}`. Per-symbol\n`intraday_*` are live-only; backfilled historical days land null.","parameters":[{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"hyperliquid"},"description":"Filter coins by exchange: hyperliquid, binance_spot, asterdex, or 'all' for unfiltered"},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"Response format: 'markdown' for LLM-friendly plain text"},{"name":"technical_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol technical_regime.by_symbol map (keyed by ticker). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."},{"name":"volatility_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol volatility_regime.by_symbol map (keyed by ticker; regime + vol metrics per coin). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."},{"name":"meme_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol meme_regime.by_symbol map (keyed by ticker; regime + meme metrics per coin). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."},{"name":"event_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol event_regime.by_symbol overlay (keyed by ticker; pending catalysts + net bias per coin). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."},{"name":"security_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol security_regime.by_symbol overlay (keyed by ticker; implicating hacks/depegs + acute bias per coin). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."},{"name":"signum_detail","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Include the full per-symbol signum_rgg.by_symbol map (keyed by ticker; RED/GREY/GREEN color + signed trend score + ADX/DMI + hl_symbol join key per coin). Off by default to keep the payload compact; always available point-in-time via /backtesting/daily-snapshots/{date}."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_daily","x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/daily/hl-traders":{"get":{"operationId":"daily-hl-traders","summary":"Get Daily Hl Traders","description":"Top trader leaderboard, wallet positions, and tracking metadata.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_daily-hl-traders","x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/daily/hyperliquid":{"get":{"operationId":"daily-hyperliquid","summary":"Get Daily Hyperliquid","description":"Hyperliquid perpetuals: prices, funding rates, and open interest (~230 assets).\n\nEach entry in ``funding_oi`` contains both raw and derived fields:\n\n- ``funding_rate`` — Hyperliquid's own funding rate, per HL funding interval\n  (1h on HL by default). Negative values indicate shorts paying longs.\n  This is **Hyperliquid-specific**; cross-exchange averaged funding\n  lives in ``/market-health`` and ``/market-intelligence/funding-rates``.\n- ``open_interest`` — **in base-coin units** (number of contracts), mirroring\n  the Hyperliquid API. For BTC this might be ``28846.42`` meaning ~28.8K BTC.\n  Use this when comparing across exchanges that quote OI in the same units.\n- ``open_interest_usd`` — derived notional in USD = ``open_interest * mark_price``.\n  Use this for \"is this market large enough to trade?\" thresholds.\n- ``mark_price`` / ``oracle_price`` — both USD.\n- ``day_ntl_vlm`` — 24h notional volume, **already USD-denominated**.\n\n- ``premium`` — Hyperliquid's own ``premium`` context field (mark vs oracle\n  premium), passed through unchanged.\n- ``as_of`` — ms timestamp of the ``metaAndAssetCtxs`` snapshot the row came\n  from (one call covers the whole universe, so every row shares it).\n\nTop level: ``generated_at`` (ms, when this payload was assembled),\n``prices_as_of`` / ``funding_oi_as_of`` (ms fetch instants of the two HL\nsnapshots) and ``coverage`` = ``{universe_total, delisted_excluded, rows}``\n— HL keeps delisted perps in its universe with a mark but no OI/funding, and\nthey are excluded here, which is why ``rows`` (~177) is below the ~232\nuniverse. Refresh cadence: 1 minute. Thinly-traded perps may emit\n``open_interest = 0`` legitimately when no positions are open.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_daily-hyperliquid","x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/daily/prices":{"get":{"operationId":"daily-prices","summary":"Get Daily Prices","description":"All Binance spot price pairs (~2,500 symbols).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_daily-prices","x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/binance/funding-rates":{"get":{"operationId":"derivatives-binance-funding-rates","summary":"Binance Funding Rates","description":"Binance perpetual funding rate history.\n\nAn unlisted symbol is a 400 `unknown_symbol` and a Binance failure a 503; neither\nis ever a 200 of zeros.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"},"description":"Binance perp symbol (BTCUSDT). A bare coin (BTC) means its USDT perp; BTC-USDT and btcusdt are accepted too."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":100}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/binance/history":{"get":{"operationId":"derivatives-binance-history","summary":"Derivatives History","description":"Daily derivatives data (funding, OI, L/S) from our own funding + OI archives.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":90}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/binance/long-short-ratio":{"get":{"operationId":"derivatives-binance-long-short-ratio","summary":"Binance Long Short Ratio","description":"Binance long/short account ratio. Unlisted symbol: 400; Binance down: 503.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"},"description":"Binance perp symbol (BTCUSDT). A bare coin (BTC) means its USDT perp; BTC-USDT and btcusdt are accepted too."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/binance/open-interest":{"get":{"operationId":"derivatives-binance-open-interest","summary":"Binance Open Interest","description":"Binance open interest + 30-day trend. Unlisted symbol: 400; Binance down: 503.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"},"description":"Binance perp symbol (BTCUSDT). A bare coin (BTC) means its USDT perp; BTC-USDT and btcusdt are accepted too."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/binance/summary":{"get":{"operationId":"derivatives-binance-summary","summary":"Binance Derivatives Summary","description":"All-in-one Binance derivatives summary.\n\nA leg Binance could not answer reports nulls plus its `error`. When every leg\nsays the symbol is not listed, the call is a 400 `unknown_symbol`.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"},"description":"Binance perp symbol (BTCUSDT). A bare coin (BTC) means its USDT perp; BTC-USDT and btcusdt are accepted too."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_derivatives-binance-summary","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/funding-rates":{"get":{"operationId":"derivatives-funding-rates","summary":"Cross Exchange Funding","description":"Funding rates for ONE coin across Binance + Hyperliquid.\n\nPer-coin by design (`?coin=`, default BTC). The public /funding-rates board\nlists every Hyperliquid perp; for that universe over REST use\n`GET /api/v1/hyperliquid/open-interest` (`assets[].funding_rate`).\n\n`hyperliquid.history_count` is the number of recent HL settlements fetched\nalongside the live rate. Read it with `history_status`: `ok` (history\npresent), `warming` (the fetch is still running — retry in a few seconds; the\nlive `current_rate` is unaffected), `unavailable` (HL returned nothing, or the\ncoin is not an HL perp). `0` with `warming` is not a stuck feed.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string","default":"BTC"},"description":"One coin per call, e.g. BTC, ETH, SOL"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_derivatives-funding-rates","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/hyperliquid/history":{"get":{"operationId":"derivatives-hyperliquid-history","summary":"Hyperliquid Derivatives History","description":"Daily Hyperliquid funding rate + open interest history, derived from our\nown 5-min `bt_funding` archive (captured since 2026-03-30; HL's funding-history\nAPI has never carried OI, and older one-minute OI is the `hl_asset_ctxs`\narchive type). Pro Plus.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTC"},"description":"Hyperliquid coin, e.g. BTC"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":180}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/open-interest":{"get":{"operationId":"derivatives-open-interest","summary":"Cross Exchange Oi","description":"Open interest across Binance + Hyperliquid.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string","default":"BTC"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_derivatives-open-interest","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/derivatives/summary":{"get":{"operationId":"derivatives-summary","summary":"Cross Exchange Summary","description":"Combined cross-exchange derivatives overview.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string","default":"BTC"}},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"Response format: 'markdown' for LLM-friendly plain text"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_derivatives-summary","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/new-pools":{"get":{"operationId":"dex-new-pools","summary":"Get New Pools","description":"Newest DEX pools — early discovery of new token launches.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by chain: solana, ethereum, base, bsc, arbitrum"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/promoted":{"get":{"operationId":"dex-promoted","summary":"Get Promoted Tokens","description":"Recently promoted/boosted tokens — marketing spend signal.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/promoted/top":{"get":{"operationId":"dex-promoted-top","summary":"Get Top Promoted Tokens","description":"Top promoted tokens ranked by promotion spend.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/security/{chain}/{address}":{"get":{"operationId":"dex-security-chain-address","summary":"Get Token Security","description":"Token security report — rug detection, honeypot check, risk scoring.","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string"}},{"name":"address","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/token/{chain}/{address}":{"get":{"operationId":"dex-token-chain-address","summary":"Get Token Info","description":"Token info + top pools for a specific token on a chain.","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string"}},{"name":"address","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/dex/trending":{"get":{"operationId":"dex-trending","summary":"Get Trending Pools","description":"Trending DEX pools across chains. High-frequency discovery data for meme coin alpha.","parameters":[{"name":"chain","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by chain: solana, ethereum, base, bsc, arbitrum"},{"name":"universe","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to token universe: hl_perps"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_dex-trending","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/event/calendar":{"get":{"operationId":"event-calendar","summary":"Get Event Calendar","description":"Filterable / queryable forward catalyst calendar (up to 30d out).\n\nThe query surface for the calendar: narrow by catalyst ``type``, affected\n``symbol``, ``bias``, ``min_magnitude``, and ``window_days``.","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":["string","null"],"enum":["unlock","macro_print","depeg","mint"]}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":30}},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to catalysts affecting this ticker"},{"name":"bias","in":"query","required":false,"schema":{"type":["string","null"],"enum":["long","short","neutral","risk_flag"]}},{"name":"min_magnitude","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0,"maximum":1}}],"x-price":{"price":"$0.008","price_micro":8000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/event/regime":{"get":{"operationId":"event-regime","summary":"Get Event Regime","description":"Forward catalyst calendar — dated token unlocks, macro prints, and depegs.\n\nThe main Event/Catalyst payload: every catalyst in the next ``window_days``\n(default 7) with its directional bias and magnitude, plus the market-wide\nEvent Risk score. Unlocks bias short (supply overhang); macro prints are\n``risk_flag`` (the surprise is unknown ahead of time); major depegs bias\nshort. Use `/event/calendar` for richer filtering, `/event/regime/score` for\nthe composite alone.\n\n**Partly backfillable** — unlocks / macro / depeg replay from schedule + price\nhistory; the ``sector_rotation`` sidecar on `/event/regime/score` is\nlive-only and lands null on backfilled days.","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":7,"minimum":1,"maximum":30},"description":"Forward horizon for the calendar"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_event-regime","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/event/regime/score":{"get":{"operationId":"event-regime-score","summary":"Get Event Regime Score","description":"Market-wide Event Risk composite (0-100) + sub-scores + live-only sidecars.\n\nBaseline 0 (event risk is absence-by-default). Bands: dormant (<10), quiet\n(10-29), elevated (30-54), heavy (55-79), critical (≥80). Composite =\n0.40·unlock + 0.25·macro + 0.35·depeg, re-normalized over available feeds\n(``partial``/``inputs_available`` flag which were live). The\n``sector_rotation`` (CoinGecko categories) sidecar is live-only and\nexcluded from the composite.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/event/regime/{symbol}":{"get":{"operationId":"event-regime-symbol","summary":"Get Event Regime Symbol","description":"Per-symbol catalyst overlay — pending catalysts (≤7d) + net bias (Pro+).","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/exchanges":{"get":{"operationId":"exchanges","summary":"List Exchanges","description":"Every exchange we profile, with its sign-up link where we have one.\n\nSign-up URLs are CryptoDataAPI **partner/referral** links: the user gets the\nstated `signup_incentive` (Hyperliquid: 4% off spot and perpetual trading\nfees) and we may earn a commission at no extra cost to them. If you surface\n`signup_url` to an end user, surface `disclosure` with it.\n\nNo API key required.","parameters":[{"name":"referral_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Return only venues we hold a partner sign-up link for."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_exchanges","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/exchanges/{slug}":{"get":{"operationId":"exchanges-slug","summary":"Get Exchange Detail","description":"One exchange profile by slug (e.g. `hyperliquid`, `binance`).\n\nSame shape as a row from `/exchanges`. Returns 404 for an unknown slug — the\nknown set is in that endpoint's `all_slugs`. No API key required.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/candles":{"get":{"operationId":"hyperliquid-candles","summary":"Get Candles","description":"OHLCV candles for a coin — trailing ``limit`` bars, or an explicit range.\n\n**These are Hyperliquid's own bars** (``candleSnapshot``) — the execution\ntruth for an HL book: signal, size and mark a Hyperliquid position from this\nseries. ``/api/v1/backtesting/klines`` is our archive of the same venue's 1m\nbars for deep history, not a second price source. For several coins at once\nuse ``/hyperliquid/candles/batch``.\n\n``coin`` is HL's own name, matched case-insensitively (``symbol`` is accepted\nas an alias, and a ``USDT`` / ``-PERP`` suffix is tolerated). A name HL does\nnot list is a 400 ``unknown_coin`` and an unrecognised query parameter a 400\n``unknown_parameter`` — never a silent default-coin reply.\n\n``atr=14`` adds a Wilder ATR to every bar (``atr``; null for the first\n``atr`` bars) computed on this exact series, so every agent uses the same\nnumber. The LAST bar is usually still forming: ``forming_bar_timestamp``\nnames it (null when the last bar has closed) — drop it, and its ``atr``,\nfor completed-bar signals.\n\nPass ``start`` (and optionally ``end``) as epoch milliseconds or ISO-8601\nto fetch a fixed window instead of the trailing ``limit``; ranges longer\nthan one candleSnapshot page are paginated, up to **15,000 bars** per call\n(400 above that — narrow the window or step the interval up). Explicit\nranges bypass the 60s response cache and spend live HL weight (20 per\n1,500-bar page), so poll them sparingly.\n\n**Retention is Hyperliquid's, not ours:** HL keeps only its most recent\n~5,000 bars of each interval (about 3.5 days of 1m, 17 days of 5m, 7 months\nof 1h); the part of a range older than that returns no bars. For multi-month\n1m history use ``/api/v1/backtesting/klines?exchange=hyperliquid&start=&end=``\n(our own archive, local from 2026-05-09).\n\n``start`` / ``end`` in the response echo the resolved window (ms) for a\nrange request and are null for a trailing pull.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"HL coin name, e.g. BTC, SOL, kPEPE (default BTC)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coin` (the rest of the API says `symbol`). Send one or the other."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"minimum":1,"maximum":1000}},{"name":"start","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Range start — epoch ms or ISO-8601. With `start`/`end` the trailing `limit` is ignored; the range is capped at 15,000 bars."},{"name":"end","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Range end — epoch ms or ISO-8601 (default: now)"},{"name":"atr","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":2,"maximum":200},"description":"Add a Wilder ATR of this period to every bar as `atr` (e.g. 14). Null for the first `atr` bars of the window; pull at least ~10x the period for a converged value."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-candles","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/candles/batch":{"get":{"operationId":"hyperliquid-candles-batch","summary":"Get Candles Batch","description":"Trailing OHLCV candles for up to 25 coins in ONE call — the same bars\n``/hyperliquid/candles`` serves per coin, keyed by coin under ``series``.\n\nTrailing ``limit`` only; for an explicit ``start``/``end`` range use the\nsingle-coin route. Every coin must be in HL's universe (400 ``unknown_coin``\notherwise — nothing is silently dropped). On a cold cache a series that has\nnot arrived within ~8s is listed in ``pending`` instead of holding the\nwhole response, and ``retry_after_s`` says how long to wait (scaled to how many\nare still fetching): their fetches keep running and are cached, so retry just\nthe ``pending`` coins after that. A cold coin costs Hyperliquid rate limit\n(~20 weight, whatever ``limit`` is), so a first pull of many coins takes a\nwhile and repeat pulls are instant; for a whole-universe scan that needs no\ncandles at all, use ``/indicators/heatmap``. ``atr`` and\n``forming_bar_timestamp`` behave as on ``/hyperliquid/candles``.\n\nThe contract: ``complete`` is true iff every requested coin is in ``series``; a\ncoin is never in both ``series`` and ``pending``. ``wait`` (0-25s, default 8)\nholds longer for a caller that prefers one call over a poll. ``closed_only=true``\nreturns the last ``limit`` COMPLETED bars — the read for a strategy that acts on a\nclosed bar — and is served from any series fetched since the latest close, so the\nliquid coins pre-warmed just after each 4h close stay instant for the whole bar.\nFees for sizing are on ``/hyperliquid/meta`` (``fees``); funding + OI on the same\nbar grid are ``/backtesting/hl-funding-bars`` (join on ``timestamp``).","parameters":[{"name":"coins","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma list of HL coin names, e.g. ETH,SOL,BNB (up to 25)"},{"name":"symbols","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coins`. Send one or the other."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"minimum":1,"maximum":1000}},{"name":"atr","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":2,"maximum":200},"description":"Add a Wilder ATR of this period to every bar as `atr` (e.g. 14). Null for the first `atr` bars of the window; pull at least ~10x the period for a converged value."},{"name":"closed_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"true = COMPLETED bars only: the last `limit` closed bars, no forming bar. Served from any series fetched since the latest bar close, so it stays warm for the whole bar (the default trailing window is re-fetched every few minutes)."},{"name":"wait","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0,"maximum":25},"description":"Seconds to hold for cold series before answering with `pending` (0-25, default 8)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/copy-signals":{"get":{"operationId":"hyperliquid-copy-signals","summary":"Get Copy Signals","description":"Top traders with their recent signals in a single response.\n\nReplaces the 3-step workflow (top-traders → watchlist → signals) with one call.\nOnly returns traders that have signals in the given time window.\n\nProfile filters (min_win_rate, min_profit_factor, min_trades_30d,\nmin_avg_duration_hours, exclude_types) are optional and only applied when\npassed — preserves backward compatibility. Recommended: pass\nmin_trades_30d=30 to drop tiny-sample wallets.","parameters":[{"name":"min_score","in":"query","required":false,"schema":{"type":"integer","default":80,"minimum":0,"maximum":100},"description":"Minimum trader score"},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","default":60,"minimum":1,"maximum":1440},"description":"Signal look-back window in minutes"},{"name":"min_win_rate","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0,"maximum":1},"description":"Minimum 30d win rate (0-1)"},{"name":"min_profit_factor","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Minimum profit factor"},{"name":"min_trades_30d","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":0},"description":"Minimum trades in 30d. Pass 30+ to filter tiny-sample wallets (e.g. '100% WR over 2 trades'). Not auto-defaulted here for backward compatibility."},{"name":"min_avg_duration_hours","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Min avg trade duration (hours)"},{"name":"exclude_types","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma-separated trader types to exclude, e.g. 'hft,scalper'"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/funding-rates":{"get":{"operationId":"hyperliquid-funding-rates","summary":"Get Funding Rates","description":"Current + historical funding rates for a coin.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"HL coin name (default BTC)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coin` (the rest of the API says `symbol`). Send one or the other."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-funding-rates","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/l2-book":{"get":{"operationId":"hyperliquid-l2-book","summary":"Get L2 Book","description":"L2 order book snapshot.\n\n``ts`` (ms) is Hyperliquid's own timestamp for the book snapshot (from the\n``l2Book`` payload's ``time`` field) — null only if HL omitted it. The\ncollector dedupes identical requests for 3s, so two calls inside that\nwindow return the same ``ts``.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"HL coin name (default BTC)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coin` (the rest of the API says `symbol`). Send one or the other."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-l2-book","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/meta":{"get":{"operationId":"hyperliquid-meta","summary":"Get Meta","description":"Exchange metadata: assets, max leverage, specs — plus the fee schedule.\n\n``fees`` is Hyperliquid's published schedule as fractions of notional\n(``perps.taker`` 0.00045 = 0.045%): base-tier ``perps`` / ``spot`` rates, the\nfull ``volume_tiers`` table, and ``as_of`` / ``source`` so you can check it.\nIt is venue-wide — HL has no per-coin fee — and static on our side.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/open-interest":{"get":{"operationId":"hyperliquid-open-interest","summary":"Get Open Interest","description":"Open interest across all Hyperliquid assets.\n\n``as_of`` (ms) is when the ``metaAndAssetCtxs`` snapshot behind every row\nwas fetched (60s cadence); ``generated_at`` (ms) is when this response was\nbuilt. ``open_interest_usd = open_interest x mark_price``; ``premium`` is\nHL's own context field. ``coverage`` explains the row count: HL keeps\ndelisted perps in its universe and they are excluded here.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-open-interest","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/prices":{"get":{"operationId":"hyperliquid-prices","summary":"Get Prices","description":"All mid prices across Hyperliquid assets.\n\n``as_of`` (ms) is when the ``allMids`` snapshot was fetched from HL (the\ncache refreshes every 60s, stale-while-refresh); ``generated_at`` (ms) is\nwhen this response was built.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-prices","x-cache-ttl-s":30,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/summary":{"get":{"operationId":"hyperliquid-summary","summary":"Get Summary","description":"All-in-one perp data for a coin, including its volume multiplier.\n\n``volume_multiplier`` is the coin's live rolling-24h notional over its mean\ndaily notional across the last 30 settled days — 3.0 means it is trading at\nthree times normal. Null when the coin is too newly listed (<7 days) to have\nan honest baseline. The ranked, filterable scan across the whole universe\nlives at ``/api/v1/volume/scanner``.\n\n``as_of`` (ms) is the fetch instant of the ``metaAndAssetCtxs`` snapshot\nbehind funding / OI / mark / oracle / volume; ``price_as_of`` is the same\nfor the ``allMids`` mid ``price``; ``generated_at`` is when this response\nwas built. Both snapshots refresh every 60s.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"HL coin name (default BTC)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coin` (the rest of the API says `symbol`). Send one or the other."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-summary","x-cache-ttl-s":30,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/top-traders":{"get":{"operationId":"hyperliquid-top-traders","summary":"Get Top Traders","description":"Scored leaderboard of top traders filtered by performance criteria.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-top-traders","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/trade-flow":{"get":{"operationId":"hyperliquid-trade-flow","summary":"Get Trade Flow","description":"Per-minute taker buy/sell flow for one perp, newest last, dense.\n\nEvery row is one closed UTC minute. ``buy_notional`` / ``sell_notional``\nare USD notional by AGGRESSOR side (HL ``B`` = taker bought, ``A`` = taker\nsold); their sum is the minute's total traded notional. ``vwap`` is that\nminute's notional-weighted price; ``max_fill_usd`` the largest single\nfill; ``large_fill_share`` the share of notional from fills at or above\n``large_fill_usd`` (``null`` when none qualify). ``cvd_usd`` is the\ncumulative buy-minus-sell notional running from ``window_start`` — it\nresets per request, so compare rows within one response only.\n\n``partial: true`` means our socket did not watch the whole minute (a\nreconnect, a deploy). Such minutes come back with ``null`` notional when\nnothing was captured, and are NOT back-filled — HL's public stream has no\nreplay. A covered minute with no fills is a genuine zero (``0.0``,\n``partial: false``). ``stream.coverage_pct`` is the share of the last 60\nminutes fully watched.\n\nThe current, still-open minute is never included. 503\n``trade_flow_warming`` until the first bucket closes (about a minute\nafter the collector starts); 404 for a coin HL does not list. Pro.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string","default":"BTC"},"description":"HL coin name (BTC, ETH, kPEPE — case-sensitive after the first letter for k-prefixed perps)"},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","default":60,"minimum":1,"maximum":1440},"description":"Trailing window in whole minutes (max 24h)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-trade-flow","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/trade-flow/universe":{"get":{"operationId":"hyperliquid-trade-flow-universe","summary":"Get Trade Flow Universe","description":"Taker flow for EVERY Hyperliquid perp over one window, biggest first.\n\n``taker_buy_ratio`` is buy notional over total (0..1; ``null`` for a coin\nwith no fills). ``large_fill_share`` is the share of the window's notional\nfrom fills at or above ``large_fill_usd``. ``partial_minutes`` counts the\nwindow's minutes our socket did not fully watch — the same for every row,\nsince coverage is per connection, not per coin. Coins with zero fills in\nthe window are omitted. ``as_of`` is the window's end (the last closed\nminute). Pro Plus.","parameters":[{"name":"window","in":"query","required":false,"schema":{"type":"string","default":"1h"},"description":"15m, 1h or 4h"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/trader-profile/{address}":{"get":{"operationId":"hyperliquid-trader-profile-address","summary":"Get Trader Profile","description":"On-demand trade profile for ANY Hyperliquid address. Fetches fill history and computes stats.","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":90},"description":"Analysis period in days"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/trader-profiles":{"get":{"operationId":"hyperliquid-trader-profiles","summary":"Get Trader Profiles","description":"Trade profiles with win rate, PnL, classification, and edges.","parameters":[{"name":"address","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by wallet address (0x...)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/wallet-positions":{"get":{"operationId":"hyperliquid-wallet-positions","summary":"Get Wallet Positions","description":"Current positions for tracked wallets. For non-tracked addresses, queries Hyperliquid on-demand.","parameters":[{"name":"address","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by wallet address (0x...)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_hyperliquid-wallet-positions","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/wallet-signals":{"get":{"operationId":"hyperliquid-wallet-signals","summary":"Get Wallet Signals","description":"Position change signals: entries, exits, size increases/decreases.","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":1440},"description":"Look-back window in minutes"},{"name":"address","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by wallet address (0x...). Comma-separated for multiple."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/wallet-trades/{address}":{"get":{"operationId":"hyperliquid-wallet-trades-address","summary":"Get Wallet Trades","description":"Historical trades for any Hyperliquid address with summary statistics.","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":90},"description":"Trade history period in days"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/hyperliquid/wallets/search":{"get":{"operationId":"hyperliquid-wallets-search","summary":"Search Wallets","description":"Search the cached top-leaderboard pool for wallets matching arbitrary gates.\n\nRead-only — does not modify the watchlist. Pool is the same ~50-wallet set\nthat auto-watchlist evaluation considers. Refreshed daily at 19:00 UTC.","parameters":[{"name":"min_score","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0,"maximum":100},"description":"Minimum top-trader score"},{"name":"min_win_rate","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0,"maximum":1},"description":"Minimum 30d win rate (0-1)"},{"name":"min_profit_factor","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Minimum profit factor"},{"name":"min_trades_30d","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":0},"description":"Minimum trades in 30d. Defaults to 30 to filter tiny-sample wallets. Pass 0 explicitly to disable."},{"name":"min_avg_duration_hours","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Min avg trade duration (hours)"},{"name":"exclude_types","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma-separated trader types to exclude, e.g. 'hft,scalper'"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"minimum":1,"maximum":50},"description":"Max wallets to return"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/adx":{"get":{"operationId":"indicators-adx","summary":"Get Adx","description":"ADX(14) + DMI per asset on daily, 4h or 1h bars (Pro tier).\n\nThe same Wilder ADX/+DI/-DI the SIGNUM trend radar colours from, served as numbers per\ninterval: ``interval=1d`` matches ``/indicators/signum-rgg`` ``adx``, ``4h`` its\n``h4_adx`` (completed bars on the UTC 00/04/08/12/16/20 grid of\n``/hyperliquid/candles?interval=4h``) and ``1h`` its ``intraday_adx``. Recomputed hourly\n(:05 UTC) for the whole universe, so a universe-wide read costs nothing.\n\nPer row: ``adx``, ``plus_di``, ``minus_di``; ``direction`` (+DI vs -DI); ``strength``\nagainst SIGNUM's bands (``strong`` >= 25, ``weak`` < 20); ``color`` (the SIGNUM state on\nthat interval); ``bar_open`` and ``final``. A row whose interval read is unavailable\n(too few bars, or a stale intraday series) carries nulls and sorts last.\n\n``history=N`` attaches the last N completed bars per row. For 4h and 1h that is a live\ncandle pull per symbol (memoised 30 minutes), so it needs ``coin`` with at most 5\nsymbols. An unrecognised query parameter is a 400.\n\nExample gates: ``?coin=BTC&interval=4h`` -> ``items[0].adx > 25``;\n``?interval=1d&min_adx=25&source=hyperliquid_perp`` -> every trending HL perp.","parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma list of symbols (BTC,ETH,kPEPE); omit for the whole universe. Symbols the universe does not cover are listed in `not_covered`."},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `coin`. Send one or the other."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","enum":["1d","4h","1h"],"default":"1d"},"description":"Bar width: 1d and 4h read COMPLETED bars; 1h includes the bar forming at the hourly sweep (`final: false`)"},{"name":"source","in":"query","required":false,"schema":{"type":["string","null"],"enum":["binance_spot","hyperliquid_perp"]}},{"name":"min_adx","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0,"maximum":100},"description":"Only rows with adx >= this"},{"name":"history","in":"query","required":false,"schema":{"type":"integer","default":0,"minimum":0,"maximum":500},"description":"Attach the last N completed bars per row (1d: up to 60; 4h: up to 90; 1h: up to 500). 4h/1h history needs `coin` with at most 5 symbols."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["adx","symbol"],"default":"adx"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":1000}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"minimum":0}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_indicators-adx","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/catalog":{"get":{"operationId":"indicators-catalog","summary":"List Indicators","description":"Every catalogue indicator (optionally one group): what it measures,\naliases and the endpoints behind it.","parameters":[{"name":"group","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Group slug from /indicators/catalog/groups, e.g. volatility"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/catalog/groups":{"get":{"operationId":"indicators-catalog-groups","summary":"List Indicator Groups","description":"Every indicator group with its description, count and the CDA endpoints\nthat serve it or its inputs.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/catalog/{slug}":{"get":{"operationId":"indicators-catalog-slug","summary":"Get Indicator","description":"One indicator in full: definition summary, strategies that use it, the\nCDA endpoints behind it, its AlgoBrain page path and an AI-agent prompt.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/heatmap":{"get":{"operationId":"indicators-heatmap","summary":"Get Indicator Heatmap","description":"One-call scan table for a coin universe (Pro) — what otherwise takes one call per coin.\n\nEach row joins the SIGNUM_RGG daily colour (``signum``, ``days_in_color``, ``adx``),\nrolling hourly moves (``pct_1h``, ``pct_4h``, ``pct_24h``), 30-day notional liquidity\n(``notional_30`` — mean daily USD volume, the same field as ``/volatility/regime``\n``vol.notional_30``) and the daily 200-SMA position (``above_sma200``,\n``dist_from_200_pct`` — from ``/indicators/technical``). Served from data the API already\nholds, so the whole universe is one instant call and spends no exchange rate limit.\n\n**The moves are rolling windows over COMPLETED hourly bars.** ``pct_4h`` is the change from\nthe close four hours before the last completed hourly close to that close — it is NOT the\nopen-to-close of a 4h bar, so it is not aligned to 00/04/08 UTC. ``as_of`` is the close\ntime of that last completed bar. They refresh hourly (:05 UTC) with SIGNUM_RGG, so during\nthe hour they describe the last full hour, not the forming one. ``price`` is that bar's\nclose. A window whose bar is missing from the series is ``null``. ``pct_4h_bar`` IS the\nclock-aligned move: open to close of the last closed UTC 4h bar, ending at\n``bar_4h_as_of``. The top-level ``moves`` object states this in every response.\n\n``signum`` / ``days_in_color`` / ``adx`` are the completed-DAILY read, the same bar\ncontract as ``/indicators/signum-rgg``. ``signum_4h`` / ``bars_in_color_4h`` are the same\ncascade over COMPLETED 4h bars on the ``/hyperliquid/candles?interval=4h`` grid (null when\nunder 30 complete 4h bars). Pegged / stablecoin rows are excluded.\n\nFilters: ``min_notional_30`` (liquidity floor), ``color``, ``color_4h``, ``above_sma200``. Sort with\n``sort`` (default ``notional_30``); ``sort=pct`` orders by the move named by ``interval``.\nRows lacking the sort value go last. ``source`` defaults to ``hyperliquid_perp``.\n\nExample: ``?min_notional_30=3000000&color=green&above_sma200=true&sort=pct&interval=4h``.","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":"string","enum":["hyperliquid_perp","binance_spot","all"],"default":"hyperliquid_perp"},"description":"Universe. `all` adds the Binance-spot fill."},{"name":"interval","in":"query","required":false,"schema":{"type":"string","enum":["1h","4h"],"default":"4h"},"description":"Which move `sort=pct` orders by (`pct_1h` or `pct_4h`). Every row always carries all three moves."},{"name":"min_notional_30","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Liquidity floor: drop rows whose 30-day mean daily USD notional is below this (rows with unknown liquidity are dropped too)."},{"name":"color","in":"query","required":false,"schema":{"type":["string","null"],"enum":["red","grey","green"]}},{"name":"color_4h","in":"query","required":false,"schema":{"type":["string","null"],"enum":["red","grey","green"]},"description":"Filter on the 4h SIGNUM colour (`signum_4h`)."},{"name":"above_sma200","in":"query","required":false,"schema":{"type":["boolean","null"]},"description":"true = above the daily 200-SMA, false = below."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["notional_30","pct","days_in_color","adx","symbol"],"default":"notional_30"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_indicators-heatmap","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/signum-rgg":{"get":{"operationId":"indicators-signum-rgg","summary":"Get Signum Rgg","description":"SIGNUM_RGG trend radar across all live Hyperliquid perps + liquid Binance USDT pairs.\n\nEach asset gets a daily RED/GREY/GREEN color from ADX(14)+DMI with hysteresis,\nplus days-in-color, flip date, % change since flip, and (for grey) the 20-day\nconsolidation range. Recomputed hourly (:05 UTC).\n\n**Bar contract:** ``color`` / ``days_in_color`` / ``adx`` / ``flipped_at`` /\n``price`` are read from **completed** daily bars (``computed_from`` = the\nlast completed UTC day, ``is_final: true``). ``color_live`` / ``adx_live`` /\n``days_in_color_live`` include the forming UTC bar and can change intraday.\n\n**flip_alert** is true when the last 4 closed 1h bars ALL carry a colour\ndifferent from the daily ``color`` (``intraday_disagrees`` is the same\nvalue; ``flip_alert_reason`` names it). ``recent_flip`` = ``days_in_color\n<= 3``. ``intraday_timeframe`` is always ``\"1h\"``.\n\n**pegged** rows (stablecoins, $1-pinned tokens) stay in the list but are\nexcluded from every breadth aggregate and top list on ``/daily``.\n\nUniverse: Hyperliquid wins the dedupe on overlap; Binance spot fills the\ngaps (pairs with >=$100k 24h quote volume). ``universe_size`` is the full\nrow count before filters; page with ``offset`` + ``limit`` (max 1000).\n\n``symbol`` (alias ``coin``) narrows to a comma list of assets; any it names that the\nuniverse does not cover come back in ``not_covered``. Per-interval ADX numbers (1d, 4h,\n1h) for the same rows are ``/indicators/adx``. An unrecognised query parameter is a 400.","parameters":[{"name":"color","in":"query","required":false,"schema":{"type":["string","null"],"enum":["red","grey","green"]}},{"name":"source","in":"query","required":false,"schema":{"type":["string","null"],"enum":["binance_spot","hyperliquid_perp"]}},{"name":"min_days","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":0}},{"name":"max_days","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":0}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["days_in_color","pct_change","adx","symbol"],"default":"days_in_color"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":1000}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"minimum":0},"description":"Rows to skip after sorting (pagination)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma list of symbols to return (BTC,ETH,kPEPE); omit for the whole universe. Requested symbols the universe does not cover are listed in `not_covered`."},{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `symbol`. Send one or the other."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_indicators-signum-rgg","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/signum-rgg/{symbol}":{"get":{"operationId":"indicators-signum-rgg-symbol","summary":"Get Signum Rgg Symbol","description":"Per-asset SIGNUM_RGG detail with the last 60 days of color history.\n\n``history`` is the completed-bar colour per day (same contract as the list\nroute). ``intraday_history`` (the per-bar 1h series) is **only populated\nwith ``?intraday=true``** — it costs a live candle pull, memoised per\nsymbol for 30 minutes; without the flag the response is served entirely\nfrom the hourly cache. ``h4_history`` (the per-bar 4h series on the UTC grid of\n``/hyperliquid/candles?interval=4h``, completed bars only) is populated with\n``?h4=true`` from the same memoised pull.\n\nAn exact Hyperliquid universe name (``kPEPE``) resolves to the HL perp row;\nthe plain ticker (``PEPE``) resolves to the plain-ticker row, and\n``kBONK``-style names fall back to the plain symbol when no HL row exists.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"intraday","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Attach the ~60d per-bar 1h intraday_history (one live candle pull per symbol per 30 min; omitted by default)"},{"name":"h4","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Attach h4_history: the per-bar 4h SIGNUM series (last 90 completed 4h bars), aggregated from the same 1h pull as `intraday` — asking for both costs one fetch"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/technical":{"get":{"operationId":"indicators-technical","summary":"Get Technical Regime","description":"Technical / Structural regime overlay (Regime #14, Pro tier).\n\nPer-asset price-structure state across the same universe as SIGNUM_RGG:\nmoving-average position (SMA-50/100/200 + last cross), Bollinger-band\nsqueeze + bandwidth percentile, 20d range position, RSI(14) extremes on\ndaily + 1h timeframes, and `sr` — up to 3 support + 3 resistance levels\nper side, from swing-high/low pivots on the daily series, nearest to\ncurrent price first. A level's `strength` is how many pivots clustered\ninto it; `dist_pct` is its signed % distance from mark (negative =\nsupport, positive = resistance). Levels further than 30% from mark are\ndropped as not actionable.\n\n``breadth`` reports compression breadth over the FULL universe regardless\nof filters: ``{total, in_squeeze, pct_in_squeeze,\npct_in_squeeze_pctile_30d, history_days}`` — the percentile ranks today's\nsqueeze share against the last 30 archived daily values (null until 10\ndays are archived).\n\nFilter via `ma_state`, `bb`, `range_zone`, `rsi` (each is optional and\nAND-combined). Example screener queries:\n\n  - `?bb=in_squeeze&sort=squeeze_days&order=desc` — assets compressed for longest\n  - `?rsi=oversold&min_days_in_state=2` — sustained oversold candidates\n  - `?ma_state=reclaim_200` — recent 200MA reclaims (last 10 days)\n  - `?range_zone=near_high&ma_state=above_200` — near-range-high + uptrend\n  - `?symbol=BTC,ETH,SOL` — just those assets (alias `coin`); any the universe does not\n    cover are listed in `not_covered`\n\nEvery series is DAILY (``ma`` carries SMA-20/50/100/200). An unrecognised query parameter\n(``interval``, say) is a 400, not a silently ignored filter; 4h / 1h ADX is\n``/indicators/adx``.","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":["string","null"],"enum":["binance_spot","hyperliquid_perp"]}},{"name":"ma_state","in":"query","required":false,"schema":{"type":["string","null"],"enum":["above_200","below_200","breakdown_200","reclaim_200"]},"description":"Filter by SMA-200 relationship"},{"name":"bb","in":"query","required":false,"schema":{"type":["string","null"],"enum":["in_squeeze","expanding"]},"description":"Filter by Bollinger band state"},{"name":"range_zone","in":"query","required":false,"schema":{"type":["string","null"],"enum":["near_low","mid","near_high"]},"description":"Filter by 20d range position"},{"name":"rsi","in":"query","required":false,"schema":{"type":["string","null"],"enum":["overbought","oversold","extreme"]},"description":"Filter by daily RSI state"},{"name":"min_days_in_state","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":0},"description":"Min days in state (squeeze or RSI extreme); requires matching filter"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["symbol","price","rsi_1d","bb_bandwidth","squeeze_days","dist_from_200","position_in_range"],"default":"symbol"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500}},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma list of symbols to return (BTC,ETH,kPEPE); omit for the whole universe. Requested symbols the universe does not cover are listed in `not_covered`."},{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `symbol`. Send one or the other."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_indicators-technical","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/indicators/technical/{symbol}":{"get":{"operationId":"indicators-technical-symbol","summary":"Get Technical Regime Symbol","description":"Per-asset Technical / Structural detail with 60d daily history.\n\n`history` contains compact daily bars (close, RSI-14, BB bandwidth, SMA-200,\nabove_200) suitable for sparkline rendering.\n\nHyperliquid thousand-unit tickers (``kBONK``, ``kPEPE``, ``kSHIB``) are\naccepted as aliases of the plain symbol.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/liquidity/depth":{"get":{"operationId":"liquidity-depth","summary":"Get Depth","description":"Current per-coin depth/spread snapshot across the tracked universe.\n\nReturns one record per coin (top-25 HL perps by 24h volume):\nbid/ask depth in USD at {10, 25, 50, 100}bps from mid, spread in bps,\nbook imbalance within 10bps, and joined open interest.\n\nThe free tier is scoped to BTC; full-universe coverage is Pro and Pro Plus.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/liquidity/depth/{coin}":{"get":{"operationId":"liquidity-depth-coin","summary":"Get Depth For Coin","description":"Per-coin depth history (rolling, up to 24h). Free: BTC only; Pro + Pro Plus: any tracked coin.\n\n**Tracked universe is the top 25 Hyperliquid perps by 24h notional** (re-\nselected each sweep), not every coin — an untracked coin 404s. The current\nset is the ``coins`` list on ``/liquidity/depth``.\n\n``minutes`` is a **time** window measured back from now, not a row count.\nSampling runs on a ~2-minute timer and can skip, so ``count`` is the number of\nsnapshots that actually landed in the window — expect roughly ``minutes / 2``,\nfewer after a stall. Each record carries ``ts`` so staleness is visible.\n\nEach record carries ``depth_usd.bid`` / ``depth_usd.ask`` per band\n(10/25/50/100 bps) plus ``imbalance_10bps``. ``levels_truncated`` flags,\nper band per side, when the deepest level in HL's ~20-level snapshot still\nsat inside the band — that band's ``depth_usd`` is then a lower bound on\nthe true resting depth, not the depth.","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","default":60,"minimum":1,"maximum":1440},"description":"Trailing wall-clock minutes of history (max 24h)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/liquidity/oi-divergence":{"get":{"operationId":"liquidity-oi-divergence","summary":"Get Oi Divergence","description":"OI vs price change across 1h/4h/24h windows, ranked by 4h divergence.\n\nPositive divergence (OI rising faster than price) = fragile positioning.\nCoins without enough history for a given window report null for that window.\n\nThe free tier is scoped to BTC; full-universe coverage is Pro and Pro Plus.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/liquidity/regime":{"get":{"operationId":"liquidity-regime","summary":"Get Regime","description":"Per-coin liquidity regime + market-wide aggregate + composite score.\n\nEach coin is classified into one of: ``deep_book``, ``oi_price_divergence``,\n``depth_withdrawal``, ``post_cascade_impaired``, or ``neutral``. The\ncomposite score (0-100) maps the regime mix into a single fragility read\n(higher = healthier market structure).\n\n**Forward-only — not historically backfillable.** Unlike ``technical_regime``\n(replayable from daily klines), the rules here depend on *intraday* L2 depth\ndeltas (10-min withdrawal, 12h depth baselines, depth/spread percentiles)\nthat only exist in the live per-minute sample buffer. There is no historical\nsource to reconstruct them from, so this signal accumulates forward from\ncollector start. The per-coin snapshot is archived daily so a backtestable\nhistory builds going forward; periods before collector deploy are unavailable.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_liquidity-regime","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/liquidity/regime/score":{"get":{"operationId":"liquidity-regime-score","summary":"Get Regime Score","description":"Composite liquidity fragility score (0-100) + sentiment band + aggregate breakdown.\n\nTrimmed companion to ``/liquidity/regime`` — same composite, no per-coin list.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/btc-price-history":{"get":{"operationId":"market-data-btc-price-history","summary":"Btc Price History","description":"BTC price history with 200D MA.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"minimum":1,"maximum":730}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/exchange-info":{"get":{"operationId":"market-data-exchange-info","summary":"Get Exchange Info","description":"Exchange pair info from Binance Spot.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/klines":{"get":{"operationId":"market-data-klines","summary":"Get Klines","description":"OHLCV klines from Binance Spot.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1d"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"minimum":1,"maximum":1000}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/short-term-price":{"get":{"operationId":"market-data-short-term-price","summary":"Short Term Price","description":"Short-term BTC price momentum metrics (on-demand computation).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/ticker/24hr":{"get":{"operationId":"market-data-ticker-24hr","summary":"Get Ticker 24Hr","description":"24hr ticker stats from Binance Spot.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/ticker/price":{"get":{"operationId":"market-data-ticker-price","summary":"Get Ticker Price","description":"Current price from Binance Spot.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string","default":"BTCUSDT"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-data/volume-history":{"get":{"operationId":"market-data-volume-history","summary":"Volume History","description":"Daily volume + buy ratio, derived from our own kline + taker archives.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":90}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health":{"get":{"operationId":"market-health","summary":"Get Market Health","description":"Full dual-score market health result with all 11 components.\n\n**`indicators` contract**\n\nTop-level `indicators` is a flat denormalization of the most-filtered values\nfrom `components.<x>.details`. Keys are **omitted entirely** when the source\nvalue is unavailable (never null) so consumers can safely use\n`dict.get(key, default)` for fallbacks. Committed key set:\n\n- `long_short_ratio` (float) — BTC long/short ratio (Binance perps)\n- `funding_rate` (float, %) — avg funding rate (aliased from `avg_funding_rate`)\n- `buy_ratio` (float, 0–1) — weighted taker-buy ratio across top spot pairs\n- `fear_greed_value` (int, 0–100) — averaged Fear & Greed index\n- `breadth_pct` (float, %) — share of top-30 coins above their 200D MA\n- `pct_from_200ma` (float, %) — BTC distance from 200D MA\n- `cross_status` (str) — Golden | Death | Neutral\n- `stablecoin_change_7d` (float) — 7-day stablecoin market-cap change\n\nHealth is computed cross-exchange (CoinGlass aggregate + Binance) and is not\nscoped by any per-exchange filter. The `long_short_ratio` is BTC-on-Binance,\nused as a market-wide sentiment signal.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_market-health","x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health/altcoin-breadth":{"get":{"operationId":"market-health-altcoin-breadth","summary":"Altcoin Breadth","description":"Altcoin breadth - % of coins above their MA with per-coin detail.","parameters":[{"name":"ma_period","in":"query","required":false,"schema":{"type":"integer","default":200,"minimum":5,"maximum":365}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_market-health-altcoin-breadth","x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health/component/{name}":{"get":{"operationId":"market-health-component-name","summary":"Get Health Component","description":"Get a single component by name.","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health/components":{"get":{"operationId":"market-health-components","summary":"Get Health Components","description":"All 11 component details.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_market-health-components","x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health/history":{"get":{"operationId":"market-health-history","summary":"Get Health History","description":"Health score history from database.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"minimum":1,"maximum":730}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-health/summary":{"get":{"operationId":"market-health-summary","summary":"Get Health Summary","description":"Scores + sentiment only (lightweight).","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"Response format: 'markdown' for LLM-friendly plain text"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_market-health-summary","x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/btc/cycle-indicators":{"get":{"operationId":"market-intelligence-btc-cycle-indicators","summary":"Btc Cycle Indicators","description":"BTC cycle indicators: Puell Multiple, Pi Cycle Top, Golden Ratio, 2-Year MA, 200-Week MA, AHR999, Profitable Days, Stock-to-Flow, MVRV Z-Score and NUPL. `days=0` returns every day back to 2010-2014 (about 8 MB; send `Accept-Encoding: gzip`).\n\nTen indicators, each a list of daily entries, oldest first. Every entry carries\n`price` (BTC/USD, Coin Metrics daily reference), `date` (UTC day), `time` (unix\nseconds) and `timestamp` (unix ms, as CoinGlass served it), plus:\n\n- `puell_multiple` — `puell_multiple`: daily issuance USD / its 365-day mean. >4 has marked tops, <0.5 bottoms.\n- `pi_cycle_top` — `ma_111`, `ma_350_mu_2` (2x the 350-day MA), `ma_110` (CoinGlass's key). A top prints when ma_111 crosses above ma_350_mu_2.\n- `golden_ratio` — `ma_350` and its multiples: `accumulation_high_1_6`, `low_bull_high_2`, `ma_350_x3`, `_x5`, `_x8`, `_x13`, `_x21`.\n- `two_year_ma` — `moving_average_730`, `moving_average_730_multiplier_5`.\n- `two_hundred_week_ma` — `ma_200w` (1,400-day mean); `moving_average_1440` is the same value under CoinGlass's key.\n- `ahr999` — `ahr999_value` = (price / `average_price`, the 200-day geometric mean) x (price / `growth_valuation`, 10^(5.84 log10(days since genesis) - 17.01)). <0.45 accumulate, 0.45-1.2 DCA, >1.2 late cycle.\n- `bitcoin_profitable_days` — `profitable_percentage`: share of all days up to that one that closed below it. `side`: 1 if that day closed below the LATEST price, -1 above, 0 latest (it changes as the price moves).\n- `stock_to_flow` — `stock_to_flow`: supply / trailing-365-day issuance; `next_halving`: days to the next halving (the upcoming one is projected from supply at the trailing 30-day issuance rate).\n- `mvrv_zscore` — `mvrv` (market cap / realized cap) and `mvrv_zscore` = (market cap - realized cap) / the standard deviation of market cap up to that day (expanding, so no lookahead).\n- `nupl` — `nupl` = 1 - 1/MVRV (net unrealized profit/loss share of market cap).\n\nDaily from 2010-2014 (each starts once its window fills) to the latest day Coin\nMetrics has published, usually yesterday. Every value is as-of its own day.\n`rainbow_chart`, `bitcoin_bubble` and `bull_market_peak` were CoinGlass-only and\nare no longer served (410); their CoinGlass series up to 2026-07-22 are in\n/api/v1/backtesting/snapshots?data_type=coinglass_cycle_indicators.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":0},"description":"Number of daily entries to return per indicator (0 = all, default 30)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/btc/cycle-indicators/{indicator}":{"get":{"operationId":"market-intelligence-btc-cycle-indicators-indicator","summary":"Btc Cycle Indicator By Name","description":"Single BTC cycle indicator by name (fields as on /btc/cycle-indicators).\n\nA retired CoinGlass-only name (`rainbow_chart`, `bitcoin_bubble`,\n`bull_market_peak`) is a 410; any other unknown name is a 400.","parameters":[{"name":"indicator","in":"path","required":true,"schema":{"type":"string"},"description":"Indicator name"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":0},"description":"Number of daily entries to return (0 = all, default 30)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/coinbase-premium":{"get":{"operationId":"market-intelligence-coinbase-premium","summary":"Coinbase Premium","description":"Coinbase premium index.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/etf/btc/aum":{"get":{"operationId":"market-intelligence-etf-btc-aum","summary":"Etf Btc Aum","description":"BTC spot-ETF assets under management (reconstructed estimate).\n\nReturns one row: ``aum_usd_from_flows``, ``btc_held_from_flows``,\n``btc_price_usd``, ``cumulative_net_flow_usd``, ``price_appreciation_usd``,\n``as_of``, ``since``, ``flow_days``, plus ``method``, ``source``,\n``excludes`` and a ``caveats`` list.\n\nThe ``_from_flows`` suffix is deliberate — GBTC converted holding an\nexisting stake that never appears here as an inflow, so these cover BTC\naccumulated through flows since launch and understate the complex by\nroughly that seed. See ``excludes`` in the payload.\n\nThis 503'd on EVERY call from the 2026-07-24 CoinGlass retirement until\n2026-08-22: CoinGlass was the only AUM feed and no free one exists. It is\nderivable though — AUM is coins held times price, and the daily flow history\nplus that day's close gives the coins. See\nFreeMarketCollector._refresh_etf_aum for the derivation and its biases.\n\n``cumulative_net_flow_usd`` is returned alongside deliberately: it is a\nDIFFERENT quantity from AUM (the gap is price appreciation), and conflating\nthe two is the usual way this number gets misreported.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/etf/{asset}/flows":{"get":{"operationId":"market-intelligence-etf-asset-flows","summary":"Etf Flows","description":"US spot-ETF daily net flow for BTC, ETH or SOL, **keyed by trade date**.\n\n``flows`` holds SETTLED days only (the full Farside \"Total\" for that US\ntrade date), oldest first; ``latest`` is the newest of them. The day still\nbeing reported — Farside fills a new row issuer by issuer, IBIT and FBTC\nlast — is returned separately as ``in_progress`` (``status: \"partial\"``,\nwith how many funds have reported) and never counts toward ``flows``.\n\nRebuilt 2026-09-25: this used to return the newest row's Total while most\nissuers had not reported, stamped with the fetch time, so the figure was a\npartial sum on most weekdays (23 Sep 2026 BTC read +$32.4M; the settled\nTotal is +$346.9M).\n\nSources: Farside (primary) with SoSoValue as an independent backup that\nfills any day Farside has not settled or could not be fetched; each row\nnames its ``source``. ``source_health`` shows the last success/failure of\neach feed. ``xrp`` is not supported (no free source publishes it) and\nanswers 400.","parameters":[{"name":"asset","in":"path","required":true,"schema":{"type":"string"},"description":"Asset: btc, eth, or sol"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"description":"Settled trade days to return in `flows` (newest N, oldest first). Default 1 = the latest settled day."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/exchange-balance":{"get":{"operationId":"market-intelligence-exchange-balance","summary":"Exchange Balance","description":"Exchange BTC balance and flow data.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/fear-greed-history":{"get":{"operationId":"market-intelligence-fear-greed-history","summary":"Fear Greed History","description":"Fear & Greed index history with dated entries, oldest first.\n\nalternative.me's daily Crypto Fear & Greed Index, one reading per UTC day\nback to 2018-02-01. `classification` uses the same bands as\n/sentiment/fear-greed (0-25 Extreme Fear, 26-40 Fear, 41-60 Neutral,\n61-75 Greed, 76-100 Extreme Greed). The current reading on\n/sentiment/fear-greed also averages in CoinMarketCap's index, so today's\nvalue there can differ from the last row here by a few points.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":1,"maximum":5000},"description":"Most recent N daily readings. Omit for the whole series (from 2018-02-01)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/funding-rates":{"get":{"operationId":"market-intelligence-funding-rates","summary":"Funding Rates","description":"Cross-exchange funding rates. Defaults to Hyperliquid perps coins only.\n\n**Filter semantics:** ``exchange=`` is a **coin-set filter**, not an\nexchange-data filter. With ``exchange=hyperliquid`` you get the coins\nlisted on Hyperliquid, but each entry's ``stablecoin_margin_list`` /\n``token_margin_list`` still shows funding rates from every exchange\n(Binance, OKX, Bybit, …). For Hyperliquid's own per-asset funding rate\nuse ``/daily/hyperliquid``.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter to a single coin (e.g. BTC)"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"hyperliquid"},"description":"Filter to coins on exchange: hyperliquid, binance_spot, asterdex, or all"},{"name":"type","in":"query","required":false,"schema":{"type":"string","default":"perps"},"description":"Instrument type — currently a no-op reserved for future filtering; only perps data is returned"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500},"description":"Max coins to return (default 250)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/liquidations":{"get":{"operationId":"market-intelligence-liquidations","summary":"Liquidations","description":"Realized-liquidation data (long/short USD over 1h/4h/12h/24h windows).\nDefaults to Hyperliquid perps coins only.\n\n**Coverage:** totals aggregate our configured realized-liquidation venue\nfeeds (OKX + Bybit + Hyperliquid where armed; the HL contribution is exact\nper-fill capture) — see the ``coverage`` field on the response. **Binance,\nthe largest venue, geo-blocks its liquidation stream from our infrastructure\n(no REST fallback), so these figures run below a true all-exchange total.**\n\n**Filter semantics:** ``exchange=`` is a **coin-set filter**, not an\nexchange-data filter. With ``exchange=hyperliquid`` you get the coins\nlisted on Hyperliquid, but the liquidation values inside each entry are the\nvenue-subset totals above. For Hyperliquid's own per-asset trading data use\n``/daily/hyperliquid``.\n\n**AsterDEX coverage:** With ``exchange=asterdex`` the response is the union\nof (a) CoinGlass cross-exchange aggregate rows whose symbol is also listed\non AsterDEX and (b) AsterDEX venue-native rows (``source: \"asterdex\"``)\nfor AsterDEX-only symbols (e.g. LAB, ASTEROID). Native rows depend on\nAsterDEX's force-order feed, which is intermittently disabled upstream;\nwhen unavailable, only the CoinGlass-aggregate rows are returned.\n\n``as_of`` (unix seconds) is when the liquidation snapshot behind ``data``\nwas last refreshed. Each row also carries ``liq_1h_vs_7d_median``\n``{long, short, total, hours_7d}``: the trailing hour's liquidated notional\nover the **median hourly notional of the prior 7 days** for that coin\n(1.0 = a normal hour), computed from the exact Hyperliquid fill tape on\nboth sides of the ratio — see ``baseline`` for the exact definition. Null\nper side when the 7d median is zero, per row when fewer than 24 hours of\ntape exist, and for every row on a box without the backtesting archive.\n\n**Row grain:** each row's USD fields are trailing-window LEVELS (see\n``grain``: ``kind: rolling_window``, ``sum_ok: false``) — polling this every\nfew minutes and summing or differencing the answers double-counts. For\nincremental flow use the Pro ``/backtesting/hl-liquidation-bars``, built from\nthe Hyperliquid fill tape. ``count`` is the number of liquidation events in\nthe 24h window and ``source`` the venues they came from (``row_count_meaning``).\n\n**Order:** rows are sorted by ``liquidation_usd_24h``, largest first, so\n``limit`` keeps the coins with the most liquidated notional. AsterDEX-native\nrows (``exchange=asterdex``) follow the aggregate rows.\n\nThe free tier is scoped to BTC; full-universe coverage is Pro and Pro Plus.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter to a single coin (e.g. BTC)"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"hyperliquid"},"description":"Filter to coins on exchange: hyperliquid, binance_spot, asterdex, or all"},{"name":"type","in":"query","required":false,"schema":{"type":"string","default":"perps"},"description":"Instrument type — currently a no-op reserved for future filtering; only perps data is returned"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500},"description":"Max coins to return (default 250)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/liquidations/by-exchange":{"get":{"operationId":"market-intelligence-liquidations-by-exchange","summary":"Liquidations By Exchange","description":"Liquidations broken down by exchange (BTC, trailing 4h).\n\nRows are ``{exchange, symbol, total, total_usd, long_usd, short_usd}``,\nlargest first. ``total`` is the legacy CoinGlass field name; ``total_usd``\nmirrors it under the naming the rest of the liquidation surface uses.\n\nCoverage is the venue subset we stream (OKX + Bybit + Hyperliquid), so totals\nrun UNDER a true all-exchange number — same caveat as ``/liquidations``.\nBinance geo-blocks its liquidation stream from our IPs.\n\nThe 503 below is a real cold-start signal, not a dead endpoint: this served\nit on EVERY call from the 2026-07-24 CoinGlass retirement until 2026-08-22,\nbecause the free-source cutover left the slot unsourced on the assumption\nthat consumers tolerate ``None`` — which is true of the other retired slots\nand false here. Now it only fires while the 4h window has no venue-tagged\nevents, i.e. the first minutes after a deploy.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/open-interest":{"get":{"operationId":"market-intelligence-open-interest","summary":"Open Interest","description":"Cross-exchange open interest.\n\nReturns multi-symbol data (top ~25 perps) when available, falling back to\nBTC-only from the fast-refresh cache.\n\n**Filter semantics:** ``exchange=`` is a **coin-set filter**, not an\nexchange-data filter. With ``exchange=hyperliquid`` you get the coins\nlisted on Hyperliquid, but each entry's ``exchange_list`` still aggregates\nopen interest across all CEXes. For Hyperliquid's own per-asset OI use\n``/daily/hyperliquid`` — note that ``open_interest`` there is in base-coin\nunits, with ``open_interest_usd`` as a derived USD notional.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter to a single coin (e.g. BTC)"},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"hyperliquid"},"description":"Filter to coins on exchange: hyperliquid, binance_spot, asterdex, or all"},{"name":"type","in":"query","required":false,"schema":{"type":"string","default":"perps"},"description":"Instrument type — currently a no-op reserved for future filtering; only perps data is returned"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500},"description":"Max coins to return (default 250)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/options":{"get":{"operationId":"market-intelligence-options","summary":"Options Data","description":"BTC options data (OI, volume, max pain).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/squeeze-alerts":{"get":{"operationId":"market-intelligence-squeeze-alerts","summary":"Squeeze Alerts","description":"Coins whose forced-liquidation flow is one-sided and abnormal *right now*.\n\nA cascade tripwire, not a news feed. Scored catalysts on\n``/news/market-moving`` are 15-45 minutes behind a breaking story — RSS is\npolled every 5 minutes and desks publish well after the fact — which is no\nuse to a leveraged position. This reads the liquidation websocket directly:\non 2026-08-19 the BTC tape printed **$322.8M of short liquidations in one\n5-minute bucket at a 334x short/long ratio, 23 minutes before** the first\nrelated headline qualified for the tape.\n\n**`direction` names the side being LIQUIDATED, not the price.** A short\nliquidation is the exchange closing a short at market — forced buying — so\n`short_squeeze` is upward pressure and `long_flush` is downward, and the\nlabel is correct before price confirms it.\n\n**`oi_state` is what separates the two cases that matter.** Open interest\nfalling into a short squeeze means shorts are being closed out (the move is\nconsuming its own fuel); OI rising means fresh positioning is being added\ninto it. It reads `null` until the OI history has two samples, and `unclear`\ninside a ±0.5% noise band rather than being forced into a story.\n\n**Severity is built from ratios**, not dollars: `spike_ratio` (this window\nagainst the coin's own trailing-24h mean) and `asymmetry` (the dominant\nside's share) carry 80% of the weight. Absolute notionals are the figure\nmost distorted by the coverage gap below, so they are weighted least.\n\n**Coverage:** the same venue subset as ``/market-intelligence/liquidations``\n(OKX + Bybit + Hyperliquid where armed; Hyperliquid is exact per-fill).\nBinance geo-blocks its liquidation stream from our infrastructure, so\nnotionals run below a true all-exchange total.\n\n**Check `baseline_span_h`, not `window_uptime_h`.** `spike_ratio` compares a\nwindow against a trailing-24h mean, and `baseline_span_h` is how many hours\nof history are actually behind that mean — it is what triggering is gated on.\n`window_uptime_h` is process uptime and resets on every deploy, while the\nfeed restores up to 24h of events from its snapshot on boot, so the two\nroutinely disagree by a full day.\n\n**`triggered` requires every gate**: `spike_ratio` ≥ 2, `asymmetry` ≥ 0.70,\n`severity` ≥ 0.35, window notional ≥ $100k and ≥ 1h of baseline history.\n`suppressed_by` names whichever blocked it. The two absolute floors exist\nbecause notional is only 20% of the severity weight — without them a\nperfectly one-sided window scores 0.80 on any size at all, which in\nproduction raised alerts on $760 of liquidations. They gate the alert, not\nthe scoring, so `include_quiet=true` still returns the row with the reason.\n\nThe free tier is scoped to BTC; full-universe coverage is Pro and Pro Plus.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter to a single coin (e.g. BTC)"},{"name":"window_s","in":"query","required":false,"schema":{"type":"integer","default":300,"minimum":60,"maximum":3600},"description":"Trailing window in seconds (default 300 = 5 min)"},{"name":"min_severity","in":"query","required":false,"schema":{"type":"number","default":0.35,"minimum":0,"maximum":1},"description":"Minimum severity to report"},{"name":"include_quiet","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Return every coin with a usable window, not just the ones firing. For calibration"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500},"description":"Max coins to scan"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/stablecoin-history":{"get":{"operationId":"market-intelligence-stablecoin-history","summary":"Stablecoin History","description":"Stablecoin market cap history timeseries.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/status":{"get":{"operationId":"market-intelligence-status","summary":"Market Intelligence Status","description":"Market intelligence collector status and rate usage.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/market-intelligence/taker-buy-sell":{"get":{"operationId":"market-intelligence-taker-buy-sell","summary":"Taker Buy Sell","description":"Taker buy/sell volume ratio by exchange, per coin (4h window).\n\n``buy_ratio`` is a PERCENT (0..100) of taker volume that was buying, per\nexchange leg. Two legs exist: ``Binance`` (BTC only, from its public\ntaker-volume endpoint) and, since 2026-09-09, ``Hyperliquid`` — the\ncollector's own trade tape (see ``/hyperliquid/trade-flow``), notional\nweighted over the trailing 4h, for every HL perp with fills. A coin only\nHL carries gets its own top-level entry whose aggregate is the HL figure.\nNo Hyperliquid leg at all means the tape is warming or the pull is not\nconfigured — never that HL had no trades.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by symbol (BTC, ETH, SOL, DOGE, XRP, ADA). Omit for all."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/meme/regime":{"get":{"operationId":"meme-regime","summary":"Get Meme Regime","description":"Per-asset Meme / Speculative regime across the curated meme universe.\n\nEach asset is classified into one of ``euphoric``, ``distribution``,\n``ignition``, ``bleeding``, or ``dormant`` from trailing returns, a\nvolume-spike ratio, 30d realized-vol percentile, SMA-20 extension, and live\nHyperliquid funding. Aimed at systematic perps trading: the label implies a\nholding duration, leverage level, and funding-cost tolerance.\n\n**Partly backfillable** — price/volume/vol features replay from daily klines;\nthe ``meme.funding_rate`` / ``meme.oi_usd`` fields are live-only and land\nnull on historically backfilled days (so ``distribution`` only appears live).\n\nExample screens: `?regime=ignition&sort=vol_spike` (early movers),\n`?regime=euphoric&sort=ret_7d` (hottest blow-offs), `?regime=bleeding`\n(unwinds to avoid).","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":["string","null"],"enum":["binance_spot","hyperliquid_perp"]}},{"name":"regime","in":"query","required":false,"schema":{"type":["string","null"],"enum":["euphoric","distribution","ignition","bleeding","dormant"]},"description":"Filter by meme regime"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["symbol","ret_7d","ret_30d","vol_spike","vol_pctile_30","sma20_extension_pct","funding_rate","oi_usd"],"default":"ret_7d"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_meme-regime","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/meme/regime/score":{"get":{"operationId":"meme-regime-score","summary":"Get Meme Regime Score","description":"Market-wide meme-hype composite (0-100) + sentiment + regime mix.\n\nHigher score = frothier / more speculative heat. Sentiment bands: euphoric\n(≥70), heating (55-69), neutral (45-54), cooling (30-44), dormant (<30).\nCarries the cross-meme co-movement correlation and a ``meme_season`` flag\n(broad heating + correlated pack move). Trimmed companion to ``/meme/regime``\n— no per-coin list.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/meme/regime/{symbol}":{"get":{"operationId":"meme-regime-symbol","summary":"Get Meme Regime Symbol","description":"Per-asset Meme regime detail with 60d daily history (Pro+).\n\n`history` contains compact daily bars (close, 30d Garman-Klass vol) suitable\nfor sparkline rendering.\n\nHyperliquid thousand-unit tickers (``kBONK``, ``kPEPE``, ``kSHIB``) are\naccepted as aliases of the plain symbol.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/news/coin/{symbol}":{"get":{"operationId":"news-coin-symbol","summary":"Get Coin News","description":"Qualified events and news feature values for one Hyperliquid perp.\n\nFree tier is limited to BTC and ETH; Pro and above may query any perp. Pro\nPlus additionally receives the score components and the measured\n`market_response` per window.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"hours","in":"query","required":false,"schema":{"type":"number","default":72,"minimum":1,"maximum":336}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/news/market-moving":{"get":{"operationId":"news-market-moving","summary":"Get Market Moving News","description":"The filtered catalyst tape — only events that cleared the impact threshold.\n\nFree: BTC / ETH / MARKET, last 24h, top 10. Pro: every HL perp, 7 days.\nPro Plus: full retained history plus the `impact_score` components\n(`severity`, `confidence`, `match_mode`, `sources`) and the measured\n`market_response` at +15m / +1h / +4h.\n\n`bias` is signed: negative is risk-off. `corroboration` counts how many\nindependent sources carried the same `(symbol, category)` inside the window —\nthe strongest single indicator that a story is real rather than syndicated.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one Hyperliquid perp, or MARKET"},{"name":"hours","in":"query","required":false,"schema":{"type":"number","default":24,"minimum":1,"maximum":336},"description":"Lookback window in hours"},{"name":"min_impact","in":"query","required":false,"schema":{"type":"number","default":0.45,"minimum":0,"maximum":1},"description":"Minimum impact_score. Cannot go below the pipeline threshold."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"minimum":1,"maximum":500}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/news/pulse":{"get":{"operationId":"news-pulse","summary":"Get News Pulse","description":"Per-coin news feature series — `news_pressure` and signed `news_tilt`.\n\nThe endpoint built for trading strategies: one row per Hyperliquid perp,\ncross-sectionally ranked, joinable straight onto price.\n\n- `news_pressure` (0..1) — recency-weighted sum of impact scores, saturating.\n- `news_tilt` (-1..+1) — impact-weighted direction. Negative is risk-off.\n- `event_count` / `top_impact` — how much of the pressure is one big story\n  versus a steady drip.\n\n- `headlines` — raw coverage: how many stories in the current feed window\n  name this coin at high confidence, whether or not any of them qualified as\n  a catalyst. This is attention, not an event. The catalyst funnel discards\n  ~95% of what it reads, so most coins sit at `news_pressure: 0` while\n  `headlines` keeps counting; a coin high on headlines with no pressure is\n  being talked about without anything happening.\n\n**Every active perp gets a row.** A coin with no news is `news_pressure: 0`,\nnot a missing row — a cross-sectional ranking needs the zeros, and a silently\nabsent symbol is indistinguishable from a pipeline failure. Rows are ranked\nby pressure first, then by `headlines`. Free tier gets the top 10 rows; Pro\nand above get the full universe.","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"number","default":24,"minimum":1,"maximum":168},"description":"Lookback window in hours"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/news/sources":{"get":{"operationId":"news-sources","summary":"Get News Sources","description":"Per-feed health, the funnel counts, and the published coverage gap.\n\n`sources[].not_modified` distinguishes \"answered 304, nothing new\" from\n\"dead\" — both look like zero fresh items otherwise, which is how a silently\nbroken feed hides.\n\n`funnel_24h` is hourly counts only (`ingested`, `dropped_noise`,\n`dropped_no_catalyst`, `dropped_no_entity`, `dropped_below_threshold`,\n`qualified`) with no titles or URLs. It exists so the filter can be seen over-tightening and swallowing\nreal catalysts, without keeping a news archive to check against.\n\n`unresolvable` lists active perps whose ticker is a common English word and\nwhich have no safe project name — they can only ever be matched by a cashtag.\nPublished as a field rather than left as a silent blind spot.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/categories":{"get":{"operationId":"nfts-categories","summary":"List Nft Categories","description":"Category taxonomy — fixed buckets (pfp/art/gaming/collectible/music/domain/metaverse/ordinal/other).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/chains":{"get":{"operationId":"nfts-chains","summary":"List Nft Chains","description":"Chain breakdown — each chain plus the count of seeded collections on it.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/collections":{"get":{"operationId":"nfts-collections","summary":"List Nft Collections","description":"Seeded NFT collection taxonomy — slug, name, chain, category, tier, launch month.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/collections/{slug}":{"get":{"operationId":"nfts-collections-slug","summary":"Get Nft Collection","description":"Per-collection daily volume time-series.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"minimum":7,"maximum":3650}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/correlations":{"get":{"operationId":"nfts-correlations","summary":"Get Nft Correlations","description":"Pearson correlation of daily NFT total volume vs daily log-returns of vs= assets.\n\nPro Plus tier. Window is a trailing window ending today. Returns one\ncoefficient per asset plus the number of overlapping days actually used.","parameters":[{"name":"vs","in":"query","required":false,"schema":{"type":"string","default":"btc,eth,sol"},"description":"Comma-separated asset symbols"},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":90,"minimum":14,"maximum":730}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/overview":{"get":{"operationId":"nfts-overview","summary":"Get Nft Overview","description":"Headline NFT trade volume — total + per-chain / per-tier / per-category series, top collections, marketplaces.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"minimum":7,"maximum":3650},"description":"Days of history to return"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_nfts-overview","x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/nfts/volume":{"get":{"operationId":"nfts-volume","summary":"Get Nft Volume","description":"Daily NFT volume buckets — choose `by=chain|tier|category|collection`.\n\nOne point per bucket per day: `volume_usd` is the sum over the bucket's\ncollections. Pro tier. The collection breakdown can return many series;\nconsumers should expect a wide list when calling with `by=collection`.","parameters":[{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["chain","tier","category","collection"],"default":"chain"}},{"name":"from","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO date (YYYY-MM-DD)"},{"name":"to","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO date (YYYY-MM-DD)"},{"name":"granularity","in":"query","required":false,"schema":{"type":"string","enum":["daily"],"default":"daily"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":3600,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/dormancy/btc":{"get":{"operationId":"on-chain-dormancy-btc","summary":"Get Btc Dormancy","description":"BTC supply-shock / dormancy signals via CoinMetrics Community API.\n\nReturns:\n- **MVRV** (market cap / realized cap) — the canonical supply-shock indicator\n  with zone classification (capitulation → accumulation → neutral →\n  elevated → euphoria)\n- **Active addresses** — network health + adoption proxy\n- **Issuance USD/24h** — direct miner pressure proxy\n- **Exchange net flow USD/24h** — independent cross-check of QuickNode\n  derived ERC-20 flows","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/exchange-flows/spike-alerts":{"get":{"operationId":"on-chain-exchange-flows-spike-alerts","summary":"Get Spike Alerts","description":"Recent large transfers (≥ `min_amount` USD) to/from tracked CEX wallets.\n\nUseful for catching whale-sized deposits in real time. Each alert carries\n`amount` in TOKEN-NATIVE units (with `unit`) plus `amount_usd` converted\nat ingestion from the live price — the `min_amount` threshold applies to\n`amount_usd`, so meme-token unit counts can't masquerade as dollar spikes.\nRows whose USD value can't be verified (no live price) are excluded.\n\nThis is a LIVE feed of the last 500 large transfers (roughly the last 10h).\nThe full history — every row, from 2026-10-08 — is the `exchange_flow_spikes`\ntype on `/api/v1/backtesting/snapshots`; each snapshot is the batch of rows\nfirst seen in that 5-minute tick, so concatenating a range lists each\ntransfer once.","parameters":[{"name":"min_amount","in":"query","required":false,"schema":{"type":"number","default":1000000,"minimum":0},"description":"Minimum transfer size in USD (applies to amount_usd; default $1M)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"minimum":1,"maximum":500}},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Only this token (e.g. ETH, USDT)"},{"name":"exchange","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Only this exchange (e.g. binance)"},{"name":"chain","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Only this chain (eth, btc, sol, tron, bsc, base, arb, op)"},{"name":"direction","in":"query","required":false,"schema":{"type":["string","null"]},"description":"inflow | outflow"},{"name":"source","in":"query","required":false,"schema":{"type":["string","null"]},"description":"transfer (decoded Transfer event) | balance_delta (inferred from a wallet balance change)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/exchange-flows/{symbol}":{"get":{"operationId":"on-chain-exchange-flows-symbol","summary":"Get Exchange Flows","description":"Net Transfer flow to/from CEX wallets for `symbol`, across windows.\n\nSymbol must be a token tracked by the exchange-flows collector across the\nsupported chains (ETH, BSC, Base, Arbitrum, Optimism, Tron, Solana), or native\nBTC (balance deltas on Binance, Bybit and OKX wallets from their own\nproof-of-reserves lists). The same symbol\ncan be tracked on multiple chains; see `by_chain`.\n\n`exchanges_covered` lists the exchanges with at least one watched wallet on a\nchain carrying the symbol. Any other exchange is `null` in `per_exchange_24h`\n(unknown, not zero: Coinbase and Kraken publish no BTC addresses), and an\n`exchange` filter naming one makes every window `null`.\n\nThe 1h/6h/24h/7d windows show inflow, outflow, and net. Positive net = more\ndeposits to CEXs (often bearish — incoming sell-side liquidity). Negative\nnet = withdrawals from CEXs (often bullish).\n\n`by_chain` breaks the same windows down per chain (only chains with data for\nthis symbol are present) and `chains_covered` lists them — matching the\ndaily-archive shape so live and backfilled snapshots line up.\n\n`spike_zscore_1h` flags the latest 1h vs the prior hour's baseline; values\n> 2 indicate a statistically unusual spike.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"exchange","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one exchange (e.g. 'binance')"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/exchange-flows/{symbol}/history":{"get":{"operationId":"on-chain-exchange-flows-symbol-history","summary":"Get Exchange Flow History","description":"Archived CEX inflow/outflow for `symbol`, back to 2026-05-28.\n\nThe rolling windows on `/exchange-flows/{symbol}` have been sampled every\n~30 minutes since 2026-05-28. Each point is one sample: the trailing 1h and\n24h inflow/outflow/net summed across chains (and exchanges, unless\n`exchange` is given), plus the 1h window per exchange. `interval=1h` keeps\nthe last sample in each UTC hour; `raw` returns every sample (their 1h\nwindows overlap). At most 93 days per request.\n\nAmounts are in the token's own units (USD only for USDT/USDC/DAI) — the same\nunits as the live endpoint.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO 8601, unix seconds or unix ms. Default: 7 days before `end`"},{"name":"end","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO 8601, unix seconds or unix ms (EXCLUSIVE). Default: now"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","default":"1h"},"description":"1h (last sample per UTC hour) | raw (every sample)"},{"name":"exchange","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Only this exchange (e.g. binance)"},{"name":"chain","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Only this chain (e.g. eth, tron)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/miners/hash-ribbon":{"get":{"operationId":"on-chain-miners-hash-ribbon","summary":"Get Hash Ribbon","description":"Hash Ribbon indicator: 30dMA vs 60dMA of BTC hashrate.\n\nStates:\n- **capitulation**: 30dMA < 60dMA — miners shutting off rigs\n- **recovery**: 30dMA just crossed back above 60dMA (within 14d) —\n  historically the strongest BTC bottom signal\n- **normal**: standard configuration with no recent crossover\n\nSource: mempool.space hashrate index (3y daily history).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/miners/reserves":{"get":{"operationId":"on-chain-miners-reserves","summary":"Get Miner Reserves","description":"BTC miner pool reserves + 24h/7d/30d net flow per pool.\n\nTracks reward addresses for Foundry USA, AntPool, F2Pool, ViaBTC, and\nBinance Pool. Most pools sweep balances immediately (low standing balance\nis normal); the meaningful signal is the cumulative funded/spent delta\nover rolling windows.\n\nNet flow interpretation:\n- **Negative net** (heavy spending): miners selling — bearish pressure\n- **Positive net** (accumulation): miners holding — historically late-bear\n- Windows show as `available: false` until enough snapshots have accrued","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/score":{"get":{"operationId":"on-chain-score","summary":"Get Onchain Health Score","description":"Composite 0-100 on-chain health score with per-component breakdown.\n\nSynthesizes Hash Ribbon, MVRV, stablecoin dry-powder, whale accumulation,\nexchange flow direction, and miner net flow into a single directional read.\n\nSentiment bands:\n- **bullish** (≥70): broad on-chain confluence of accumulation signals\n- **leaning_bullish** (55-69): tilted positive but mixed\n- **neutral** (45-54)\n- **leaning_bearish** (30-44)\n- **bearish** (<30): broad distribution + miner stress + flow into CEXs\n\nKept separate from `/market-health` for v1. Components with no data yet are\nEXCLUDED and the remaining weights renormalised, so a partially-warm deploy\nreports the confluence it can actually see instead of being diluted toward a\nconfident-looking 50. When no component has data, `sentiment` is `unknown`.\n\n`whale_accumulation` is currently always unavailable (whale tracking is\ndisabled, see `/on-chain/whales`): it reports `reason: \"no_data\"`, its\n`score` of 50 is a placeholder and it carries weight 0, so it does not move\nthe composite. `exchange_flow` scores the USDT/USDC/DAI 24h net only; before\n2026-10-08 it also summed other tokens in their native units, so its\n`reason` magnitudes from then are not dollars.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_on-chain-score","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/stablecoin-reserves":{"get":{"operationId":"on-chain-stablecoin-reserves","summary":"Get Stablecoin Reserves","description":"CEX stablecoin reserves across ETH/Tron/BSC.\n\nAggregate USDT/USDC/etc. balances held in known hot/cold wallets of the\ntop centralized exchanges. Rising = dry powder accumulating (bullish);\nfalling = capital deployed (often follows rallies).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/on-chain/stablecoin-reserves/dry-powder":{"get":{"operationId":"on-chain-stablecoin-reserves-dry-powder","summary":"Get Dry Powder Score","description":"Dry-powder signal: z-score of current reserves vs 30d baseline.\n\nSignal interpretation:\n- **accumulating** (z > +1): institutional capital staging on exchanges\n- **depleting** (z < -1): capital deployed or off-ramped\n- **neutral**: within normal range\n\nReturns 'unknown' until ≥8 historical snapshots have been collected.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/policy/headlines":{"get":{"operationId":"policy-headlines","summary":"Get Policy Headlines","description":"Live classified US-regulatory headlines (Federal Register / SEC / CFTC).\n\nThe breaking-news sidecar: recent policy headlines classified pro-crypto vs\nrestrictive, with an aggregate ``regulatory_pressure`` magnitude and a signed\n``headline_tilt``. Live-only — not part of any backfillable composite.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/policy/regime":{"get":{"operationId":"policy-regime","summary":"Get Policy Regime","description":"Policy Risk score + signed tilt + upcoming rate catalysts.\n\nThe main Geopolitical / Policy Shock payload: the market-wide Policy Risk\ncomposite, the signed ``policy_tilt`` (pro-crypto vs restrictive), and the\nscheduled rate decisions within ``window_days``. Use `/policy/regime/score`\nfor the full sub-score breakdown and `/policy/headlines` for the live\nUS-regulatory headline feed.\n\n**Partly backfillable** — the gdelt / cross-asset / rate subscores replay from\nGDELT's dated series, the archived macro block, and the rate schedule; the\n``policy_headlines`` sidecar is live-only (null on backfill).","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":45,"minimum":1,"maximum":45},"description":"Forward horizon for rate catalysts"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_policy-regime","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/policy/regime/score":{"get":{"operationId":"policy-regime-score","summary":"Get Policy Regime Score","description":"Market-wide Policy Risk composite (0-100) + sub-scores + tilt + sidecars.\n\nBaseline 0 (policy shock is absence-by-default). Bands: dormant (<10), quiet\n(10-29), elevated (30-54), heavy (55-79), critical (≥80). Composite =\n0.40·gdelt + 0.35·cross_asset + 0.25·rate, re-normalized over available feeds.\n``policy_tilt`` (signed) comes from GDELT coverage tone. The\n``policy_headlines`` (Federal Register / SEC / CFTC) sidecar is live-only\nand excluded from the composite.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/coins":{"get":{"operationId":"quant-coins","summary":"Get Quant Coins","description":"All-coins regime summary — the heatmap feed (Pro).\n\nOne trimmed entry per active Hyperliquid perp: regime + confidence,\np_direction_up (sum of the two bullish buckets), most likely transition,\nand current OI. Coins with under 60 days of history carry\n`insufficient_history: true` with reduced confidence; brand-new listings\nshow `status: warming_up` until 30 days of bars exist. Full probability\nmatrices live at /quant/coins/{symbol}.","parameters":[{"name":"horizon","in":"query","required":false,"schema":{"type":"string","enum":["4h","24h"],"default":"24h"}},{"name":"regime","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter by regime label, e.g. squeeze"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["oi","confidence","symbol","p_up"],"default":"oi"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":300}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/coins/risk":{"get":{"operationId":"quant-coins-risk","summary":"Get Quant Coins Risk","description":"Bulk per-coin risk model for the whole universe (Pro).\n\nOne call that batches /quant/coins/{symbol} and /volatility/regime/{symbol}\nacross the full quant universe — majors (BTC/ETH/SOL) included — so consumers\ndon't fan out ~2 calls per perp. Each item carries the coin's regime +\nconfidence, the volatility / liquidation_risk / funding / open_interest\nprobability buckets (verbatim from /quant/coins/{symbol}), and the\nvol-sizing fields (vol_target_multiplier, vol_pctile_30, rv_24h) from the\nvolatility regime. Coins with insufficient history or brand-new listings\nstill appear, flagged in `meta`, so callers can mark them ineligible rather\nthan guess. Values match the per-symbol endpoints for the same\nsymbol/horizon — this is a batched view, not new modelling.","parameters":[{"name":"horizon","in":"query","required":false,"schema":{"type":"string","enum":["4h","24h"],"default":"24h"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/coins/{symbol}":{"get":{"operationId":"quant-coins-symbol","summary":"Get Quant Coin","description":"Full per-coin probability object with explain block (Pro).\n\nEverything /quant/market provides, conditioned on the whole-market regime\n(the coin's transition matrix is the market-posterior-weighted mixture —\ninspect `explain.transition_mixture_weights`). `recent_regimes` carries the\nlast ~48 inference rows for sparkline rendering. Coins with under 60 days\nof history return the object flagged `insufficient_history` rather than 404.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"horizon","in":"query","required":false,"schema":{"type":"string","enum":["4h","24h"],"default":"24h"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/gex":{"get":{"operationId":"quant-gex","summary":"Get Quant Gex","description":"Dealer positioning / Gamma Exposure — perp analog (Pro).\n\nBuilt from **market-maker** accounts (the perp \"dealers\"): per coin we report\n`mm_net_delta` (dealer inventory long/short), `gamma_profile` (the MM\nliquidation-density by price = where MM forced unwinds cluster, the\nshort-gamma acceleration zones) and `gamma_flip` (the price where MM\nlong-liq-below crosses short-liq-above — the inflection).\n\nNote: perps have no literal options gamma; this is a behavioral analog from\nmarket-maker inventory + liquidation-driven forced flow, not options dealer\ngamma. The MM set is a heuristic classification (turnover + breadth + known\ndesks), so treat it as a positioning signal, not an exact dealer book.\n\nEach coin also carries the composite **`regime`** flag — `amplify`\n(short-gamma analog: crowded book + dense clusters near mark → forced flow\nfollows through) vs `dampen` (balanced, mean-reverting) vs `transitional`\n(on the flip line) — joining the cluster profile with funding skew, OI\nrate-of-change, the realized-liquidation cascade signal and the\n`dist_to_flip_pct`. Every sub-signal is returned in `regime.inputs` so the\ncall is reproducible. `meta.maintenance_margin_tiers` gives the per-pair MM /\nmax-leverage ladder for context.\n\n**`distribution_context`** (per coin) puts today's readings in\ndistributional context: trailing-30-day percentile ranks of the near-mark\ncluster density, |distance to flip|, normalized MM skew\n(`mm_net_delta/mm_gross`), regime score and funding rate — e.g. \"BTC\nnear-mark fuel density is the 92nd percentile of 30d\". The history is\nforward-only (hourly samples, started 2026-07); `history_days` /\n`sample_count` report how much exists and every `*_pctile` is null while\n`status` is `warming` (< 2 days). `meta.distribution_legend` documents each\nfield. The same block is archived in the `gamma_exposure` snapshot type.\n\n**2026-09-09 additions.** `regime.coverage` (`full` | `funding_only` |\n`none`) + `regime.insufficient_mm_coverage` say how much evidence the state\nrests on (118/231 coins carry < 10 MM accounts — a `funding_only` state is a\nfunding read, not a positioning read); per-coin `coverage {bands,\nmm_n_accounts, has_flip, history_days}`. `regime.rules_version` = `\"2\"`:\nthe skew leg now scores from `distribution_context.mm_skew_pctile`\n(≥90/≤10 one-sided, 25–75 balanced) with the raw `market_skew` rule as the\nfallback while a coin's history is `warming` (`regime.inputs.skew_source`\nsays which). `regime.since` = when the current state was first committed.\n`regime.inputs.funding_pinned` flags a funding series glued to HL's 1.25e-5\ninterest baseline (then `funding_rate_pctile` is null — the rank would be\nmeaningless). `distribution_context.mm_skew_z` / `sample_ts`. `levels` =\nthe 3 nearest liquidation clusters above/below mark across EVERY account\nclass. `positions_as_of` (unix ms) top-level and per coin.\n`meta.regime_rules` publishes every threshold and weight;\n`meta.classifier_version` the tagging rule-set. `symbol` accepts a comma\nlist (`BTC,ETH`), alias `coin`, matched case-insensitively against Hyperliquid's\nnames (`kPEPE`). An unrecognised query parameter is a 400.\n\n`meta.maintenance_margin_tiers` is Hyperliquid's live margin table per coin.\n\nRequires a Pro or Pro Plus key; full-universe (all perps) on both.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one coin (BTC) or a comma list (BTC,ETH,kPEPE)"},{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `symbol` (the Hyperliquid routes call it `coin`)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/gex/history":{"get":{"operationId":"quant-gex-history","summary":"Get Quant Gex History","description":"Hourly history of the `/quant/gex` scalars for one coin (Pro).\n\nServes the same trailing-30-day ring that powers `distribution_context`:\none sample per ~hour of `near_density` (near-mark cluster density, %),\n`abs_dist_to_flip` / `dist_to_flip_pct` (% of mark), `mm_skew`\n(`mm_net_delta / mm_gross`), `mm_gross` (USD), `mm_n_accounts`,\n`regime_score`, `funding_rate` (hourly fraction) and `oi_change_pct`.\nA metric is `null` for a sample where it was unavailable (e.g. no MM\nbook that hour).\n\nHonest scope: this is an in-memory ring on the collector — at most ~720\nsamples (30 days), forward-only, and the timestamped tail starts\n2026-09-09 (earlier samples still feed the percentiles but carry no\ntimestamp). For anything older, or for the full per-coin entry with\nbins, use the archived `gamma_exposure` snapshot type via\n`/backtesting/snapshots` (5-min, since 2026-07-06). `meta.first_sample_ts`\n/ `last_sample_ts` bound what exists.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"One coin, e.g. BTC or kPEPE (case-insensitive)"},{"name":"from","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO 8601 or unix ms (inclusive)"},{"name":"to","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO 8601 or unix ms (inclusive)"},{"name":"grain","in":"query","required":false,"schema":{"type":"string","enum":["1h"],"default":"1h"},"description":"Sample grain — only 1h is served"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/history":{"get":{"operationId":"quant-history","summary":"Get Quant History","description":"Past probability rows — the verification surface (Pro Plus).\n\nEvery row records what the model said at that moment, with `backfilled`\ndistinguishing live point-in-time inferences (15-minute cadence) from\nretro-computed history (1-hour cadence, written by the backfill script)\nand `model_version` pinning which artifact produced it. Use this to score\nour calls against what actually happened — black-box probabilities are\nworthless; auditable ones aren't.","parameters":[{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"market"},"description":"'market' or a coin symbol, e.g. BTC"},{"name":"start","in":"query","required":true,"schema":{"type":"string"},"description":"ISO 8601 or unix ms"},{"name":"end","in":"query","required":false,"schema":{"type":["string","null"]}},{"name":"horizon","in":"query","required":false,"schema":{"type":["string","null"],"enum":["4h","24h"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"minimum":1,"maximum":2000}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","csv"],"default":"json"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/market":{"get":{"operationId":"quant-market","summary":"Get Quant Market","description":"Whole-market regime + probability object (Pro).\n\nHMM-filtered posterior over the 6 market regimes (strong_trend_bull/bear,\nrange_low_vol, choppy_high_vol, vol_spike, squeeze) with calibrated\nprobability buckets for direction, volatility, liquidation risk, funding,\nbreadth, open interest and regime transitions at the requested horizon.\nThe market `liquidation_risk` bucket is depth-aware — driven by live\norder-book fragility (thin book + wide spread = higher forced-liquidation\nodds), not just realized volatility; the source is tagged in\n`explain.heads_provenance` (e.g. `depth_fragility:thin`).\nIncludes seeded Monte Carlo tomorrow-distribution stats on the 24h horizon\nand a full `explain` block. Refreshed every 15 minutes from hourly bars.\nMarket-wide and per-coin regime data (/quant/coins) are both Pro.","parameters":[{"name":"horizon","in":"query","required":false,"schema":{"type":"string","enum":["4h","24h"],"default":"24h"}}],"x-price":{"price":"$0.015","price_micro":15000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/model":{"get":{"operationId":"quant-model","summary":"Get Quant Model Card","description":"Model card + runtime status — full transparency (any valid key).\n\nWhat the model is (family, states, features), when it was trained, how it\nvalidated (walk-forward fold metrics from the artifact), its sha256, and\nlive runtime health (universe coverage, drift monitor vs training\nbaseline). `loaded: false` means data endpoints are 503 (no model deployed\nyet, or stub plumbing only).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/positioning":{"get":{"operationId":"quant-positioning","summary":"Get Quant Positioning","description":"Per-coin trader positioning by account type (Pro).\n\nAggregates the full HL account universe (every account >= $100k holding a\nposition; active accounts re-polled every liq-map cycle — 15 min on the\npublic path, 5 min once batch RPC is armed) into per-coin\nlong/short/net/gross notional split by\n**trader type** — `market_maker`, `whale`, `other`, and `all` — using a\nbehavioral classifier (turnover, market breadth, leverage, PnL consistency).\nThe `market_maker` bucket is the basis for the dealer-gamma view at\n`/quant/gex`. Each bucket also reports the distinct account count.\n\n`by_type` is a partition (each account in exactly one class). `by_tag`\n(`smart_money`, `high_leverage`; same shape) are orthogonal overlays — an\naccount can carry both tags or neither, in any class — so they are NOT a\nbreakdown of any `by_type` bucket. `positions_as_of` (unix ms) is the\nliqmap poll cycle the positions come from (top level) and, per coin, the\nnewest poll time among that coin's contributing accounts.\n`meta.classifier_version` is the tagging rule-set id (CalVer); a bump\nthere, not the market, may move accounts between classes.\n\n`symbol` (alias `coin`) matches Hyperliquid names case-insensitively (`kPEPE`,\n`kpepe`). An unrecognised query parameter is a 400.","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one coin (BTC) or a comma list (BTC,ETH,kPEPE)"},{"name":"coin","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Alias for `symbol` (the Hyperliquid routes call it `coin`)."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/positioning/ladder":{"get":{"operationId":"quant-positioning-ladder","summary":"Get Quant Positioning Ladder","description":"Full-universe liquidation ladder for one coin, split by account class (Pro Plus).\n\nEvery account >= $100k in the HL universe, binned on a 0.5%-of-mark grid\n(clamped ±50%):\n\n* `bins` / `flip` — all classes (the full book);\n* `bins_directional` / `flip_directional` — market-maker + vault liqs\n  excluded (the cleaner walls; MM liquidations are hedged noise);\n* `bins_by_class` — `{market_maker, whale, other}` on the same grid; an\n  account's class is its primary tag, so the three sum to `bins`;\n* `levels` — the 3 nearest non-empty all-class clusters above and below\n  mark: `{price, dist_pct (signed vs mark), total_usd, side (dominant\n  liquidation side — long = downside fuel), n_accounts}`.\n\nSame builder as the archived `liquidation_map` snapshot type (which carries\n`bins_by_class` from 2026-09-09), so live and history agree. `positions_as_of`\nis the liqmap poll cycle the ladder is built from.","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"},"description":"One coin, e.g. BTC or kPEPE (case-insensitive)"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/regimes":{"get":{"operationId":"quant-regimes","summary":"Get Quant Regimes","description":"The 6-regime taxonomy reference (any valid key).\n\nStable vocabulary for all quant endpoints: id, label, display name,\ndescription and the suggested algo-basket stance per regime. Raw HMM\nstates map many-to-one onto these labels; the labels are the API contract.\n`catalog_version` is the versioned guarantee behind that: unchanged means\nevery `id` still maps to the same `label` you can see here — safe to pin\n`regime.id` directly rather than re-resolving `label` each call.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/regimes/history":{"get":{"operationId":"quant-regimes-history","summary":"Get Quant Regime History","description":"Bulk download: the full market 6-regime history Parquet (Pro Plus).\n\nOne hourly row per bar, **2020 → yesterday**, market scope, with the full\ndistribution over all 6 regimes at three horizons — **now, 4h, 24h**\n(`p_now_*`, `p_4h_*`, `p_24h_*`, keyed by regime id; see `regime_map`). The\ndeep history is the same model that serves live, run over the Binance public\narchive it trained on — no hindsight relabeling — stitched to the live tail\n(the `source` column marks the seam). Returns a pre-signed URL so you pull\nmulti-year history in one request instead of paginating `/quant/history`.\n\nRebuilt daily. `p_4h`/`p_24h` are exact `αᵀAⁿ` transition-matrix\nprojections of the current posterior, not realized outcomes.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/timeline":{"get":{"operationId":"quant-timeline","summary":"Get Quant Timeline","description":"Daily market regime timeline, 2020-01-12 to yesterday (Pro Plus).\n\nUp to the model's training cutoff (`training_end`) every day comes from the\nfile written at training time, the final model run over its full training\nhistory: the COVID crash, the 2021 bull, the LUNA/FTX bear and the 2024 ETF\nbull, labeled by the model that serves live. After the cutoff, each complete\nUTC day is the same model's forward filter over the live market features\n(`source: \"live\"`), reduced the same way (the regime most hours held, with\ntheir mean confidence). Neither part is relabeled with hindsight. Until\n2026-10-17 the timeline stopped at the training cutoff.","parameters":[{"name":"start","in":"query","required":false,"schema":{"type":["string","null"]},"description":"ISO date filter, e.g. 2022-01-01"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/whales":{"get":{"operationId":"quant-whales","summary":"Get Quant Whales","description":"Hyperliquid whale activity — the ≥$100k account universe (Pro).\n\nRolls every large Hyperliquid account (the same universe behind\n`/quant/positioning` and `/quant/gex`; active accounts re-polled every\nliq-map cycle — 15 min on the public path) up into a single read:\n\n* `summary` — accounts tracked, the behavioral-class split\n  (`market_maker` / `whale` / `other`), aggregate long vs short notional, the\n  long/short ratio and the whole-book `net_bias` (risk-on/risk-off).\n* `top_coins` — the 100 cryptos whales hold the most, by total notional (60\n  before 2026-10-14): per coin\n  the long/short/net/gross USD, distinct account counts, the dominant side and\n  `directional_net_usd` (net excluding market-maker liquidity = the conviction\n  read).\n\nScope: Hyperliquid **perpetuals** (the whale margin book). `meta.segment` is\n`perp` and `meta.spot_status` flags that spot-wallet balances are not yet\ncollected. The view is crypto-only (no tokenized equities).\n\nFull-universe (all coins) on Pro and Pro Plus. Historical whale positioning\nis on Pro Plus via `/quant/whales/history`.\n\nCadence: served by the HL collector (5-min batch liqmap cycle) since\n2026-09-09; `positions_as_of` (unix ms) is the poll cycle the positions\ncome from, so the refresh cadence is self-evident from the payload.\n`summary.by_tag_usd` (`smart_money`, `high_leverage`) are orthogonal\noverlays; `top_coins[].long_pct_pctile_30d` ranks the live long share vs\nthe coin's own trailing 30 days (null until 2 days of samples).","x-price":{"price":"$0.030","price_micro":30000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/quant/whales/history":{"get":{"operationId":"quant-whales-history","summary":"Get Quant Whales History","description":"Historic whale-activity movement — daily long/short notional (Pro Plus).\n\n`live_only=true` returns observed points only (`meta.first_live_date` is\nthe first observed UTC day in the store, reported either way).\n\nA daily time-series of aggregate whale positioning: per UTC day the total\n`long_usd` / `short_usd` / `net_usd` / `gross_usd` across the ≥$100k account\nbook, plus the day's top coins by net.\n\nFull-universe collection is recent, so the early part of the series is\n**modeled** (each point carries `source` = `seed` | `live` and `estimated`):\na seeded baseline anchored to the first live reading that is replaced by\nobserved snapshots as they accrue. `meta.seeded_count` / `live_count` report\nthe split so you can trust-but-verify.\n\nFull-universe aggregate history (not coin-scopable) — Pro Plus.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":180,"minimum":7,"maximum":540},"description":"Trailing window length in days"},{"name":"live_only","in":"query","required":false,"schema":{"type":"boolean","default":false},"description":"Drop the modeled (source=seed) points; meta.first_live_date says where observed history starts"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/regimes":{"get":{"operationId":"regimes","summary":"Get Regimes","description":"The 10-state long-horizon regime model + the current detected regime.\n\n``regimes`` is the stable taxonomy (id, machine ``regime`` id, display name,\ndescription, typical duration and directional bias). ``current`` is the live\nclassification with a ``rationale``, the inspectable ``signals`` that drove\nit, and — where applicable — an internal ``stage`` (Distribution) or\n``euphoria_score`` (Speculative Euphoria).\n\n**Committed vs live.** ``current.regime``/``id``/``name``/``rationale`` are the\nCOMMITTED regime: an anti-churn dwell gate holds it until a new candidate is\nthe raw classification for ``pending.needed`` consecutive refreshes. But\n``signals`` are always read fresh, so mid-turn they can stop supporting the\ncommitted regime — that is expected, not stale data. ``current.raw`` gives the\nlive ungated classification and ``raw.matches_committed`` tells you the two\ndisagree; ``current.pending`` shows how far the successor has confirmed.\n\n**Stability.** ``pending`` is null whenever the live read already agrees with\nthe committed regime — correct, but it means a consumer watching for a turn\nsees a field that blinks in and out. ``current.stability`` is always present\nand always numeric: ``raw_agreement`` decays as conditions drift,\n``confirmations_against``/``needed`` track a successor, and ``locked_for_s``\nis the HARD number — how long the dwell floor mechanically guarantees the\ncommitted regime survives. ``current.thresholds`` gives the distance from\nevery numeric cutoff in the cascade to flipping, so hysteresis can be built\non published boundaries instead of guesses.\n\n``typical_duration`` describes the real-world cycle phase, NOT a guaranteed\ndwell — but the dwell floor is now SCALED to it: a \"Weeks-Months\" state\n(#2/#4/#6/#8) must be held 48h before anything may replace it, \"Weeks\" 24h,\n\"Days-Weeks\" 12h, and #1 Structural Shock only 2h because it is an emergency\noverride. Read the live value from ``stability.dwell_floor_s``.\n\n``/regimes/history`` returns the committed transition sequence.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_regimes","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/regimes/current":{"get":{"operationId":"regimes-current","summary":"Get Current","description":"Just the current long-horizon regime — the trimmed companion to ``/regimes``.\n\nSame classification as the ``current`` block above, without the taxonomy.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_regimes-current","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/regimes/history":{"get":{"operationId":"regimes-history","summary":"Get Regime History","description":"Committed long-horizon regime transitions over a window (Pro Plus).\n\n``/regimes`` publishes only what is committed right now, so the sequence that\nproduced it could not be reconstructed from this API at all. Each entry here\nis one committed run: which regime, the exact instant it committed, when the\nnext one replaced it, and how long it held.\n\n**``committed_at`` is exact.** It comes from the ``in_regime_since`` stamped\nat commit time and carried in every archived sample — not from the ~25-min\nsample that first observed the change. And because every committed regime is\nnow protected by a minimum-dwell floor of at least 2h, no transition can hide\nbetween two samples.\n\n**Coverage starts 2026-08-07 and cannot be backfilled.** The published regime\nis a stateful commit through the anti-churn dwell gate, not a pure function\nof the archived signals — replaying older inputs would produce a sequence\nthat was never actually served. ``coverage_start`` reports the true start.\n\nNot to be confused with ``/quant/regimes/history``, which is the short-horizon\n6-state HMM's hourly probability Parquet. This is the 10-state cycle model.","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Window start, inclusive (ISO-8601 or unix ms). Defaults to 30 days ago."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Window end, EXCLUSIVE (ISO-8601 or unix ms). Defaults to now."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5000,"minimum":1,"maximum":25000},"description":"Max archive samples to scan (~57/day), not transitions returned."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/security/events":{"get":{"operationId":"security-events","summary":"Get Security Events","description":"Filterable recent security-events list (up to 10d back).\n\nNarrow by event ``type``, affected ``symbol``, and ``min_severity``.","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":["string","null"],"enum":["hack","depeg"]}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":10}},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to events affecting this ticker"},{"name":"min_severity","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0,"maximum":1}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/security/regime":{"get":{"operationId":"security-regime","summary":"Get Security Regime","description":"Recent security events — confirmed hacks/exploits + live stablecoin depegs.\n\nThe main Security/Black Swan payload: every security event in the last\n``window_days`` (default 10) with its affected symbols, severity, and acute\nshort bias, plus the market-wide Security Stress score. Use\n`/security/regime/score` for the composite alone.\n\n**Partly backfillable** — the hack / flow-stress / depeg subscores replay from\nthe dated DefiLlama hacks registry, archived net flows, and price history; the\n``security_headlines`` RSS sidecar on `/security/regime/score` is live-only and\nlands null on backfilled days.","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":10},"description":"Lookback for recent security events"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_security-regime","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/security/regime/score":{"get":{"operationId":"security-regime-score","summary":"Get Security Regime Score","description":"Market-wide Security Stress composite (0-100) + sub-scores + live sidecar.\n\nBaseline 0 (security stress is absence-by-default). Bands: dormant (<10),\nquiet (10-29), elevated (30-54), heavy (55-79), critical (≥80). Composite =\n0.45·hack + 0.30·flow + 0.25·depeg, re-normalized over available feeds\n(``partial``/``inputs_available`` flag which were live). The\n``security_headlines`` sidecar (classified rekt/SlowMist RSS) is live-only and\nexcluded from the composite.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/security/regime/{symbol}":{"get":{"operationId":"security-regime-symbol","summary":"Get Security Regime Symbol","description":"Per-symbol security overlay — implicating events + acute bias (Pro+).","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/sentiment/fear-greed":{"get":{"operationId":"sentiment-fear-greed","summary":"Get Fear Greed","description":"Fear & Greed index (multi-source averaged).","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"Response format: 'markdown' for LLM-friendly plain text"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/sentiment/macro":{"get":{"operationId":"sentiment-macro","summary":"Get Macro","description":"Macro indicators: EUR/USD, gold, treasury yields.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/sentiment/stablecoins":{"get":{"operationId":"sentiment-stablecoins","summary":"Get Stablecoins","description":"Stablecoin market cap + 14d/90d flows.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/sentiment/stablecoins/history":{"get":{"operationId":"sentiment-stablecoins-history","summary":"Get Stablecoin History","description":"Raw stablecoin market cap history timeseries.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/sentiment/stablecoins/remote-history":{"get":{"operationId":"sentiment-stablecoins-remote-history","summary":"Get Remote Stablecoin History","description":"Daily stablecoin mcap + inflows, derived from our own DefiLlama history.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"minimum":1,"maximum":365}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":900,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/strategies":{"get":{"operationId":"strategies","summary":"List Strategies","description":"Every catalogue strategy (optionally one group): summary, timeframe,\nindicators used and the CDA endpoints that feed it. Prompts and the full\nplaybook fields are on /strategies/{slug}.","parameters":[{"name":"group","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Group slug from /strategies/groups, e.g. funding-carry-basis"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_strategies","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/strategies/groups":{"get":{"operationId":"strategies-groups","summary":"List Strategy Groups","description":"Every strategy group with its description and strategy count.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/strategies/{slug}":{"get":{"operationId":"strategies-slug","summary":"Get Strategy","description":"One strategy in full: edge mechanism, data inputs, indicators, feeding\nendpoints, backtest status, AlgoBrain playbook path and two AI-agent\nprompts (build it, backtest it).","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/stream/delayed":{"get":{"operationId":"stream-delayed","summary":"Delayed event preview (no key)","description":"A free, keyless preview of the stream: the events from a 3-minute window\nthat ended 30 minutes ago (`window_start`/`window_end`, event time, ms),\noldest first, at most 900. `server_now` lets a client replay them at their\noriginal pace (`ts + delay_ms`). `events_per_min` is the window's rate.\nCached for 60s. For real-time events use `GET /stream` (Pro).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/stream/recent":{"get":{"operationId":"stream-recent","summary":"Recent events (JSON)","description":"The newest events from the live stream as JSON, oldest first. Same event\nshape as `GET /stream`. `last_id` is the id to pass as `since_id` when\nopening the stream, so a client can backfill and then go live without a gap\nor a duplicate. Any key, Free included.","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":500},"description":"Newest N events (1-500)."},{"name":"types","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma-separated event types: liquidation, whale_transfer, whale_position, funding, oi_delta, price_move. Default: all."},{"name":"symbols","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Comma-separated base coins (BTC,ETH,SOL). Default: all."},{"name":"min_usd","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0},"description":"Drop events smaller than this USD size. Applies to events that carry `usd` (liquidation, whale_transfer, whale_position, oi_delta); funding and price_move always pass."}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/supply/float":{"get":{"operationId":"supply-float","summary":"Get Supply Float","description":"Circulating float and dilution overhang for every tracked coin.\n\nRanked by **ascending float** — the tightest floats first, because that is\nthe end of the distribution where supply is the story. A coin trading at a\n23% float with three times its market cap still locked is a different\ninstrument from one that is fully distributed.\n\n- `float_pct` (0..1) — circulating ÷ `supply_basis`.\n- `supply_basis` — **which denominator was used**: `max_supply` when the token\n  is genuinely capped, else `total_supply`. `max_supply` is absent for over\n  half the universe, and \"share of max\" and \"share of total\" are different\n  claims, so this is stated rather than assumed.\n- `locked_supply` / `locked_usd` — what is not yet circulating.\n- `dilution_overhang` — locked value as a multiple of current market cap.\n- `next_unlock` — the soonest dated cliff, with same-day tranches summed and\n  priced (`usd`, `pct_of_float`, `pct_of_market_cap`).\n- `unlock_coverage` — `tracked` or `not_tracked`. **A null `next_unlock` with\n  `not_tracked` does NOT mean the token has no unlock scheduled**; it means\n  no schedule is published for it in our source. Do not read it as \"safe\".\n\nDefaults to a **$500M market-cap floor**: below it a \"tight float\" is usually\na nominal `total_supply` rather than a real vesting schedule, and those\nartifacts otherwise dominate the top of an ascending-float ranking. Pass\n`min_market_cap=0` for the unfiltered set — the rows are still computed, they\nare just not what the default board is for.\n\nFree tier returns the top 25 rows; Pro and above get the full board and the\nfilters.","parameters":[{"name":"min_market_cap","in":"query","required":false,"schema":{"type":"number","default":500000000,"minimum":0},"description":"Market-cap floor. Defaults to $500M because below it a tight float is usually a nominal total_supply rather than a vesting schedule. Pass 0 for the full set."},{"name":"min_locked_usd","in":"query","required":false,"schema":{"type":"number","default":0,"minimum":0},"description":"Only rows with at least this much locked value"},{"name":"max_float_pct","in":"query","required":false,"schema":{"type":"number","default":1,"maximum":1},"description":"Only rows at or below this float (0-1)"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one ticker"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":2000}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/supply/unlocks":{"get":{"operationId":"supply-unlocks","summary":"Get Supply Unlocks","description":"The forward token-unlock calendar — dated vesting cliffs.\n\nSourced from DefiLlama's free emissions data and sized against the coin's own\nfloat, so a cliff reads as \"12% of circulating supply on 1 Sept\" rather than\na raw token count.\n\n**This is a cliff calendar, not an emissions feed.** Continuous emission is\ndeliberately excluded: mining inflation, linear vesting, and runs of\nidentical daily releases are a drip, not a step, and publishing them as\ncatalysts buries the real ones. Coverage is bounded by the protocols\nDefiLlama tracks — absence here is not evidence that a token has no unlock.\n\nFree tier is limited to the next 7 days; Pro and above get the full horizon. Each coin\nlists its SOONEST cliff only. ``limit`` (added 2026-10-10; it used to be ignored) caps\nthe rows; an unrecognised query parameter is a 400.","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":35},"description":"Forward horizon"},{"name":"symbol","in":"query","required":false,"schema":{"type":["string","null"]},"description":"Filter to one ticker. A Hyperliquid k-name (kBONK) finds BONK."},{"name":"limit","in":"query","required":false,"schema":{"type":["integer","null"],"minimum":1,"maximum":500},"description":"At most this many rows, soonest first"}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/trading-strategy-baskets":{"get":{"operationId":"trading-strategy-baskets","summary":"Get Trading Strategy Baskets","description":"The 50-strategy meta-basket catalogue across 6 groups.\n\nEach basket carries a stable ``slug`` (the API contract, matching the web\npage anchor), a display ``name`` and a one-line ``description``. This is the\ntop-level taxonomy; finer setups live as sub-strategies beneath each basket.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_trading-strategy-baskets","responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/implied":{"get":{"operationId":"volatility-implied","summary":"Get Implied Vol","description":"BTC/ETH implied vol (Deribit DVOL) + variance risk premium.\n\nCurrent DVOL, 24h change, realized comparison and VRP: **BTC-only on Free**,\nBTC + ETH on Pro / Pro Plus. The full DVOL history series + the ATM implied-vol\nterm structure are **Pro Plus** only (``detail: true``).","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/index":{"get":{"operationId":"volatility-index","summary":"Get Volatility Index","description":"Crypto Volatility Index (CVI) — market-wide realized vol + BTC/ETH implied.\n\nThe headline ``cvi_realized_30`` is the **volume-weighted 30d annualized\nrealized vol (%)** across the universe (each coin weighted by its mean daily\nnotional). ``composite_score`` is the 0-100 vol-stress breadth gauge.\n``majors`` carries BTC & ETH realized vs Deribit implied vol (DVOL) and the\n**variance risk premium** (``vrp`` = implied − realized).\n\n**Tiers:** the market-wide CVI headline is available on every plan; the\n``majors`` block is BTC-only on Free and adds ETH on Pro / Pro Plus.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/index/history":{"get":{"operationId":"volatility-index-history","summary":"Get Volatility Index History","description":"Daily CVI + vol-stress history, up to a year (**Pro Plus**).\n\nOne point per UTC day in ``[today - days, today]``. From 2026-08-24 values\ncome from each day's live archived snapshot. Earlier days are reconstructed\nfrom daily klines with the live formula and carry ``backfilled: true`` — CVI\nwas only archived from 2026-07-23, and until 2026-08-24 the live universe\nstill counted delisted exchange pairs with frozen prices, which roughly\ndoubled the published index. Reconstructed days use today's coin universe.\nToday appears once the 20:00 UTC snapshot is built. ``composite_score`` is\nthe number ``/volatility/regime/score`` serves live, captured once a day.","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"minimum":1,"maximum":365}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/regime":{"get":{"operationId":"volatility-regime","summary":"Get Volatility Regime","description":"Per-asset realized-volatility regime across the SIGNUM_RGG universe.\n\nEach asset is classified into one of ``vol_shock``, ``expanding``,\n``compressed``, ``mean_reverting``, or ``normal`` from realized vol (close-to-\nclose, Parkinson, Garman-Klass) on daily klines. Each entry carries 7d/30d\nvol, the 90d vol percentile, term structure (7d/30d), and a vol-target\nposition-size multiplier (``target_vol / current_vol``, capped).\n\n**Backfillable** — replayable from daily klines (unlike the intraday-only\nliquidity regime). The ``vol.rv_1h`` field is live-only and lands null on\nhistorically backfilled days.\n\n**``vol_target_multiplier`` is ABSOLUTE**: ``60 / rv_gk_30`` (close-to-close\nfallback) clamped to ``[0.25, 3.0]`` — not a percentile of the coin's own\nhistory. A coin with 30d vol >= 240% pins at 0.25 for as long as that holds\n(``vol.multiplier_at_floor``, ``vol.multiplier_floor_days``). For a\n**shock gate use ``vol.rv_z_7 >= 2``** (7d vol two sigmas above its own\ntrailing 90d) or ``vol_pctile_7``; ``vol_shock`` itself is relative (7d GK\nat/above the 90th percentile of the coin's own 90d).\n\nA coin needs ``MIN_BARS`` = 40 daily bars to be classified. Rows whose\ncandle fetch failed this cycle are carried over from the previous build\n(``stale_cycles`` > 0, max 8 cycles) rather than vanishing.\n\nExample screens: `?regime=compressed&sort=days_compressed` (longest dry\ntinder), `?regime=vol_shock` (acute spikes), `?sort=vol_target_multiplier&\norder=desc` (assets a vol-targeter would size up).\n\n**Tiers:** Free is scoped to BTC only; Pro / Pro Plus return the full universe.","parameters":[{"name":"source","in":"query","required":false,"schema":{"type":["string","null"],"enum":["binance_spot","hyperliquid_perp"]}},{"name":"regime","in":"query","required":false,"schema":{"type":["string","null"],"enum":["vol_shock","expanding","compressed","mean_reverting","normal"]},"description":"Filter by volatility regime"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["symbol","rv_gk_30","rv_gk_7","vol_pctile_30","term_structure_ratio","vol_target_multiplier","days_compressed"],"default":"vol_pctile_30"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-mcp-tool":"cryptodata_volatility-regime","x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/regime/score":{"get":{"operationId":"volatility-regime-score","summary":"Get Volatility Regime Score","description":"Market-wide volatility-stress composite (0-100) + sentiment + regime mix.\n\nHigher score = more market-wide volatility stress (size down). Sentiment\nbands: stressed (≥70), elevated (55-69), normal (45-54), calm (30-44),\ndormant (<30) — where ``dormant`` is the dangerously-quiet, compressed-vol\nstate. Trimmed companion to ``/volatility/regime`` — no per-coin list.\nIts daily history is ``composite_score`` on ``/volatility/index/history``.","x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volatility/regime/{symbol}":{"get":{"operationId":"volatility-regime-symbol","summary":"Get Volatility Regime Symbol","description":"Per-asset Volatility regime detail with 60d daily history.\n\nCoin scope follows the plan: **Free = BTC only**, Pro / Pro Plus = any coin.\nThe 60d ``history`` series is **Pro Plus** only (empty on Free / Pro).\n\nHyperliquid thousand-unit tickers (``kBONK``, ``kPEPE``, ``kSHIB``) are\naccepted as aliases of the plain symbol.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"x-cache-ttl-s":300,"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volume/scanner":{"get":{"operationId":"volume-scanner","summary":"Get Volume Scanner","description":"Every Hyperliquid perp with its 24h volume, 30-day average, and multiplier.\n\n``multiplier`` = live rolling-24h notional ÷ mean daily notional over the last\n30 **settled** days (today's partial day is excluded from the baseline). A\nreading of 3.0 means the coin is trading at three times its normal daily\nvolume. ``multiplier_median`` is the same ratio against the 30-day median,\nwhich is far less distorted by a single prior blow-off day — compare the two\nwhen a coin's recent history is lumpy.\n\nPerps listed less than 7 days ago have no honest baseline and report\n``multiplier: null`` with ``band: \"unknown\"`` rather than a spurious number.\n\nExample screens: `?min_multiplier=3` (today's unusual activity),\n`?band=dormant` (coins that have gone quiet), `?sort=volume_24h` (plain\nvolume leaderboard).\n\n**Tiers:** Free returns the top 20 perps by 24h volume; Pro / Pro Plus return\nthe full universe.","parameters":[{"name":"band","in":"query","required":false,"schema":{"type":["string","null"],"enum":["dormant","quiet","normal","elevated","surging","extreme","unknown"]},"description":"Filter by activity band"},{"name":"min_multiplier","in":"query","required":false,"schema":{"type":["number","null"],"minimum":0},"description":"Only perps trading at or above this multiple of their 30d average"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["multiplier","volume_24h","symbol","change_24h"],"default":"multiplier"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":250,"minimum":1,"maximum":500}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/volume/scanner/{symbol}":{"get":{"operationId":"volume-scanner-symbol","summary":"Get Volume Scanner Symbol","description":"One perp's volume multiplier plus its 30-day daily notional series (**Pro**).\n\nHyperliquid thousand-unit tickers (``kBONK``, ``kPEPE``, ``kSHIB``) are\naccepted as aliases of the plain symbol.","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"x-price":{"price":"$0.010","price_micro":10000,"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"responses":{"200":{"description":"Successful response (passed through from the provider).","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-RTAPI-Price":{"$ref":"#/components/headers/Price"},"X-RTAPI-Cache":{"$ref":"#/components/headers/Cache"},"X-RTAPI-Cache-Layer":{"$ref":"#/components/headers/CacheLayer"},"X-RTAPI-Cache-TTL":{"$ref":"#/components/headers/CacheTtl"},"X-RTAPI-Data-Age":{"$ref":"#/components/headers/DataAge"},"X-RTAPI-Cached-At":{"$ref":"#/components/headers/CachedAt"},"X-RTAPI-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RTAPI-Quota-Source":{"$ref":"#/components/headers/QuotaSource"},"Server-Timing":{"$ref":"#/components/headers/ServerTiming"},"X-RTAPI-Gateway-Ms":{"$ref":"#/components/headers/GatewayMs"}},"content":{"application/json":{"schema":{}}}},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"BearerKey":{"type":"http","scheme":"bearer","description":"`rta_live_...` platform key"}},"headers":{"PaymentRequired":{"description":"Base64-encoded JSON x402 payment requirements (same as the body).","schema":{"type":"string"}},"PaymentResponse":{"description":"Base64-encoded JSON x402 settlement receipt (paid requests only).","schema":{"type":"string"}},"Price":{"description":"Per-request price of this endpoint, e.g. `$0.010` (charged only on a paid 2xx; covered by the key in API-key mode).","schema":{"type":"string"}},"Cache":{"description":"`HIT` or `MISS`.","schema":{"type":"string","enum":["HIT","MISS"]}},"CacheLayer":{"description":"On a hit: `edge` (this data centre's cache) or `global` (the quality probe's copy).","schema":{"type":"string","enum":["edge","global"]}},"CacheTtl":{"description":"The endpoint's cache TTL in seconds (cacheable endpoints only).","schema":{"type":"integer"}},"DataAge":{"description":"Seconds since the gateway took its copy from the provider (0 when the answer is live). The data's own timestamp, if any, is in the body.","schema":{"type":"integer"}},"CachedAt":{"description":"Unix milliseconds the gateway's copy was taken from the provider (hits only).","schema":{"type":"integer"}},"Remaining":{"description":"API-key mode: calls left in the key's current period (also `X-RateLimit-Remaining`).","schema":{"type":"integer"}},"RateLimitLimit":{"description":"API-key mode: the key's calls per period.","schema":{"type":"integer"}},"RateLimitReset":{"description":"API-key mode: unix seconds the period resets.","schema":{"type":"integer"}},"QuotaSource":{"description":"API-key mode: `do` when the quota figures are the counter's exact answer, `memo` when a cached answer was served ahead of the count (figures then approximate by a few calls; a 429 is always exact).","schema":{"type":"string","enum":["do","memo"]}},"ServerTiming":{"description":"One entry per phase the request ran (`kv`, `auth`, `quota`, `cache`, `upstream`, `settle`) and `total`, the gateway's time to first byte; `desc` names the source (`cache;dur=3;desc=\"edge\"`).","schema":{"type":"string"}},"GatewayMs":{"description":"The gateway's own time to first byte: `total` minus `upstream` and `settle`.","schema":{"type":"integer"}}},"responses":{"PaymentRequired":{"description":"Payment required. Retry with an x402 `PAYMENT-SIGNATURE` (or `X-PAYMENT`) header for one of `accepts`, or with an API key.","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"Error":{"description":"Error envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"PaymentRequirements":{"type":"object","required":["scheme","network","payTo","asset"],"properties":{"scheme":{"type":"string","const":"exact"},"network":{"type":"string","examples":["eip155:8453"]},"payTo":{"type":"string"},"price":{"type":"string","examples":["$0.010"]},"asset":{"type":"string"},"maxTimeoutSeconds":{"type":"integer"},"resource":{"type":"string","format":"uri"},"description":{"type":"string"},"mimeType":{"type":"string"}}},"PaymentRequired":{"type":"object","required":["x402Version","accepts","error"],"properties":{"x402Version":{"type":"integer","const":2},"accepts":{"type":"array","items":{"$ref":"#/components/schemas/PaymentRequirements"}},"error":{"type":"string"},"alternatives":{"type":"object","properties":{"api_key_purchase":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}},"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"externalDocs":{"url":"https://realtimeapi.ai/feeds/cryptodata"}}