{"openapi":"3.1.0","info":{"title":"Crypto Broski","version":"1.4.0","description":"Crypto market briefing with an XRP focus: USD price, 24-hour change and market data, a short written summary and news-sentiment score, recent headlines, and (for XRP) XRP Ledger activity plus large transfers. GET /briefing accepts ?coin= as a CoinGecko id or common symbol (btc, eth, sol, xrp, …). GET /xrp/briefing is the XRP-specific route and always includes ledger signals. Not financial advice.","x-guidance":"Crypto Broski is an x402-paid crypto market-data API operated by X3 Digital Capital LLC. Ten GET endpoints return JSON for coin market briefings, Hyperliquid perpetual funding and open interest, a market-wide pulse with Fear & Greed, technical indicators, large Bitcoin transfers, an XRP whale tracker (large XRP Ledger payments over the last hour), an XRP Ledger wallet lookup (balance, reserve, trustlines, recent transactions), XRP exchange inflow/outflow (net flow per exchange over 1h to 30d), and a Ripple XRP escrow tracker (unlock schedule, re-locks, where released XRP goes); each call costs 0.01 or 0.02 USD in USDC on Base. GET /music/why-do-they-doubt-xrp sells the full MP3 of a song by The XRP Army for 1 USD (personal listening license only). Discovery documents are at /openapi.json and /.well-known/x402.","contact":{"name":"X3 Digital Capital LLC","email":"api@x3digitalcapital.com","url":"https://cryptobroski.com"}},"servers":[{"url":"https://api.cryptobroski.com"}],"paths":{"/":{"get":{"operationId":"get_root","summary":"Service catalog","description":"Service name, paid routes, prices, and payment settings. Browsers that send Accept: text/html are redirected to the public website.","tags":["Discovery"],"security":[],"responses":{"200":{"description":"Successful free response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/health":{"get":{"operationId":"health_check","summary":"Health check","description":"Liveness check with service name, network, and current time.","tags":["Discovery"],"security":[],"responses":{"200":{"description":"Successful free response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/info":{"get":{"operationId":"get_info","summary":"Service info","description":"Sources, paid route details, supported coins, and payment settings.","tags":["Discovery"],"security":[],"responses":{"200":{"description":"Successful free response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/openapi.json":{"get":{"operationId":"get_openapi","summary":"OpenAPI document","description":"Machine-readable OpenAPI 3.1 description of this API, including x402 payment info.","tags":["Discovery"],"security":[],"responses":{"200":{"description":"Successful free response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/x402":{"get":{"operationId":"get_well_known_x402","summary":"x402 well-known manifest","description":"Machine-readable list of payment-gated resources on this origin.","tags":["Discovery"],"security":[],"responses":{"200":{"description":"Successful free response","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/briefing":{"get":{"operationId":"get_briefing","summary":"Multi-coin crypto market briefing","description":"Multi-coin crypto market briefing. Query parameter coin is a CoinGecko id or common symbol (btc, eth, sol, xrp, and others listed on GET /info). Returns USD price, 24-hour change, market cap and volume, recent headlines, a deterministic written summary, and sentiment (bullish/neutral/bearish with a numeric score). XRP Ledger activity and large XRP transfers are included only when coin is xrp (the default if coin is omitted). Unknown coins return HTTP 400. Not financial advice.","tags":["Briefing"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"coin","required":false,"description":"CoinGecko id or common symbol (btc, eth, sol, xrp, and others listed on GET /info). Optional; defaults to xrp.","schema":{"type":"string","default":"xrp","example":"btc"},"example":"btc"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"coin":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"}}},"price":{"type":["object","null"],"properties":{"asset":{"type":"string"},"coingeckoId":{"type":"string"},"currency":{"type":"string"},"usd":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"marketCapUsd":{"type":["number","null"]},"volume24hUsd":{"type":["number","null"]},"source":{"type":"string"},"asOf":{"type":"string","format":"date-time"}}},"market":{"type":["object","null"],"properties":{"marketCapUsd":{"type":["number","null"]},"volume24hUsd":{"type":["number","null"]}}},"ledger":{"type":["object","null"],"properties":{"index":{"type":["number","null"]},"txCount":{"type":["number","null"]},"baseFeeDrops":{"type":["string","null"]},"baseFeeXrp":{"type":["string","null"]},"closeTime":{"type":["string","null"]},"source":{"type":"string"},"asOf":{"type":"string","format":"date-time"}}},"signals":{"type":["object","null"],"properties":{"whaleThresholdXrp":{"type":"number"},"scannedLedgers":{"type":["object","null"],"properties":{"from":{"type":"number"},"to":{"type":"number"}}},"activity":{"type":["object","null"],"properties":{"latestTxCount":{"type":["number","null"]},"recentAverageTxCount":{"type":["number","null"]},"scannedLedgers":{"type":"number"},"vsTypical":{"type":"string","enum":["above","near","below","unknown"]}}},"whales":{"type":"array","items":{"type":"object","properties":{"amountXrp":{"type":"number"},"from":{"type":"string"},"to":{"type":"string"},"fromLabel":{"type":["string","null"]},"toLabel":{"type":["string","null"]},"txHash":{"type":"string"},"ledgerIndex":{"type":"number"}}}},"newsFlags":{"type":"object","properties":{"etf":{"type":"boolean"},"sec":{"type":"boolean"},"regulatory":{"type":"boolean"},"matches":{"type":"array","items":{"type":"object"}}}}}},"headlines":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"link":{"type":"string"},"publishedAt":{"type":["string","null"]},"flags":{"type":"array","items":{"type":"string"}}}}},"summary":{"type":"string"},"sentiment":{"type":"object","properties":{"label":{"type":"string","enum":["bullish","neutral","bearish"]},"score":{"type":"number"}}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}}}}},"402":{"description":"Payment Required"}}}},"/xrp/briefing":{"get":{"operationId":"get_xrp_briefing","summary":"XRP market and XRP Ledger briefing","description":"XRP market and XRP Ledger briefing: XRP/USD price and 24-hour change, market cap and volume, a deterministic written summary and sentiment score, recent headlines with ETF/SEC/regulatory flags, latest validated ledger stats versus recent typical activity, and large XRP payments (default threshold 1M XRP) from recent validated ledgers when found. No query parameters. Not financial advice.","tags":["Briefing"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"coin":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"}}},"price":{"type":["object","null"],"properties":{"asset":{"type":"string"},"coingeckoId":{"type":"string"},"currency":{"type":"string"},"usd":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"marketCapUsd":{"type":["number","null"]},"volume24hUsd":{"type":["number","null"]},"source":{"type":"string"},"asOf":{"type":"string","format":"date-time"}}},"market":{"type":["object","null"],"properties":{"marketCapUsd":{"type":["number","null"]},"volume24hUsd":{"type":["number","null"]}}},"ledger":{"type":["object","null"],"properties":{"index":{"type":["number","null"]},"txCount":{"type":["number","null"]},"baseFeeDrops":{"type":["string","null"]},"baseFeeXrp":{"type":["string","null"]},"closeTime":{"type":["string","null"]},"source":{"type":"string"},"asOf":{"type":"string","format":"date-time"}}},"signals":{"type":["object","null"],"properties":{"whaleThresholdXrp":{"type":"number"},"scannedLedgers":{"type":["object","null"],"properties":{"from":{"type":"number"},"to":{"type":"number"}}},"activity":{"type":["object","null"],"properties":{"latestTxCount":{"type":["number","null"]},"recentAverageTxCount":{"type":["number","null"]},"scannedLedgers":{"type":"number"},"vsTypical":{"type":"string","enum":["above","near","below","unknown"]}}},"whales":{"type":"array","items":{"type":"object","properties":{"amountXrp":{"type":"number"},"from":{"type":"string"},"to":{"type":"string"},"fromLabel":{"type":["string","null"]},"toLabel":{"type":["string","null"]},"txHash":{"type":"string"},"ledgerIndex":{"type":"number"}}}},"newsFlags":{"type":"object","properties":{"etf":{"type":"boolean"},"sec":{"type":"boolean"},"regulatory":{"type":"boolean"},"matches":{"type":"array","items":{"type":"object"}}}}}},"headlines":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"link":{"type":"string"},"publishedAt":{"type":["string","null"]},"flags":{"type":"array","items":{"type":"string"}}}}},"summary":{"type":"string"},"sentiment":{"type":"object","properties":{"label":{"type":"string","enum":["bullish","neutral","bearish"]},"score":{"type":"number"}}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}}}}},"402":{"description":"Payment Required"}}}},"/derivatives/briefing":{"get":{"operationId":"get_derivatives_briefing","summary":"Hyperliquid perpetual derivatives briefing","description":"Hyperliquid perp briefing: hourly/annualized funding, mark and oracle price, 24h change, open interest, volume, premium, and a crowded-long to crowded-short positioning label with a short summary. Query coin is a Hyperliquid perp symbol (default btc). Unknown coins return HTTP 400 before payment. Not financial advice.","tags":["Derivatives"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"coin","required":false,"description":"Hyperliquid perpetual symbol (btc, eth, sol, xrp, doge, and other active perps). Optional; defaults to btc.","schema":{"type":"string","default":"btc","example":"eth"},"example":"eth"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"coin":{"type":"string"},"venue":{"type":"string"},"markPrice":{"type":["number","null"]},"oraclePrice":{"type":["number","null"]},"change24hPct":{"type":["number","null"]},"funding":{"type":"object","properties":{"hourlyRate":{"type":["number","null"]},"hourlyPct":{"type":["number","null"]},"annualizedPct":{"type":["number","null"]},"baselineHourlyPct":{"type":"number"},"intervalHours":{"type":"number"}}},"openInterest":{"type":"object","properties":{"coins":{"type":["number","null"]},"usd":{"type":["number","null"]}}},"volume24hUsd":{"type":["number","null"]},"premium":{"type":"object","properties":{"rate":{"type":["number","null"]},"pct":{"type":["number","null"]},"vsOracle":{"type":"string","enum":["above","below","flat","unknown"]}}},"maxLeverage":{"type":["number","null"]},"bias":{"type":"string","enum":["crowded-long","long-leaning","balanced","short-leaning","crowded-short","unknown"]}}}}}},"402":{"description":"Payment Required"}}}},"/market/pulse":{"get":{"operationId":"get_market_pulse","summary":"Crypto market pulse and Fear & Greed snapshot","description":"Crypto market pulse snapshot: total crypto market cap and 24-hour change, total 24-hour volume, Bitcoin and Ethereum dominance, Crypto Fear & Greed Index value and label, top 5 gainers and top 5 losers among the top 100 coins (stablecoins excluded), and a short written market summary. No query parameters. Not financial advice.","tags":["Pulse"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"totalMarketCapUsd":{"type":["number","null"]},"totalVolume24hUsd":{"type":["number","null"]},"marketCapChange24hPct":{"type":["number","null"]},"dominance":{"type":"object","properties":{"btcPct":{"type":["number","null"]},"ethPct":{"type":["number","null"]}}},"fearGreed":{"type":"object","properties":{"value":{"type":["number","null"]},"label":{"type":["string","null"]},"asOf":{"type":["string","null"]}}},"topGainers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"priceUsd":{"type":["number","null"]},"change24hPct":{"type":"number"},"marketCapRank":{"type":["number","null"]}}}},"topLosers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"priceUsd":{"type":["number","null"]},"change24hPct":{"type":"number"},"marketCapRank":{"type":["number","null"]}}}},"universe":{"type":"string"}}}}}},"402":{"description":"Payment Required"}}}},"/indicators":{"get":{"operationId":"get_indicators","summary":"Technical indicators from Hyperliquid candles","description":"Technical indicators for a crypto coin from Hyperliquid candles: RSI-14, MACD (12,26,9) line, signal and histogram, SMA 20/50/200, last close, price versus each average, and a deterministic regime label (overbought, oversold, trend-up, trend-down, range) with a short summary. Query parameters: coin (Hyperliquid perp symbol such as btc, eth, sol, xrp; default btc) and interval (1h, 4h, or 1d; default 1h). Invalid values return HTTP 400 before payment. Not financial advice.","tags":["Indicators"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"coin","required":false,"description":"Hyperliquid perpetual symbol (btc, eth, sol, xrp, …). Optional; defaults to btc.","schema":{"type":"string","default":"btc","example":"btc"},"example":"btc"},{"in":"query","name":"interval","required":false,"description":"Candle interval. Optional; defaults to 1h.","schema":{"type":"string","enum":["1h","4h","1d"],"default":"1h","example":"1h"},"example":"1h"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"coin":{"type":"string"},"interval":{"type":"string","enum":["1h","4h","1d"]},"venue":{"type":"string"},"candles":{"type":"object","properties":{"count":{"type":"number"},"lastClosedAt":{"type":["string","null"]}}},"lastClose":{"type":["number","null"]},"latestPrice":{"type":["number","null"]},"rsi14":{"type":["number","null"]},"macd":{"type":"object","properties":{"macd":{"type":["number","null"]},"signal":{"type":["number","null"]},"histogram":{"type":["number","null"]}}},"sma":{"type":"object","properties":{"sma20":{"type":["number","null"]},"sma50":{"type":["number","null"]},"sma200":{"type":["number","null"]}}},"priceVsSma":{"type":"object","properties":{"sma20":{"type":["string","null"]},"sma50":{"type":["string","null"]},"sma200":{"type":["string","null"]}}},"regime":{"type":"string","enum":["overbought","oversold","trend-up","trend-down","range","unknown"]}}}}}},"402":{"description":"Payment Required"}}}},"/btc/whales":{"get":{"operationId":"get_btc_whales","summary":"Bitcoin whale alerts from recent blocks","description":"Bitcoin whale alerts: large confirmed BTC transactions from the latest blocks (default at least 100 BTC; optional ?min= from 10 to 10000) with amount in BTC and USD, txid, block height, time, and exchange labels for a small set of known public exchange cold wallets (Binance, Bitfinex, OKX, Robinhood, Crypto.com, Gate.io; otherwise unlabeled), exchange inflow/outflow totals, and a short summary. Source: mempool.space. Not financial advice.","tags":["Whales"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"min","required":false,"description":"Minimum transaction size in BTC, 10 to 10000. Optional; defaults to 100.","schema":{"type":"number","minimum":10,"maximum":10000,"default":100,"example":100},"example":100}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"thresholdBtc":{"type":"number"},"btcUsd":{"type":["number","null"]},"scannedBlocks":{"type":["object","null"],"properties":{"from":{"type":"number"},"to":{"type":"number"},"count":{"type":"number"}}},"matched":{"type":"number"},"candidates":{"type":"object","properties":{"checked":{"type":"number"},"changeOnlySkipped":{"type":"number"},"notChecked":{"type":"number"}}},"whales":{"type":"array","items":{"type":"object","properties":{"txid":{"type":"string"},"amountBtc":{"type":"number"},"outputsBtc":{"type":"number"},"amountUsd":{"type":["number","null"]},"feeBtc":{"type":"number"},"blockHeight":{"type":"number"},"time":{"type":"string","format":"date-time"},"fromLabel":{"type":["string","null"]},"toLabel":{"type":["string","null"]},"flow":{"type":"string","enum":["exchange-inflow","exchange-outflow","exchange-internal","unlabeled"]},"topRecipient":{"type":["string","null"]},"explorer":{"type":"string"}}}},"totals":{"type":"object","properties":{"amountBtc":{"type":"number"},"exchangeInflowBtc":{"type":"number"},"exchangeOutflowBtc":{"type":"number"}}},"notes":{"type":"array","items":{"type":"string"}}}}}}},"402":{"description":"Payment Required"}}}},"/xrp/whales":{"get":{"operationId":"get_xrp_whales","summary":"XRP whale tracker: large XRP Ledger payments over the last hour","description":"XRP whale tracker: successful XRP Ledger payments of at least 1M XRP (optional ?min= 100000 to 1000000000) over the last hour (optional ?window= 15m, 30m, 1h). Uses delivered amounts and skips self-payments. Returns count, total XRP with USD estimate, the largest payment, and up to 25 payments with tx hash, sender, receiver, destination tag, amount, ledger, time, and XRPScan name labels when known. Bad params return 400 before payment. Not financial advice.","tags":["Whales","XRP Ledger"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"min","required":false,"description":"Minimum delivered amount in XRP, 100000 to 1000000000. Optional; defaults to 1000000.","schema":{"type":"integer","minimum":100000,"maximum":1000000000,"default":1000000,"example":1000000},"example":1000000},{"in":"query","name":"window","required":false,"description":"Lookback window. Optional; defaults to 1h.","schema":{"type":"string","enum":["15m","30m","1h"],"default":"1h","example":"1h"},"example":"1h"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"thresholdXrp":{"type":"number"},"xrpUsd":{"type":["number","null"]},"window":{"type":"object","properties":{"requested":{"type":"string","enum":["15m","30m","1h"]},"requestedMinutes":{"type":"number"},"coveredMinutes":{"type":"number"},"complete":{"type":"boolean"},"fromLedger":{"type":["number","null"]},"toLedger":{"type":["number","null"]},"from":{"type":["string","null"]},"to":{"type":["string","null"]},"ledgersScanned":{"type":"number"},"ledgersMissing":{"type":"number"}}},"count":{"type":"number"},"totalXrp":{"type":"number"},"totalUsd":{"type":["number","null"]},"largest":{"anyOf":[{"type":"object","properties":{"txHash":{"type":"string"},"amountXrp":{"type":"number"},"amountUsd":{"type":["number","null"]},"from":{"type":"string"},"fromLabel":{"type":["string","null"]},"to":{"type":"string"},"toLabel":{"type":["string","null"]},"destinationTag":{"type":["number","null"]},"ledgerIndex":{"type":"number"},"time":{"type":"string","format":"date-time"},"explorer":{"type":"string"}}},{"type":"null"}]},"payments":{"type":"array","items":{"type":"object","properties":{"txHash":{"type":"string"},"amountXrp":{"type":"number"},"amountUsd":{"type":["number","null"]},"from":{"type":"string"},"fromLabel":{"type":["string","null"]},"to":{"type":"string"},"toLabel":{"type":["string","null"]},"destinationTag":{"type":["number","null"]},"ledgerIndex":{"type":"number"},"time":{"type":"string","format":"date-time"},"explorer":{"type":"string"}}}},"notes":{"type":"array","items":{"type":"string"}}}}}}},"402":{"description":"Payment Required"}}}},"/xrp/wallet":{"get":{"operationId":"get_xrp_wallet","summary":"XRP Ledger wallet lookup: balance, reserve, trustlines, recent transactions","description":"XRP Ledger wallet lookup for ?address=r... (required): XRP balance, reserve and spendable XRP, sequence, domain, key account flags, trustlines (currency, issuer, balance; top 25), and the last 10 transactions with type, result, direction, amount, counterparty, fee, time, and hash. Malformed addresses return 400 before payment; unfunded accounts return 404 and are not charged. Not financial advice.","tags":["XRP Ledger"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"address","required":true,"description":"Classic XRP Ledger address starting with r.","schema":{"type":"string","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"},"example":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"address":{"type":"string"},"funded":{"type":"boolean"},"balanceXrp":{"type":"number"},"reserve":{"type":"object","properties":{"baseXrp":{"type":"number"},"perObjectXrp":{"type":"number"},"ownerCount":{"type":"number"},"totalXrp":{"type":"number"},"spendableXrp":{"type":"number"}}},"account":{"type":"object","properties":{"sequence":{"type":["number","null"]},"domain":{"type":["string","null"]},"regularKey":{"type":["string","null"]},"flags":{"type":"object","additionalProperties":{"type":"boolean"}}}},"trustlines":{"type":"object","properties":{"total":{"type":"number"},"shown":{"type":"number"},"truncated":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"issuer":{"type":"string"},"balance":{"type":"string"},"limit":{"type":"string"}}}}}},"recentTransactions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"result":{"type":["string","null"]},"direction":{"type":"string","enum":["in","out","self","other"]},"amount":{"type":["object","null"],"properties":{"value":{"type":["number","string"]},"currency":{"type":"string"},"issuer":{"type":"string"}}},"counterparty":{"type":["string","null"]},"feeXrp":{"type":["number","null"]},"ledgerIndex":{"type":["number","null"]},"time":{"type":["string","null"]},"hash":{"type":"string"},"explorer":{"type":"string"}}}},"ledgerIndex":{"type":["number","null"]},"explorer":{"type":"string"}}}}}},"402":{"description":"Payment Required"}}}},"/xrp/exchange-flows":{"get":{"operationId":"get_xrp_exchange_flows","summary":"XRP exchange inflow/outflow and net flow per exchange","description":"XRP exchange inflow/outflow from the XRP Ledger: XRP sent to and from 1,400+ labeled wallets of 45 exchanges (Binance, Coinbase, Kraken, Bitstamp, Uphold, Upbit, Bithumb, Robinhood, more). Per-exchange inflow, outflow, net flow, counts, totals, a time series, top 1M+ XRP transfers, coverage, and a short interpretation. ?period= 1h, 24h (default), 7d, 30d; optional ?exchange=. Bad params return 400 before payment. Not financial advice.","tags":["Whales","XRP Ledger"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"period","required":false,"description":"Lookback period. Optional; defaults to 24h. 7d and 30d return 400 before payment until enough history exists.","schema":{"type":"string","enum":["1h","24h","7d","30d"],"default":"24h","example":"24h"},"example":"24h"},{"in":"query","name":"exchange","required":false,"description":"Optional exchange filter (case and punctuation ignored). Omit for all tracked exchanges.","schema":{"type":"string","enum":["Binance","Binance.US","bitbank","Bitfinex","bitFlyer","Bitget","Bithumb","Bitkub","BitMart","Bitpanda","Bitrue","Bitso","Bitstamp","Bitvavo","BTC Markets","Bybit","CEX.IO","Coinbase","Coincheck","Coinone","CoinSpot","Crypto.com","eToro","Gate.io","Gemini","GMO Coin","GOPAX","HitBTC","HTX","Independent Reserve","Indodax","Korbit","Kraken","KuCoin","LBank","Luno","MEXC","OKX","Poloniex","Revolut","Robinhood","SBI VC Trade","Upbit","Uphold","WazirX"],"example":"Binance"},"example":"binance"}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"exchange":{"type":["string","null"]},"period":{"type":"object","properties":{"requested":{"type":"string","enum":["1h","24h","7d","30d"]},"hours":{"type":"number"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"coveredHours":{"type":"number"}}},"xrpUsd":{"type":["number","null"]},"totals":{"type":"object","properties":{"inflowXrp":{"type":"number"},"outflowXrp":{"type":"number"},"netflowXrp":{"type":"number"},"netflowUsd":{"type":["number","null"]},"inflowCount":{"type":"number"},"outflowCount":{"type":"number"},"exchangeToExchangeXrp":{"type":"number"},"exchangeToExchangeCount":{"type":"number"}}},"exchanges":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"inflowXrp":{"type":"number"},"outflowXrp":{"type":"number"},"netflowXrp":{"type":"number"},"netflowUsd":{"type":["number","null"]},"inflowCount":{"type":"number"},"outflowCount":{"type":"number"},"fromOtherExchangesXrp":{"type":"number"},"toOtherExchangesXrp":{"type":"number"},"walletsTracked":{"type":"number"}}}},"series":{"type":"object","properties":{"bucket":{"type":["string","null"],"enum":["hour","day",null]},"points":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"inflowXrp":{"type":"number"},"outflowXrp":{"type":"number"},"netflowXrp":{"type":"number"}}}}}},"largeTransfers":{"type":"array","items":{"type":"object","properties":{"txHash":{"type":"string"},"amountXrp":{"type":"number"},"amountUsd":{"type":["number","null"]},"direction":{"type":"string","enum":["inflow","outflow","exchange-to-exchange"]},"from":{"type":"string"},"fromExchange":{"type":["string","null"]},"to":{"type":"string"},"toExchange":{"type":["string","null"]},"ledgerIndex":{"type":"number"},"time":{"type":"string","format":"date-time"},"explorer":{"type":"string"}}}},"interpretation":{"type":"string"},"coverage":{"type":"object","properties":{"dataSince":{"type":["string","null"]},"liveSince":{"type":["string","null"]},"backfill":{"type":"string"},"exchangesTracked":{"type":"number"},"walletsTracked":{"type":"number"},"walletsPerExchange":{"type":"object","additionalProperties":{"type":"number"}},"openGaps":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}}}},"method":{"type":"string"},"labelSource":{"type":"string"}}},"notes":{"type":"array","items":{"type":"string"}}}}}}},"402":{"description":"Payment Required"}}}},"/xrp/escrow":{"get":{"operationId":"get_xrp_escrow","summary":"Ripple XRP escrow tracker: unlock schedule, re-locks, and where released XRP goes","description":"Ripple XRP escrow tracker from the XRP Ledger: total XRP locked, next unlock dates and amounts, monthly unlocks vs re-locks (how much of each release was re-escrowed vs kept), recent escrow events, and where released XRP went (labeled exchanges, Ripple wallets, unlabeled, plus a 30-day next hop) with exchange flags. Optional ?months= 1-36 (default 12). Bad params return 400 before payment. Not financial advice.","tags":["XRP Ledger"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"months","required":false,"description":"Months of monthly release history to include, 1 to 36. Optional; defaults to 12.","schema":{"type":"integer","minimum":1,"maximum":36,"default":12,"example":6},"example":6}],"responses":{"200":{"description":"Successful paid response","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string","format":"date-time"},"cachedUntil":{"type":"string","format":"date-time"},"summary":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"months":{"type":"number"},"xrpUsd":{"type":["number","null"]},"escrow":{"type":"object","properties":{"lockedXrp":{"type":"number"},"lockedUsd":{"type":["number","null"]},"escrowCount":{"type":"number"},"accountsTracked":{"type":"number"},"accountsWithEscrowsNow":{"type":"number"},"unescrowedBalanceXrp":{"type":"number"},"lockedByYear":{"type":"object","additionalProperties":{"type":"number"}},"lastUnlockDate":{"type":["string","null"]},"snapshotAt":{"type":["string","null"]},"snapshotLedger":{"type":["number","null"]}}},"nextUnlocks":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"unlockableAfter":{"type":"string"},"amountXrp":{"type":"number"},"amountUsd":{"type":["number","null"]},"escrows":{"type":"number"},"accounts":{"type":"array","items":{"type":"string"}}}}},"lastRelease":{"anyOf":[{"type":"object","properties":{"month":{"type":"string"},"releasedXrp":{"type":"number"},"cancelledReturnedXrp":{"type":"number"},"reEscrowedXrp":{"type":"number"},"keptXrp":{"type":"number"},"reEscrowedPct":{"type":["number","null"]},"reEscrowedUnlockFrom":{"type":["string","null"]},"reEscrowedUnlockTo":{"type":["string","null"]},"sentOut":{"type":"object","properties":{"totalXrp":{"type":"number"},"toExchangesXrp":{"type":"number"},"toExchanges":{"type":"object","additionalProperties":{"type":"number"}},"toRippleLabeledXrp":{"type":"number"},"toUnlabeledXrp":{"type":"number"},"destinations":{"type":"array","items":{"type":"object"}}}},"receivedFromOutsideXrp":{"type":"number"}}},{"type":"null"}]},"monthly":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"releasedXrp":{"type":"number"},"cancelledReturnedXrp":{"type":"number"},"reEscrowedXrp":{"type":"number"},"keptXrp":{"type":"number"},"reEscrowedPct":{"type":["number","null"]},"reEscrowedUnlockFrom":{"type":["string","null"]},"reEscrowedUnlockTo":{"type":["string","null"]},"sentOut":{"type":"object","properties":{"totalXrp":{"type":"number"},"toExchangesXrp":{"type":"number"},"toExchanges":{"type":"object","additionalProperties":{"type":"number"}},"toRippleLabeledXrp":{"type":"number"},"toUnlabeledXrp":{"type":"number"},"destinations":{"type":"array","items":{"type":"object"}}}},"receivedFromOutsideXrp":{"type":"number"}}}},"recentEvents":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"type":{"type":"string","enum":["unlock","relock","cancel","transfer-out","transfer-in","internal"]},"amountXrp":{"type":"number"},"account":{"type":"string"},"accountLabel":{"type":["string","null"]},"counterparty":{"type":["string","null"]},"counterpartyLabel":{"type":["string","null"]},"counterpartyCategory":{"type":["string","null"]},"unlocksAfter":{"type":"string"},"ledgerIndex":{"type":"number"},"txHash":{"type":"string"},"explorer":{"type":"string"}}}},"exchangeFlags":{"type":"array","items":{"type":"object"}},"interpretation":{"type":"string"},"coverage":{"type":"object"},"notes":{"type":"array","items":{"type":"string"}}}}}}},"402":{"description":"Payment Required"}}}},"/music/why-do-they-doubt-xrp":{"get":{"operationId":"get_music_why_do_they_doubt_xrp","summary":"Song MP3: Why Do They Doubt XRP by The XRP Army","description":"Full MP3 download of the song \"Why Do They Doubt XRP\" by The XRP Army (audio/mpeg, 1:57, about 2.8 MB). One $1 USDC payment returns the complete track as an attachment. Personal listening license only: no resale, redistribution, re-uploading, or commercial reuse (including use in videos, ads, or other content). A free 30-second preview and buy page are at https://cryptobroski.com/music/why-do-they-doubt-xrp/","tags":["Music"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.000000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"Successful paid response","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Payment Required"}}}}}}