Get Daily Snapshot
GET/v1/cryptodata/daily
Full daily snapshot of all current (non-history) data in one response. Excludes Binance spot prices and Hyperliquid data which are available via dedicated ``/daily/prices`` and ``/daily/hyperliquid`` endpoints. **Market health block (`market_health`)** Dual-score architecture: 4 long-term components (Price Trend, Market Breadth, Stablecoin Flow 90d, Macro/DXY) + 7 short-term components (Volume Quality, Fear & Greed, Derivatives, Market Breadth Short, Volatility, Short-Term Price, Stablecoin Flow 14d). Combined score = 0.5·LT + 0.5·ST. - `market_health.total_score` / `long_term_score` / `short_term_score`: int 0–100 - `market_health.sentiment` / `long_term_sentiment` / `short_term_sentiment`: BULLISH | NEUTRAL | BEARISH - `market_health.components`: `{name: {score, weight}}` (per-component details are stripped from `/daily`; hit `/market-health` for component `.details`) - `market_health.indicators`: flat denormalization for quick consumption (below) **`market_health.indicators` contract** A flat dict of the most-filtered values from `components.<x>.details`. Keys are **omitted entirely** when the source value is unavailable (never null) so consumers can safely use `dict.get(key, default)` for fallbacks. Committed key set: - `long_short_ratio` (float) — BTC long/short ratio (Binance perps) - `funding_rate` (float, %) — avg funding rate (aliased from `avg_funding_rate`; CoinGlass cross-exchange when available, Binance fallback) - `buy_ratio` (float, 0–1) — weighted taker-buy ratio across top spot pairs - `fear_greed_value` (int, 0–100) — averaged Fear & Greed index - `breadth_pct` (float, %) — share of top-30 coins above their 200D MA - `pct_from_200ma` (float, %) — BTC distance from 200D MA - `cross_status` (str) — Golden | Death | Neutral - `stablecoin_change_7d` (float) — 7-day stablecoin market-cap change **Cross-exchange scope** `market_health` is computed cross-exchange (CoinGlass aggregate + Binance) and is **not** scoped by the `exchange` query param. The `exchange` filter only trims the `coins`, `coinglass.funding`, and `coinglass.liquidations` lists. In particular `indicators.long_short_ratio` is BTC-on-Binance, used as a market-wide sentiment signal — not a per-exchange Hyperliquid metric. **Payload trimming and filter-source readiness** To keep responses small, `coinglass.funding` and `coinglass.liquidations` are always capped at the top 100 entries (sorted by max absolute funding rate and 24h liquidation USD respectively) regardless of the `exchange` filter. The full long tail is available at the dedicated `/market-intelligence/funding-rates` and `/market-intelligence/liquidations` endpoints. When `exchange` is set to a specific venue whose coin set has not yet loaded after server start, this endpoint returns `503` rather than silently emitting the unfiltered payload. **Technical / Structural regime block (`technical_regime`)** Universe-wide counts (`above_200ma`, `in_squeeze`, `overbought_1d`, …) plus top-N symbol lists (`top_in_squeeze`, `top_overbought`, `top_oversold`, `top_near_high`, `top_near_low`) as a macro overlay. The full per-symbol map (`by_symbol`, keyed by ticker, each entry carrying the `ma` / `bollinger` / `range_state` / `rsi` blocks) is **omitted by default** to keep this payload compact — pass `technical_detail=true` to include it here, or read it point-in-time from `/backtesting/daily-snapshots/{date}` where it is always present. Per-symbol `rsi.*_1h` fields are only meaningful in the live snapshot; backfilled historical days have no intraday series. **Volatility regime block (`volatility_regime`)** Realized-vol risk-sizing overlay (Regime #13): regime counts + shares (`compressed`, `expanding`, `vol_shock`, `mean_reverting`, `normal`), a 0-100 `composite_score` (higher = more market-wide vol stress) with `sentiment`, `median_vol_pctile_30`, and top-N lists (`top_compressed`, `top_vol_shock`, `top_expanding`). The full per-symbol map (`by_symbol`, each entry carrying the `regime` + `vol` metrics incl. the vol-target multiplier) is **omitted by default** — pass `volatility_detail=true` to include it, or read it point-in-time from `/backtesting/daily-snapshots/ {date}`. Per-symbol `vol.rv_1h` is live-only; backfilled days land null. **SIGNUM_RGG directional trend radar (`signum_rgg`)** Daily RED/GREY/GREEN trend classifier (ADX(14)+DMI with hysteresis) across the full HL-perp ∪ top-Binance-spot universe — Regime #14's directional companion. Universe summary: `green`/`grey`/`red` counts + shares, a directional `net_breadth_pct` = (green−red)/n·100, `mean_trend_score`, a BULLISH/NEUTRAL/BEARISH `sentiment`, and `top_green`/`top_red` (most strongly trending). The full per-symbol map (`by_symbol`, keyed by bare ticker, each carrying `color`, a signed `score` (+ADX green / −ADX red / 0 grey), `adx`/`plus_di`/`minus_di`, `days_in_color`, and the `hl_symbol` join key) is **omitted by default** — pass `signum_detail=true` to include it, or read it point-in-time from `/backtesting/daily-snapshots/{date}`. Per-symbol `intraday_*` are live-only; backfilled historical days land null.
Price
$0.01/ callEdge cache
3600s
Uptime 24h
100.00%
p95
898ms
MCP tool
cryptodata_daily
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| exchange | query | string = hyperliquid | Filter coins by exchange: hyperliquid, binance_spot, asterdex, or 'all' for unfiltered |
| format | query | string | Response format: 'markdown' for LLM-friendly plain text |
| technical_detail | query | boolean = false | 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}. |
| volatility_detail | query | boolean = false | 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}. |
| meme_detail | query | boolean = false | 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}. |
| event_detail | query | boolean = false | 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}. |
| security_detail | query | boolean = false | 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}. |
| signum_detail | query | boolean = false | 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}. |
Code
# 1. No key, no payment: the gateway answers 402 with the price
curl -i "https://api.realtimeapi.ai/v1/cryptodata/daily"
# 2. Pay: retry with a signed x402 payment (any x402 client builds this header)
curl "https://api.realtimeapi.ai/v1/cryptodata/daily" -H "PAYMENT-SIGNATURE: $X402_PAYMENT"// npm i @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(PRIVATE_KEY)) }] });
const pay = wrapFetchWithPayment(fetch, client);
const data = await (await pay("https://api.realtimeapi.ai/v1/cryptodata/daily")).json();
console.log(data);# pip install x402 eth-account requests
from eth_account import Account
from x402.clients.requests import x402_requests
session = x402_requests(Account.from_key(PRIVATE_KEY))
print(session.get("https://api.realtimeapi.ai/v1/cryptodata/daily").json())curl "https://api.realtimeapi.ai/v1/cryptodata/daily" -H "X-API-Key: $RTAPI_KEY"Frequently asked questions
How do I get get daily snapshot from CryptoDataAPI?
Send GET https://api.realtimeapi.ai/v1/cryptodata/daily. Pay $0.01 per request with x402, or send an X-API-Key header.
What does GET /daily cost?
$0.01 per successful request in USDC on Base. Failed requests are never charged.
Can I call this endpoint from an MCP client?
Yes. Connect any MCP client to the RealtimeAPI server and use call_feed with this endpoint's URL, or get_quote to check the price first.