ToolAssay

Use when an agent must decide if a Hyperliquid prediction market on a crypto or

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.

Answeringour last check, 2026-10-18
1 of 1checks answered this week
909 msmedian answer time
$0.02listed price per call
$0.02price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

GET https://perp-gap-api.perpgap.workers.dev/pm/implied

CategoryMarket data
Provider hostperp-gap-api.perpgap.workers.dev
Networkseip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days2 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-18 valid payment request 402$0.02 909 ms

Example input (from the provider)

{
  "method": "GET",
  "queryParams": {
    "asset": "BTC"
  },
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "additionalProperties": false,
          "properties": {
            "asset": {
              "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.",
              "examples": [
                "BTC",
                "SP500"
              ],
              "pattern": "^[A-Za-z0-9:]{1,16}$",
              "type": "string"
            },
            "min_depth_usd": {
              "default": "0",
              "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).",
              "examples": [
                "50"
              ],
              "pattern": "^\\d+(\\.\\d+)?$",
              "type": "string"
            },
            "outcome": {
              "description": "Optional Hyperliquid outcome id to price a single market (see free GET /pm/markets).",
              "examples": [
                "11676"
              ],
              "pattern": "^\\d{1,9}$",
              "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 or empty asset, bad outcome or min_depth_usd (free); 404 no live Hyperliquid binary price market for that asset/outcome, or all its books are empty (free, never charged); 402 payment required; 502 upstream error.",
          "properties": {
            "asset": {
              "type": "string"
            },
            "count": {
              "type": "integer"
            },
            "disclaimer": {
              "type": "string"
            },
            "filtered_out_empty_or_thin": {
              "type": "integer"
            },
            "generated_at_iso": {
              "format": "date-time",
              "type": "string"
            },
            "label": {
              "const": "data, not advice",
              "type": "string"
            },
            "markets": {
              "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 

This page as JSON