{"slug":"perp-gap-api-perpgap-workers-dev-pm-scan-b31499","title":"Use when an agent wants a ranked list of the most mispriced liquid prediction ma","host":"perp-gap-api.perpgap.workers.dev","method":"GET","resource":"https://perp-gap-api.perpgap.workers.dev/pm/scan","category":"market","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 fil","price_listed":0.05,"price_asked":0.05,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":29,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"method":"GET","queryParams":{"max_spread_pp":"10","min_edge_pp":"2"},"type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"method":{"enum":["GET"],"type":"string"},"queryParams":{"additionalProperties":false,"properties":{"kind":{"default":"all","description":"Optional: crypto (BTC, ETH, HYPE, ZEC), stocks (trade.xyz stock, index and commodity perps) or all.","enum":["crypto","stocks","all"],"examples":["all"],"type":"string"},"limit":{"default":"20","description":"Optional max rows, 1-50. Default 20.","examples":["10"],"pattern":"^\\d{1,2}$","type":"string"},"max_spread_pp":{"default":"10","description":"Optional maximum bid-ask spread in percentage points. Default 10.","examples":["10"],"pattern":"^\\d+(\\.\\d+)?$","type":"string"},"min_depth_usd":{"default":"50","description":"Optional minimum USDC depth within 5 pp of the touch on BOTH sides. Default 50.","examples":["100"],"pattern":"^\\d+(\\.\\d+)?$","type":"string"},"min_edge_pp":{"default":"2","description":"Optional minimum edge in percentage points (model vs executable bid/ask). Default 2.","examples":["3"],"pattern":"^-?\\d+(\\.\\d+)?$","type":"string"}},"required":[],"type":"object"},"type":{"const":"http","type":"string"}},"required":["type","method"],"type":"object"},"output":{"properties":{"example":{"description":"Error responses are JSON {error: string}: 400 bad min_edge_pp / max_spread_pp / min_depth_usd / limit / kind (free); 404 order-book cache empty (free, never charged); 402 payment required; 502 upstream error.","properties":{"cache_updated_iso":{"type":"string"},"closest":{"description":"Only when rows is empty: the 3 liquid markets closest to min_edge_pp","items":{"properties":{"ask":{"description":"Best Yes ask (probability, 0-1)","type":"number"},"ask_size":{"type":"number"},"asset":{"type":"string"},"best_edge_pp":{"type":["number","null"]},"bid":{"description":"Best Yes bid (probability, 0-1)","type":"number"},"bid_size":{"type":"number"},"book_age_s":{"type":"integer"},"book_ts":{"format":"date-time","type":"string"},"depth_usd":{"description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"ask":{"type":"number"},"bid":{"type":"number"},"levels":{"type":"integer"},"window_pp":{"type":"number"}},"type":"object"},"edge_vs_ask_pp":{"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value","type":["number","null"]},"edge_vs_bid_pp":{"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value","type":["number","null"]},"expiry":{"format":"date-time","type":"string"},"hours_to_expiry":{"type":"number"},"kind":{"enum":["crypto","stocks"],"type":"string"},"liquid":{"description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)","type":"boolean"},"mid":{"type":"number"},"model_prob":{"description":"Model P(price > strike at expiry), 0-1","type":["number","null"]},"outcome":{"description":"Hyperliquid outcome id (Yes token = coin #<id>0)","type":"integer"},"perp":{"description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META","type":"string"},"question":{"type":"string"},"realized_vol_7d":{"type":["number","null"]},"settlement":{"properties":{"side":{"type":"string"},"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]}},"type":"object"},"signal":{"enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"],"type":"string"},"spot_mid":{"type":["number","null"]},"spread_pp":{"type":"number"},"strike":{"type":"number"}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"],"type":"object"},"type":"array"},"count":{"type":"integer"},"disclaimer":{"type":"string"},"filtered_out_empty_books":{"type":"integer"},"filtered_out_illiquid":{"type":"integer"},"filters":{"type":"object"},"generated_at_iso":{"format":"date-time","type":"string"},"label":{"const":"data, not advice","type":"string"},"matched":{"type":"integer"},"median_book_age_s":{"type":["number","null"]},"method":{"type":"string"},"note":{"type":"string"},"rows":{"items":{"properties":{"ask":{"description":"Best Yes ask (probability, 0-1)","type":"number"},"ask_size":{"type":"number"},"asset":{"type":"string"},"best_edge_pp":{"type":["number","null"]},"bid":{"description":"Best Yes bid (probability, 0-1)","type":"number"},"bid_size":{"type":"number"},"book_age_s":{"type":"integer"},"book_ts":{"format":"date-time","type":"string"},"depth_usd":{"description":"USDC notional resting within window_pp of the touch, top 5 levels","properties":{"ask":{"type":"number"},"bid":{"type":"number"},"levels":{"type":"integer"},"window_pp":{"type":"number"}},"type":"object"},"edge_vs_ask_pp":{"description":"(model_prob - ask) x 100: > 0 means you could buy Yes below model value","type":["number","null"]},"edge_vs_bid_pp":{"description":"(bid - model_prob) x 100: > 0 means you could sell Yes above model value","type":["number","null"]},"expiry":{"format":"date-time","type":"string"},"hours_to_expiry":{"type":"number"},"kind":{"enum":["crypto","stocks"],"type":"string"},"liquid":{"description":"spread <= 10 pp (scan: max_spread_pp) and >= $50 depth on both sides (scan: min_depth_usd)","type":"boolean"},"mid":{"type":"number"},"model_prob":{"description":"Model P(price > strike at expiry), 0-1","type":["number","null"]},"outcome":{"description":"Hyperliquid outcome id (Yes token = coin #<id>0)","type":"integer"},"perp":{"description":"Underlying Hyperliquid perp, e.g. BTC or xyz:META","type":"string"},"question":{"type":"string"},"realized_vol_7d":{"type":["number","null"]},"settlement":{"properties":{"side":{"type":"string"},"source":{"type":["string","null"]},"window_seconds":{"type":["number","null"]}},"type":"object"},"signal":{"enum":["yes_underpriced","yes_overpriced","fair","illiquid","no_model"],"type":"string"},"spot_mid":{"type":["number","null"]},"spread_pp":{"type":"number"},"strike":{"type":"number"}},"required":["outcome","asset","strike","expiry","bid","ask","depth_usd","liquid"],"type":"object"},"type":"array"},"scanned":{"type":"integer"},"source":{"type":"string"},"spot_live":{"type":"boolean"}},"required":["rows","scanned","label","disclaimer"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-18","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.05,"price_match":true,"latency_ms":29,"error":null}],"description_full":"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.","last_updated":"2026-10-17T13:17:59.802Z","schemes":["exact"]}