{"openapi":"3.1.0","info":{"title":"LiquidVision API","version":"0.1.0"},"paths":{"/api/v1/liqmap/{symbol}":{"get":{"summary":"Liqmap","description":"Modeled liquidation map: estimated liquidation clusters by price level,\nbuilt from candles + open-interest deltas across leverage tiers.\n\nmodel=v3 (default since 2026-09-30): three days of position history, a\nleverage mix centred on 10-25x (tiers 5/10/20/25/50/100), no distance\ndecay. Chosen on a backtest against realized liquidations: among the price\nlevels actually traded in the next 24 h, its top quarter held 32% of the\nliquidated USD (chance 25%, v2 22%). It shows where positions sit, not where\nprice will go. model=v2 and model=v1 are kept for clients calibrated on\nthem (v2: 10/25/50/100x with distance decay; v1: the original, 220 bins).","operationId":"liqmap_api_v1_liqmap__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","default":"1d","title":"Range"}},{"name":"model","in":"query","required":false,"schema":{"type":"string","pattern":"^v[123]$","default":"v3","title":"Model"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liqmap Api V1 Liqmap  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liqmap/hl/{symbol}":{"get":{"summary":"Liqmap Hl","description":"MEASURED liquidation map for Hyperliquid: every leveraged position of\nthe 10,000 largest accounts, binned by the exchange-reported liquidationPx.\nNot a model. Partial coverage (large accounts only); the response says how\nmany accounts were read and when.","operationId":"liqmap_hl_api_v1_liqmap_hl__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","default":"1d","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liqmap Hl Api V1 Liqmap Hl  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liqmap/lighter/{symbol}":{"get":{"summary":"Liqmap Lighter","description":"MEASURED liquidation map for Lighter: every leveraged position of the\naccounts we have read, binned by Lighter's own liquidation_price. Not a model.\nCoverage grows with time (accounts are discovered from the public trade stream);\nthe response says how many accounts it holds and when they were read.","operationId":"liqmap_lighter_api_v1_liqmap_lighter__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","default":"1d","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liqmap Lighter Api V1 Liqmap Lighter  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liqheat/{symbol}":{"get":{"summary":"Liqheat","description":"Modeled liquidation heatmap: cluster intensity per price bin over time,\nwith the price path overlaid.","operationId":"liqheat_api_v1_liqheat__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","default":"1d","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liqheat Api V1 Liqheat  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/funding":{"get":{"summary":"Funding","description":"Latest funding rate per exchange/symbol.\n\nContracts that settle faster than every 8h (Kraken and Hyperliquid hourly,\nsome 4h alts) also carry `funding_rate_8h_avg`: the mean of their rate over\nthe last 8 hours. Annualizing a one-hour print x8760 next to everyone\nelse's 8-hour figure put those venues at both ends of every board; use the\naverage for any cross-venue comparison.","operationId":"funding_api_v1_funding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Funding Api V1 Funding Get"}}}}}}},"/api/v1/microstructure":{"get":{"summary":"Microstructure","description":"Cross-venue spread and top-of-book liquidity, measured over a band narrow\nenough that every venue's stream actually captured it.","operationId":"microstructure_api_v1_microstructure_get","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":30,"default":240,"title":"Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Microstructure Api V1 Microstructure Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oi/regime":{"get":{"summary":"Oi Regime","description":"Positioning regime per coin: price direction crossed with OI direction,\nwhich separates a rally new money is buying from one that is only shorts\nbuying back.","operationId":"oi_regime_api_v1_oi_regime_get","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":10080,"minimum":30,"default":240,"title":"Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Oi Regime Api V1 Oi Regime Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liquidations/cascades":{"get":{"summary":"Liquidation Cascades","description":"Liquidations grouped into discrete cascade events.\n\nEach event carries when it started, how long it ran, its peak minute, how\nmany multiples of that symbol's own normal minute it was, and what price\ndid while it happened.","operationId":"liquidation_cascades_api_v1_liquidations_cascades_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":168,"title":"Hours"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":60,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liquidation Cascades Api V1 Liquidations Cascades Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/funding/dispersion":{"get":{"summary":"Funding Dispersion","description":"Coins ranked by how far funding disagrees ACROSS venues — see\napp/services/dispersion.py for what makes the ranking trustworthy.","operationId":"funding_dispersion_api_v1_funding_dispersion_get","parameters":[{"name":"min_venues","in":"query","required":false,"schema":{"type":"integer","maximum":12,"minimum":2,"default":4,"title":"Min Venues"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":60,"title":"Limit"}},{"name":"window","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":15,"description":"minutes to smooth over","default":60,"title":"Window"},"description":"minutes to smooth over"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Funding Dispersion Api V1 Funding Dispersion Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/funding/arbitrage":{"get":{"summary":"Funding Arbitrage","description":"Funding carry, REALIZED: for each coin the pair (short the richest funding, long the\ncheapest) and what it earned from funding over the last 7 and 30 days from our hourly\narchive, the share of hours it was net positive, the spread right now and the mark gap\nbetween the two venues. Gross: before fees, basis and margin capital.","operationId":"funding_arbitrage_api_v1_funding_arbitrage_get","parameters":[{"name":"min_venues","in":"query","required":false,"schema":{"type":"integer","maximum":12,"minimum":2,"default":3,"title":"Min Venues"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":60,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Funding Arbitrage Api V1 Funding Arbitrage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stocks/tokenized":{"get":{"summary":"Stocks Tokenized","description":"MEASURED: tokenized stocks, indices, ETFs, commodities, FX, rates and pre-IPO names as\nperpetual futures on Lighter and Hyperliquid builder (HIP-3) markets: one row per underlying\nwith every venue's mark, open interest, 24 h volume and funding, and the price gap between\nvenues. Not in the crypto venue totals.","operationId":"stocks_tokenized_api_v1_stocks_tokenized_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stocks Tokenized Api V1 Stocks Tokenized Get"}}}}}}},"/api/v1/onchain":{"get":{"summary":"Onchain","description":"MEASURED: on-chain perp venues grouped by chain (Arbitrum: GMX, Ostium, gTrade; Hyperliquid L1:\nown listing + HIP-3 builder markets; Lighter), each with open interest and 24h liquidations, next to\nthe CEX total for the tracked contracts.","operationId":"onchain_api_v1_onchain_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Onchain Api V1 Onchain Get"}}}}}}},"/api/v1/depth/{exchange}/{symbol}":{"get":{"summary":"Depth","operationId":"depth_api_v1_depth__exchange___symbol__get","parameters":[{"name":"exchange","in":"path","required":true,"schema":{"type":"string","title":"Exchange"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Depth Api V1 Depth  Exchange   Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coins":{"get":{"summary":"Coins","description":"Top-100 coins by market cap, merged with funding and OI where tracked.","operationId":"coins_api_v1_coins_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Coins Api V1 Coins Get"}}}}}}},"/api/v1/stocks":{"get":{"summary":"Stocks","description":"Crypto-related equities and spot ETF quotes (15-min delayed).","operationId":"stocks_api_v1_stocks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Stocks Api V1 Stocks Get"}}}}}}},"/api/v1/traders":{"get":{"summary":"Traders","description":"Top lead traders (OKX copy trading): PnL, win rate, AUM, live open\npositions and recently closed trades.","operationId":"traders_api_v1_traders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Traders Api V1 Traders Get"}}}}}}},"/api/v1/dexpools/{symbol}":{"get":{"summary":"Dexpools","description":"Top on-chain liquidity pools for a token (DexScreener), junk pairs\nfiltered out. 10-minute cache.","operationId":"dexpools_api_v1_dexpools__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dexpools Api V1 Dexpools  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/unlocks":{"get":{"summary":"Unlocks","description":"Upcoming token unlocks (nearest first): next unlock date and token\namount per pool coin, from public vesting schedules.","operationId":"unlocks_api_v1_unlocks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Unlocks Api V1 Unlocks Get"}}}}}}},"/api/v1/sparks":{"get":{"summary":"Sparks","description":"24h price sparklines (30-min closes) for every pool coin in one blob.","operationId":"sparks_api_v1_sparks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sparks Api V1 Sparks Get"}}}}}}},"/api/v1/oi":{"get":{"summary":"Open Interest","description":"Latest open interest per exchange/symbol.","operationId":"open_interest_api_v1_oi_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Open Interest Api V1 Oi Get"}}}}}}},"/api/v1/oi/changes":{"get":{"summary":"Oi Changes","description":"24h open-interest change % per coin, summed across every venue we\narchive. Competitors show this column in their main market table; we can\nbecause the top-100 OI archive covers all venues.","operationId":"oi_changes_api_v1_oi_changes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Oi Changes Api V1 Oi Changes Get"}}}}}}},"/api/v1/oi/history/{symbol}":{"get":{"summary":"Open Interest History","operationId":"open_interest_history_api_v1_oi_history__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":20160,"minimum":5,"default":240,"title":"Minutes"}},{"name":"step","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":0,"description":"bucket minutes; 0 = auto","default":0,"title":"Step"},"description":"bucket minutes; 0 = auto"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Open Interest History Api V1 Oi History  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/funding/history/{symbol}":{"get":{"summary":"Funding History","description":"Bucketed funding-rate history per exchange for one symbol.","operationId":"funding_history_api_v1_funding_history__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":20160,"minimum":5,"default":1440,"title":"Minutes"}},{"name":"step","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":0,"description":"bucket minutes; 0 = auto","default":0,"title":"Step"},"description":"bucket minutes; 0 = auto"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Funding History Api V1 Funding History  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flows":{"get":{"summary":"Flows","description":"Derivatives cash flow: net USD of positions opened or closed per exchange\nover 1h/4h/24h windows: the change in open interest in COINS, valued at the\ncurrent price. (A plain USD OI difference reports +$300M on 100,000 BTC\nheld flat through a +3% day.)","operationId":"flows_api_v1_flows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Flows Api V1 Flows Get"}}}}}}},"/api/v1/klines/{symbol}":{"get":{"summary":"Klines","description":"Price candles for a pool symbol (Binance perp, Bybit fallback,\nx1000 contracts rescaled). For the coin detail page chart.","operationId":"klines_api_v1_klines__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","default":"1d","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Klines Api V1 Klines  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oiboard/{symbol}":{"get":{"summary":"Oi Board","description":"Per-venue OI ranking for one symbol: OI coins/USD, share, 1h/4h/24h\nchange and USD flow, OI/24h-volume ratio.","operationId":"oi_board_api_v1_oiboard__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Oi Board Api V1 Oiboard  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/longshort":{"get":{"summary":"Long Short","description":"Latest global long/short account ratio per exchange/symbol.","operationId":"long_short_api_v1_longshort_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Long Short Api V1 Longshort Get"}}}}}}},"/api/v1/heatmap/{exchange}/{symbol}":{"get":{"summary":"Heatmap","description":"Order book liquidity grid: time columns x price rows, qty per cell.","operationId":"heatmap_api_v1_heatmap__exchange___symbol__get","parameters":[{"name":"exchange","in":"path","required":true,"schema":{"type":"string","title":"Exchange"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":1,"default":30,"title":"Minutes"}},{"name":"time_step","in":"query","required":false,"schema":{"type":"integer","maximum":3600,"minimum":5,"description":"seconds per column","default":10,"title":"Time Step"},"description":"seconds per column"},{"name":"price_buckets","in":"query","required":false,"schema":{"type":"integer","maximum":400,"minimum":10,"default":120,"title":"Price Buckets"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Heatmap Api V1 Heatmap  Exchange   Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liquidations/summary":{"get":{"summary":"Liquidations Summary","description":"Aggregated liquidation stats: totals for standard windows, per-symbol\n(treemap), per-exchange, and a 30-min bucketed series.","operationId":"liquidations_summary_api_v1_liquidations_summary_get","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":10080,"minimum":1,"default":1440,"title":"Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Liquidations Summary Api V1 Liquidations Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/liquidations":{"get":{"summary":"Liquidations","description":"Raw liquidation events, NEWEST FIRST, at most `limit` rows (default 500).\nMarket-wide that is a few minutes in a busy hour, so for one coin pass\n`symbol` (and `min_usd` to keep only the large ones); for full history use\n/export/liquidations.","operationId":"liquidations_api_v1_liquidations_get","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":1,"default":60,"title":"Minutes"}},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9]{2,20}$"},{"type":"null"}],"title":"Symbol"}},{"name":"min_usd","in":"query","required":false,"schema":{"type":"number","minimum":0,"default":0,"title":"Min Usd"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Liquidations Api V1 Liquidations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderflow/footprint/{symbol}":{"get":{"summary":"Orderflow Footprint","description":"Footprint: per candle x price bin, taker buy/sell USD volume and delta.\nCore symbols (Binance, Bybit, OKX, Bitget, Gate trade streams).","operationId":"orderflow_footprint_api_v1_orderflow_footprint__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":10080,"minimum":15,"default":240,"title":"Minutes"}},{"name":"step","in":"query","required":false,"schema":{"type":"integer","maximum":240,"minimum":1,"description":"candle minutes","default":15,"title":"Step"},"description":"candle minutes"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Orderflow Footprint Api V1 Orderflow Footprint  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderflow/cvd/{symbol}":{"get":{"summary":"Orderflow Cvd","description":"Cumulative volume delta split by trade size: retail (<$10K), mid\n(<$100K), large (<$1M), whale (>$1M). Divergence between whale and retail\nCVD is the usual smart-money reading, with one caveat: buckets are per published row, and only\nBinance publishes order-level aggregates, so compare buckets within one exchange.","operationId":"orderflow_cvd_api_v1_orderflow_cvd__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":10080,"minimum":15,"default":240,"title":"Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Orderflow Cvd Api V1 Orderflow Cvd  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orderflow/spoof/{symbol}":{"get":{"summary":"Orderflow Spoof","description":"Order-book wall lifecycle: large resting levels (>8x median) classified\nas active_wall / absorbed / pulled_wall / suspected_spoof by whether trades\nactually executed into them before they vanished. Heuristic, not proof.","operationId":"orderflow_spoof_api_v1_orderflow_spoof__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"binance","title":"Exchange"}},{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":10,"default":60,"title":"Minutes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Orderflow Spoof Api V1 Orderflow Spoof  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/brief/{symbol}":{"get":{"summary":"Market Brief","description":"Deterministic market brief: liquidations, funding extremes, OI by venue,\nnet position flows, modeled risk zones, top-trader positioning — one JSON.\nFeed it to your own LLM, or use POST /ask to get our analyst's answer.","operationId":"market_brief_api_v1_brief__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Market Brief Api V1 Brief  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ask":{"post":{"summary":"Ask Analyst","description":"AI analyst: ask 'Why did BTC drop 4%?' and get a grounded answer built\nfrom live derivatives data. Daily quota: 5 anon / 25 free key / 300 pro /\n2000 bot.","operationId":"ask_analyst_api_v1_ask_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AskBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Ask Analyst Api V1 Ask Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/status":{"get":{"summary":"Status","description":"Live health per venue: age of the newest funding / open-interest\nsnapshot and of the newest liquidation event, plus archive depth and\nprocess uptime. What a status page or a monitoring bot should poll.","operationId":"status_api_v1_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Status Api V1 Status Get"}}}}}}},"/api/v1/funding/settlements/{symbol}":{"get":{"summary":"Funding Settlements","description":"SETTLED funding rates, one row per settlement, from the exchanges' own\nhistory endpoints (Binance, Bybit) — back-filled ~2 years for every pool\ncoin. This is the backtest series; /funding/history is the live 10-second\narchive since 2026-07-18.","operationId":"funding_settlements_api_v1_funding_settlements__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":730,"minimum":1,"default":365,"title":"Days"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Funding Settlements Api V1 Funding Settlements  Symbol  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/arbitrum":{"get":{"summary":"Arbitrum","description":"Arbitrum perps board (GMX v2 today): per coin, GMX open interest and its\nshare of every venue we track, GMX funding next to the CEX median on the\nsame 8h basis, and on-chain liquidations over 24h. Built for the question\n'how does Arbitrum position against the CEXs right now'.","operationId":"arbitrum_api_v1_arbitrum_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Arbitrum Api V1 Arbitrum Get"}}}}}}},"/api/v1/accuracy":{"get":{"summary":"Accuracy","description":"Public accuracy audit: our open interest and funding against the\nexchanges' own endpoints (Binance, Bybit, OKX, Hyperliquid; BTC/ETH/SOL),\nsampled every 10 minutes, with 24h mean/max discrepancy and the age of\nour snapshot, plus the liquidation-map validation against realized\nliquidations. What \"exchange-exact\" means, measured.","operationId":"accuracy_api_v1_accuracy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Accuracy Api V1 Accuracy Get"}}}}}}},"/api/v1/export":{"get":{"summary":"Export Catalog","description":"Historical datasets available for download, their coverage, and what\neach tier may export. Download: /export/{dataset}?start=&end=&symbol=&exchange=","operationId":"export_catalog_api_v1_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Export Catalog Api V1 Export Get"}}}}}}},"/api/v1/export/packages":{"get":{"summary":"Export Packages","description":"History PACKAGES: one Parquet file per dataset per month (liquidations, funding hourly and\nsettlements, open interest hourly, Hyperliquid and Lighter positions), with rows, size and sha256.\nPro keys may download this month and the previous one; Bot keys every month since 2026-07.","operationId":"export_packages_api_v1_export_packages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Export Packages Api V1 Export Packages Get"}}}}}}},"/api/v1/export/package/{dataset}/{month}":{"get":{"summary":"Export Package","description":"Download one monthly Parquet package (see /export/packages). Pro: this month and the previous\none; Bot: all. Free keys: 402.","operationId":"export_package_api_v1_export_package__dataset___month__get","parameters":[{"name":"dataset","in":"path","required":true,"schema":{"type":"string","title":"Dataset"}},{"name":"month","in":"path","required":true,"schema":{"type":"string","title":"Month"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/x402":{"get":{"summary":"X402 Info","description":"Pay-per-call for agents without an account: which resources accept a signed USDC payment\n(x402 protocol, Arbitrum One), prices, the receiving address and the facilitator.","operationId":"x402_info_api_v1_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response X402 Info Api V1 X402 Get"}}}}}}},"/api/v1/export/{dataset}":{"get":{"summary":"Export Dataset","description":"Download a historical dataset as CSV. Free and anonymous: last 24h,\n10k rows. Pro: any 31-day window. Bot: full history.","operationId":"export_dataset_api_v1_export__dataset__get","parameters":[{"name":"dataset","in":"path","required":true,"schema":{"type":"string","title":"Dataset"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date/time, UTC","title":"Start"},"description":"ISO date/time, UTC"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date/time, UTC","title":"End"},"description":"ISO date/time, UTC"},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9]{2,20}$"},{"type":"null"}],"title":"Symbol"}},{"name":"exchange","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[a-z]{2,15}$"},{"type":"null"}],"title":"Exchange"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":5000000,"minimum":1},{"type":"null"}],"description":"fewer rows than the tier allows","title":"Limit"},"description":"fewer rows than the tier allows"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks":{"get":{"summary":"Webhook List","operationId":"webhook_list_api_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Webhook List Api V1 Webhooks Get"}}}}}},"post":{"summary":"Webhook Create","description":"Subscribe a URL to alerts (Pro: 3, Bot: 20). type=cascade: a liquidation\ncascade just ended, over min_usd and x_normal. type=hl_near_liq: a Hyperliquid\nwhale position within max_dist_pct of its liquidation price, over min_usd.\ntype=cluster_sweep: price reached one of the 10 largest modeled liquidation-map\nclusters (modeled size over min_usd); sent 3 min later with modeled vs realized USD.\nThe response carries the signing secret ONCE; verify X-LiquidVision-Signature\n= hex HMAC-SHA256(secret, raw body).","operationId":"webhook_create_api_v1_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Webhook Create Api V1 Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{wid}":{"delete":{"summary":"Webhook Delete","operationId":"webhook_delete_api_v1_webhooks__wid__delete","parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"integer","title":"Wid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Webhook Delete Api V1 Webhooks  Wid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{wid}/test":{"post":{"summary":"Webhook Test","description":"Send a signed sample payload to the subscription's URL now.","operationId":"webhook_test_api_v1_webhooks__wid__test_post","parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"integer","title":"Wid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Webhook Test Api V1 Webhooks  Wid  Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/hl/whales":{"get":{"summary":"Hl Whales","description":"MEASURED: leveraged positions of the 10,000 largest Hyperliquid accounts with\nthe exchange-reported liquidation price, closest to liquidation first\n(sort=value for largest first). Filters: coin, side, min_usd, max_dist_pct.","operationId":"hl_whales_api_v1_hl_whales_get","parameters":[{"name":"coin","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9]{1,20}$"},{"type":"null"}],"title":"Coin"}},{"name":"side","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(long|short)$"},{"type":"null"}],"title":"Side"}},{"name":"min_usd","in":"query","required":false,"schema":{"type":"number","minimum":0,"default":100000,"title":"Min Usd"}},{"name":"max_dist_pct","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"type":"null"}],"title":"Max Dist Pct"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(distance|value)$","default":"distance","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Hl Whales Api V1 Hl Whales Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lighter/whales":{"get":{"summary":"Lighter Whales","description":"MEASURED: leveraged positions on Lighter with the exchange-reported liquidation\nprice, closest to liquidation first (sort=value for largest first). address is the\nLighter account index, l1_address the wallet. Filters: coin, side, min_usd, max_dist_pct.","operationId":"lighter_whales_api_v1_lighter_whales_get","parameters":[{"name":"coin","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9]{1,20}$"},{"type":"null"}],"title":"Coin"}},{"name":"side","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(long|short)$"},{"type":"null"}],"title":"Side"}},{"name":"min_usd","in":"query","required":false,"schema":{"type":"number","minimum":0,"default":100000,"title":"Min Usd"}},{"name":"max_dist_pct","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"type":"null"}],"title":"Max Dist Pct"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(distance|value)$","default":"distance","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Lighter Whales Api V1 Lighter Whales Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/hl/archive":{"get":{"summary":"Hl Archive","description":"What the Hyperliquid whale-position archive holds: rows, snapshots,\naccounts, coverage dates. Download via /export/hl_positions.","operationId":"hl_archive_api_v1_hl_archive_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Hl Archive Api V1 Hl Archive Get"}}}}}}},"/api/v1/hl/account/{address}":{"get":{"summary":"Hl Account","description":"One Hyperliquid account: live positions with liquidation prices (read from\nHyperliquid now, cached 60 s) and its archived snapshots. History depth by\ntier: free 24 h, Pro 31 days, Bot everything since 2026-09-27.","operationId":"hl_account_api_v1_hl_account__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Hl Account Api V1 Hl Account  Address  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/status/uptime":{"get":{"summary":"Status Uptime","description":"Ingestion uptime per day for the last 90 days, measured from the archive\nitself: a minute is UP when fresh BTCUSDT funding data from Binance, Bybit\nor OKX was written in it. Covers collectors, process and database together;\nrestarts shorter than a minute do not show. Gaps of 5+ minutes are listed.","operationId":"status_uptime_api_v1_status_uptime_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Status Uptime Api V1 Status Uptime Get"}}}}}}},"/api/v1/report/weekly":{"get":{"summary":"Report Weekly","description":"The week in crypto derivatives, computed from the archive: liquidations\n(total, long/short, by venue, coin and day, largest orders) against the week\nbefore, funding and open interest for BTC/ETH/SOL, Hyperliquid whales\nnearest liquidation. `text` holds the same facts as plain lines.","operationId":"report_weekly_api_v1_report_weekly_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Report Weekly Api V1 Report Weekly Get"}}}}}}},"/api/v1/hl/markets":{"get":{"summary":"Hl Builder Markets","description":"Builder-deployed (HIP-3) perp markets on Hyperliquid: every third-party\ndex with its markets, open interest, 24h volume and hourly funding. Equity\nindices, stocks, commodities and pre-IPO names that trade on Hyperliquid's\nengine but are not in its own listing.","operationId":"hl_builder_markets_api_v1_hl_markets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Hl Builder Markets Api V1 Hl Markets Get"}}}}}}},"/api/v1/auth/register":{"post":{"summary":"Register","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credentials"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Register Api V1 Auth Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"summary":"Login","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credentials"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Login Api V1 Auth Login Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/me":{"get":{"summary":"Me","operationId":"me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Me Api V1 Auth Me Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/google/config":{"get":{"summary":"Google Config","operationId":"google_config_api_v1_auth_google_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Google Config Api V1 Auth Google Config Get"}}}}}}},"/api/v1/auth/google":{"post":{"summary":"Google Login","description":"Sign in with Google: verify the ID token against Google's tokeninfo,\nthen find-or-create the user by email.","operationId":"google_login_api_v1_auth_google_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Google Login Api V1 Auth Google Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/pay/create":{"post":{"summary":"Pay Create","operationId":"pay_create_api_v1_auth_pay_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pay Create Api V1 Auth Pay Create Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/pay/{payment_id}":{"get":{"summary":"Pay Status","operationId":"pay_status_api_v1_auth_pay__payment_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"integer","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pay Status Api V1 Auth Pay  Payment Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/apikey/rotate":{"post":{"summary":"Rotate Api Key","operationId":"rotate_api_key_api_v1_auth_apikey_rotate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Rotate Api Key Api V1 Auth Apikey Rotate Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/trial":{"post":{"summary":"Start Trial","description":"One free Pro week per account, no payment: history exports over any\n31-day window and 3 webhook alerts. After 7 days the key drops back to free\non its own (tier_expires). Not for accounts that are or were paid.","operationId":"start_trial_api_v1_auth_trial_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Start Trial Api V1 Auth Trial Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/agent-key":{"post":{"summary":"Agent Key","operationId":"agent_key_api_v1_auth_agent_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentKeyBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Key Api V1 Auth Agent Key Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentKeyBody":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"AgentKeyBody"},"AskBody":{"properties":{"question":{"type":"string","maxLength":500,"minLength":3,"title":"Question"},"symbol":{"type":"string","pattern":"^[A-Za-z0-9]{2,20}$","title":"Symbol","default":"BTCUSDT"}},"type":"object","required":["question"],"title":"AskBody"},"Credentials":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password"}},"type":"object","required":["email","password"],"title":"Credentials"},"GoogleBody":{"properties":{"credential":{"type":"string","title":"Credential"}},"type":"object","required":["credential"],"title":"GoogleBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PayBody":{"properties":{"plan":{"type":"string","pattern":"^(pro|bot)(_year)?$","title":"Plan"}},"type":"object","required":["plan"],"title":"PayBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebhookBody":{"properties":{"type":{"type":"string","pattern":"^(cascade|hl_near_liq|cluster_sweep)$","title":"Type"},"url":{"type":"string","maxLength":500,"minLength":10,"title":"Url"},"symbol":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9]{2,20}$"},{"type":"null"}],"title":"Symbol"},"min_usd":{"type":"number","minimum":10000.0,"title":"Min Usd","default":1000000},"x_normal":{"type":"number","minimum":2.0,"title":"X Normal","default":8},"max_dist_pct":{"type":"number","maximum":25.0,"exclusiveMinimum":0.0,"title":"Max Dist Pct","default":3}},"type":"object","required":["type","url"],"title":"WebhookBody"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}