{"openapi":"3.1.0","info":{"title":"Perp Gap API – Prediction Market Implied Odds (Hyperliquid HIP-4)","version":"1.3.0","contact":{"name":"Perp Gap API","url":"https://perp-gap-api.perpgap.workers.dev/","email":"webexpert@mail.grokbot.com"},"description":"Hyperliquid HIP-4 outcome markets (binary 'price above X at time T') compared with the probability implied by the Hyperliquid perp price and realized volatility. Every response has bid, ask and depth, filters empty books, and is labelled data, not advice. Pay per call with x402 in USDC on Base or Solana. Free 400/404 precheck: bad input or missing data is never charged.","x-guidance":"Call GET /pm/markets (free) to see covered assets, then GET /pm/implied?asset=BTC ($0.02) for one asset or GET /pm/scan ($0.05) for a ranked list across all markets. MCP: list_pm_markets, get_pm_implied, get_pm_scan at /mcp.","x-category":"FINANCIAL_ANALYSIS","x-example-prompts":["What probability does the market give BTC finishing above 82,268 on Oct 18, and is that cheap vs the perp?","Find Hyperliquid prediction markets where the odds are off by more than 3 points and the spread is under 10.","Is the SP500 7740 outcome overpriced?"],"x-health-check-url":"https://perp-gap-api.perpgap.workers.dev/health","x-support-url":"https://perp-gap-api.perpgap.workers.dev/","x-payment-networks":[{"network":"eip155:8453","asset":"USDC","payTo":"0x2d82dcB9cC3a168d9Ab25b62C1E33E278A51254F"},{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","payTo":"5MoL8HNnvZUogGrqiF4T1StmAUpdU7ERA2GUJ7gLrEja"}]},"externalDocs":{"description":"Overview, MCP server and examples","url":"https://perp-gap-api.perpgap.workers.dev/"},"servers":[{"url":"https://perp-gap-api.perpgap.workers.dev"}],"tags":[{"name":"prediction-markets","description":"Hyperliquid HIP-4 outcome markets vs perp-implied probability"},{"name":"meta","description":"Free health"}],"paths":{"/pm/markets":{"get":{"operationId":"listPmMarkets","tags":["prediction-markets"],"security":[],"summary":"Free: covered Hyperliquid binary price outcome markets with bid/ask/depth","description":"Free. Use first, for free, to see which Hyperliquid HIP-4 outcome markets and underlying assets are covered (ids, strikes, expiries, settlement source, bid, ask, depth; empty books filtered) before calling the paid /pm/implied or /pm/scan endpoints. Data, not advice.","parameters":[{"name":"asset","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9:]{1,16}$"},"example":"BTC","description":"Optional underlying filter, e.g. BTC or SP500."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["crypto","stocks","all"],"default":"all"},"example":"crypto","description":"Optional: crypto, stocks or all."}],"responses":{"200":{"description":"Market catalog","content":{"application/json":{"schema":{"type":"object","properties":{"generated_at_iso":{"type":"string"},"cache_updated_iso":{"type":"string"},"count":{"type":"integer"},"live_markets":{"type":"integer"},"filtered_out_empty_books":{"type":"integer"},"assets":{"type":"object","additionalProperties":{"type":"integer"}},"markets":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"integer","description":"Hyperliquid outcome id (Yes token = coin #<id>0)"},"asset":{"type":"string"},"perp":{"type":"string","description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META"},"kind":{"type":"string","enum":["crypto","stocks"]},"question":{"type":"string"},"strike":{"type":"number"},"expiry":{"type":"string","format":"date-time"},"hours_to_expiry":{"type":"number"},"settlement":{"type":"object","properties":{"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]},"side":{"type":"string"}}},"bid":{"type":"number","description":"Best Yes bid (probability, 0-1)"},"ask":{"type":"number","description":"Best Yes ask (probability, 0-1)"},"mid":{"type":"number"},"spread_pp":{"type":"number"},"bid_size":{"type":"number"},"ask_size":{"type":"number"},"depth_usd":{"type":"object","description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"bid":{"type":"number"},"ask":{"type":"number"},"window_pp":{"type":"number"},"levels":{"type":"integer"}}},"liquid":{"type":"boolean","description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)"},"book_ts":{"type":"string","format":"date-time"},"book_age_s":{"type":"integer"},"spot_mid":{"type":["number","null"]},"realized_vol_7d":{"type":["number","null"]},"model_prob":{"type":["number","null"],"description":"Model P(price > strike at expiry), 0-1"},"edge_vs_bid_pp":{"type":["number","null"],"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value"},"edge_vs_ask_pp":{"type":["number","null"],"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value"},"best_edge_pp":{"type":["number","null"]},"signal":{"type":"string","enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"]}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"]}},"next":{"type":"string"},"method":{"type":"string"},"source":{"type":"string"},"label":{"type":"string","const":"data, not advice"},"disclaimer":{"type":"string"}},"required":["markets","label"]},"example":{"generated_at_iso":"2026-10-17T13:11:28Z","cache_updated_iso":"2026-10-17T13:10:56Z","count":1,"live_markets":110,"filtered_out_empty_books":73,"assets":{"SP500":1},"markets":[{"outcome":11676,"asset":"SP500","perp":"xyz:SP500","kind":"stocks","question":"SP500 above 7730 at 2026-10-19 20:00:00 UTC","strike":7730,"expiry":"2026-10-19T20:00:00Z","hours_to_expiry":54.81,"settlement":{"source":"the Pyth US500 index price","window_seconds":90,"side":"Yes pays 1 USDC if the price is above the strike at expiry"},"bid":0.0676,"ask":0.1656,"mid":0.1166,"spread_pp":9.8,"bid_size":531,"ask_size":470,"depth_usd":{"bid":96.64,"ask":160.58,"window_pp":5,"levels":5},"liquid":true,"book_ts":"2026-10-17T13:11:38Z","book_age_s":0}],"next":"GET /pm/implied?asset=BTC ($0.02) adds the perp-implied probability and edge; GET /pm/scan ($0.05) ranks every liquid market by edge.","source":"Hyperliquid info API (outcomeMeta, l2Book, allMids)","label":"data, not advice","disclaimer":"Data, not financial advice. Not an offer or solicitation; Hyperliquid outcome markets are not available to US or other excluded persons."}}}},"400":{"description":"Bad parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"kind must be crypto, stocks or all","hint":"No payment was requested."}}}},"404":{"description":"Cache not built yet","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"no_data: order-book cache not built yet (refreshes every 15 minutes)","hint":"No payment was requested."}}}}}}},"/pm/implied":{"get":{"operationId":"getPmImplied","tags":["prediction-markets"],"summary":"Prediction-market odds vs perp-implied probability for one asset (Hyperliquid HIP-4)","description":"Use when an agent must decide if a Hyperliquid prediction market on a crypto or stock price (e.g. 'BTC above 82k on Oct 19', 'SP500 above 7730') is cheap or expensive. Returns each live outcome's bid, ask and depth, the probability implied by the live perp price and 7d realized vol, edge in pp vs bid and ask, and a liquidity flag. Empty books are filtered. Errors: 400 bad input, 404 no live market (both free, never charged), 402, 502. Data, not advice. Costs $0.02 USDC per call (x402, Base or Solana). Free 400/404 precheck before any payment.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"x402":{}}]},"parameters":[{"name":"asset","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9:]{1,16}$"},"example":"BTC","description":"Underlying perp: BTC, ETH, HYPE, ZEC or trade.xyz perps like SP500, XYZ100, META, TSLA, CL, GOLD (xyz: prefix optional). Case-insensitive. Default BTC when neither asset nor outcome is given."},{"name":"outcome","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{1,9}$"},"example":"11676","description":"Optional Hyperliquid outcome id to price a single market (see free GET /pm/markets)."},{"name":"min_depth_usd","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","default":"0"},"example":"50","description":"Optional. Hide markets with less than this USDC resting within 5 pp of the touch on either side. Default 0 (empty books are always hidden)."}],"responses":{"200":{"description":"Priced outcome markets","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string"},"generated_at_iso":{"type":"string","format":"date-time"},"spot":{"type":"object","properties":{"perp":{"type":"string"},"mid":{"type":["number","null"]},"live":{"type":"boolean"},"realized_vol_7d":{"type":["number","null"]},"vol_as_of":{"type":["string","null"]}}},"count":{"type":"integer"},"filtered_out_empty_or_thin":{"type":"integer"},"min_depth_usd":{"type":"number"},"markets":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"integer","description":"Hyperliquid outcome id (Yes token = coin #<id>0)"},"asset":{"type":"string"},"perp":{"type":"string","description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META"},"kind":{"type":"string","enum":["crypto","stocks"]},"question":{"type":"string"},"strike":{"type":"number"},"expiry":{"type":"string","format":"date-time"},"hours_to_expiry":{"type":"number"},"settlement":{"type":"object","properties":{"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]},"side":{"type":"string"}}},"bid":{"type":"number","description":"Best Yes bid (probability, 0-1)"},"ask":{"type":"number","description":"Best Yes ask (probability, 0-1)"},"mid":{"type":"number"},"spread_pp":{"type":"number"},"bid_size":{"type":"number"},"ask_size":{"type":"number"},"depth_usd":{"type":"object","description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"bid":{"type":"number"},"ask":{"type":"number"},"window_pp":{"type":"number"},"levels":{"type":"integer"}}},"liquid":{"type":"boolean","description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)"},"book_ts":{"type":"string","format":"date-time"},"book_age_s":{"type":"integer"},"spot_mid":{"type":["number","null"]},"realized_vol_7d":{"type":["number","null"]},"model_prob":{"type":["number","null"],"description":"Model P(price > strike at expiry), 0-1"},"edge_vs_bid_pp":{"type":["number","null"],"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value"},"edge_vs_ask_pp":{"type":["number","null"],"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value"},"best_edge_pp":{"type":["number","null"]},"signal":{"type":"string","enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"]}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"]}},"signal_rule":{"type":"string"},"method":{"type":"string"},"source":{"type":"string"},"label":{"type":"string","const":"data, not advice"},"disclaimer":{"type":"string"}},"required":["asset","markets","label","disclaimer"]},"example":{"asset":"SP500","generated_at_iso":"2026-10-17T13:11:38Z","spot":{"perp":"xyz:SP500","mid":7653.45,"live":true,"realized_vol_7d":0.1073,"vol_as_of":"2026-10-17T13:10:10Z"},"count":1,"filtered_out_empty_or_thin":0,"min_depth_usd":0,"markets":[{"outcome":11676,"asset":"SP500","perp":"xyz:SP500","kind":"stocks","question":"SP500 above 7730 at 2026-10-19 20:00:00 UTC","strike":7730,"expiry":"2026-10-19T20:00:00Z","hours_to_expiry":54.81,"settlement":{"source":"the Pyth US500 index price","window_seconds":90,"side":"Yes pays 1 USDC if the price is above the strike at expiry"},"bid":0.0676,"ask":0.1656,"mid":0.1166,"spread_pp":9.8,"bid_size":531,"ask_size":470,"depth_usd":{"bid":96.64,"ask":160.58,"window_pp":5,"levels":5},"liquid":true,"book_ts":"2026-10-17T13:11:38Z","book_age_s":0,"spot_mid":7653.45,"realized_vol_7d":0.1073,"model_prob":0.1196,"edge_vs_bid_pp":-5.2,"edge_vs_ask_pp":-4.6,"best_edge_pp":-4.6,"signal":"fair"}],"method":"P(S_T > K) under a lognormal model with zero drift, S = live Hyperliquid perp mid, sigma = 7-day realized vol from Hyperliquid 1h candles (annualized x sqrt(8760)). No options data. Edges use executable bid/ask, never mid.","source":"Hyperliquid info API (outcomeMeta, l2Book, allMids, candleSnapshot)","label":"data, not advice","disclaimer":"Data, not financial advice. Not an offer or solicitation; Hyperliquid outcome markets are not available to US or other excluded persons."}}}},"400":{"description":"Bad or missing parameters (free)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"asset must be 1-16 letters, digits or ':' (e.g. BTC, META, xyz:META)","hint":"No payment was requested."}}}},"402":{"description":"Payment Required. x402 v2: the PAYMENT-REQUIRED response header holds base64 JSON with accepts[] with two options, Base (eip155:8453) and Solana mainnet (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). Each has scheme exact, the USDC asset, amount in atomic units and payTo. Pay with any x402 client and retry with a PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 PaymentRequired JSON","schema":{"type":"string"}}}},"404":{"description":"No live market or only empty books (free)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"no live Hyperliquid binary price markets on DOGE","hint":"No payment was requested."}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"hyperliquid 503","hint":"No payment was requested."}}}}}}},"/pm/scan":{"get":{"operationId":"getPmScan","tags":["prediction-markets"],"summary":"Ranked scan of mispriced liquid Hyperliquid prediction markets","description":"Use when an agent wants a ranked list of the most mispriced liquid prediction markets on Hyperliquid right now, across all crypto and tokenized-stock binary price markets, in one call. Each row has model probability vs bid/ask, edge in pp, spread, depth and book age; empty and illiquid books are filtered out. For scanners, trading agents and daily briefings. Errors: 400 bad params, 404 no books (free, never charged), 402, 502. Data, not advice. Costs $0.05 USDC per call (x402, Base or Solana). Free 400/404 precheck before any payment.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]},"parameters":[{"name":"min_edge_pp","in":"query","required":false,"schema":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","default":"2"},"example":"3","description":"Optional minimum edge in percentage points (model vs executable bid/ask). Default 2."},{"name":"max_spread_pp","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","default":"10"},"example":"10","description":"Optional maximum bid-ask spread in percentage points. Default 10."},{"name":"min_depth_usd","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","default":"50"},"example":"100","description":"Optional minimum USDC depth within 5 pp of the touch on BOTH sides. Default 50."},{"name":"limit","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{1,2}$","default":"20"},"example":"10","description":"Optional max rows, 1-50. Default 20."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["crypto","stocks","all"],"default":"all"},"example":"all","description":"Optional: crypto (BTC, ETH, HYPE, ZEC), stocks (trade.xyz stock, index and commodity perps) or all."}],"responses":{"200":{"description":"Ranked rows","content":{"application/json":{"schema":{"type":"object","properties":{"generated_at_iso":{"type":"string","format":"date-time"},"cache_updated_iso":{"type":"string"},"spot_live":{"type":"boolean"},"filters":{"type":"object"},"scanned":{"type":"integer"},"filtered_out_empty_books":{"type":"integer"},"filtered_out_illiquid":{"type":"integer"},"matched":{"type":"integer"},"count":{"type":"integer"},"median_book_age_s":{"type":["number","null"]},"rows":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"integer","description":"Hyperliquid outcome id (Yes token = coin #<id>0)"},"asset":{"type":"string"},"perp":{"type":"string","description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META"},"kind":{"type":"string","enum":["crypto","stocks"]},"question":{"type":"string"},"strike":{"type":"number"},"expiry":{"type":"string","format":"date-time"},"hours_to_expiry":{"type":"number"},"settlement":{"type":"object","properties":{"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]},"side":{"type":"string"}}},"bid":{"type":"number","description":"Best Yes bid (probability, 0-1)"},"ask":{"type":"number","description":"Best Yes ask (probability, 0-1)"},"mid":{"type":"number"},"spread_pp":{"type":"number"},"bid_size":{"type":"number"},"ask_size":{"type":"number"},"depth_usd":{"type":"object","description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"bid":{"type":"number"},"ask":{"type":"number"},"window_pp":{"type":"number"},"levels":{"type":"integer"}}},"liquid":{"type":"boolean","description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)"},"book_ts":{"type":"string","format":"date-time"},"book_age_s":{"type":"integer"},"spot_mid":{"type":["number","null"]},"realized_vol_7d":{"type":["number","null"]},"model_prob":{"type":["number","null"],"description":"Model P(price > strike at expiry), 0-1"},"edge_vs_bid_pp":{"type":["number","null"],"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value"},"edge_vs_ask_pp":{"type":["number","null"],"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value"},"best_edge_pp":{"type":["number","null"]},"signal":{"type":"string","enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"]}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"]}},"closest":{"type":"array","items":{"type":"object","properties":{"outcome":{"type":"integer","description":"Hyperliquid outcome id (Yes token = coin #<id>0)"},"asset":{"type":"string"},"perp":{"type":"string","description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META"},"kind":{"type":"string","enum":["crypto","stocks"]},"question":{"type":"string"},"strike":{"type":"number"},"expiry":{"type":"string","format":"date-time"},"hours_to_expiry":{"type":"number"},"settlement":{"type":"object","properties":{"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]},"side":{"type":"string"}}},"bid":{"type":"number","description":"Best Yes bid (probability, 0-1)"},"ask":{"type":"number","description":"Best Yes ask (probability, 0-1)"},"mid":{"type":"number"},"spread_pp":{"type":"number"},"bid_size":{"type":"number"},"ask_size":{"type":"number"},"depth_usd":{"type":"object","description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"bid":{"type":"number"},"ask":{"type":"number"},"window_pp":{"type":"number"},"levels":{"type":"integer"}}},"liquid":{"type":"boolean","description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)"},"book_ts":{"type":"string","format":"date-time"},"book_age_s":{"type":"integer"},"spot_mid":{"type":["number","null"]},"realized_vol_7d":{"type":["number","null"]},"model_prob":{"type":["number","null"],"description":"Model P(price > strike at expiry), 0-1"},"edge_vs_bid_pp":{"type":["number","null"],"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value"},"edge_vs_ask_pp":{"type":["number","null"],"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value"},"best_edge_pp":{"type":["number","null"]},"signal":{"type":"string","enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"]}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"]},"description":"Only when rows is empty: the 3 liquid markets closest to min_edge_pp"},"note":{"type":"string"},"method":{"type":"string"},"source":{"type":"string"},"label":{"type":"string","const":"data, not advice"},"disclaimer":{"type":"string"}},"required":["rows","scanned","label","disclaimer"]},"example":{"generated_at_iso":"2026-10-17T13:11:39Z","cache_updated_iso":"2026-10-17T13:10:56Z","spot_live":true,"filters":{"min_edge_pp":2,"max_spread_pp":12,"min_depth_usd":50,"kind":"all","limit":20},"scanned":110,"filtered_out_empty_books":73,"filtered_out_illiquid":27,"matched":1,"count":1,"median_book_age_s":77,"rows":[{"outcome":13371,"asset":"SP500","perp":"xyz:SP500","kind":"stocks","question":"SP500 above 7740 at 2026-10-23 20:00:00 UTC","strike":7740,"expiry":"2026-10-23T20:00:00Z","hours_to_expiry":150.81,"settlement":{"source":"the Pyth US500 index price","window_seconds":90,"side":"Yes pays 1 USDC if the price is above the strike at expiry"},"bid":0.2534,"ask":0.3658,"mid":0.3096,"spread_pp":11.2,"bid_size":180,"ask_size":186,"depth_usd":{"bid":107.23,"ask":175.07,"window_pp":5,"levels":5},"liquid":true,"book_ts":"2026-10-17T13:10:43Z","book_age_s":55,"spot_mid":7653.45,"realized_vol_7d":0.1073,"model_prob":0.2102,"edge_vs_bid_pp":4.3,"edge_vs_ask_pp":-15.6,"best_edge_pp":4.3,"signal":"yes_overpriced"}],"method":"P(S_T > K) under a lognormal model with zero drift, S = live Hyperliquid perp mid, sigma = 7-day realized vol from Hyperliquid 1h candles (annualized x sqrt(8760)). No options data. Edges use executable bid/ask, never mid.","source":"Hyperliquid info API (outcomeMeta, l2Book, allMids, candleSnapshot)","label":"data, not advice","disclaimer":"Data, not financial advice. Not an offer or solicitation; Hyperliquid outcome markets are not available to US or other excluded persons."}}}},"400":{"description":"Bad parameters (free)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"kind must be crypto, stocks or all","hint":"No payment was requested."}}}},"402":{"description":"Payment Required. x402 v2: the PAYMENT-REQUIRED response header holds base64 JSON with accepts[] with two options, Base (eip155:8453) and Solana mainnet (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp). Each has scheme exact, the USDC asset, amount in atomic units and payTo. Pay with any x402 client and retry with a PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 PaymentRequired JSON","schema":{"type":"string"}}}},"404":{"description":"Order-book cache empty (free)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"no non-empty order books in the cache right now","hint":"No payment was requested."}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"no_data":{"type":"boolean"},"hint":{"type":"string"}},"required":["error"]},"example":{"error":"hyperliquid 503","hint":"No payment was requested."}}}}}}},"/health":{"get":{"operationId":"getHealth","tags":["meta"],"security":[],"summary":"Free liveness check","description":"Free. Returns {ok:true}. Add deep=1 to probe upstream data sources.","parameters":[{"name":"deep","in":"query","required":false,"schema":{"type":"string","enum":["1"]}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}},"example":{"ok":true}}}}}}}}}