{
  "id": "surf.exchange.perp",
  "object": "tool",
  "name": "Exchange Perpetual Contract Snapshot",
  "summary": "Returns a perpetual futures snapshot for a trading pair: funding rate, open interest, mark/index price.",
  "description": "Returns a perpetual futures snapshot for a trading pair: funding rate, open interest, mark/index price. Available fields (via fields): funding — current funding rate, next settlement, mark/index price; oi — open interest in contracts and USD Just pass the base pair (e.g. pair=BTC/USDT). The swap settle suffix is added automatically from the quote currency, e.g. BTC/USDT:USDT or BTC/USDC:USDC.\n\nRaw surf#exchange/perp endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.asksurf.ai/data-api/exchange/perp).",
  "category": "lookup",
  "hosted_by": "Surf",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "surf",
      "name": "Surf",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "surf_exchange_perp",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "pair": {
            "type": "string",
            "minLength": 1,
            "description": "Trading pair (e.g. BTC/USDT). The swap settle suffix is added automatically from the quote currency, e.g. BTC/USDT:USDT or BTC/USDC:USDC. Example: BTC/USDT."
          },
          "fields": {
            "default": "funding,oi",
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated fields to include: 'funding' (current funding rate), 'oi' (open interest). Defaults to all fields. Example: funding,oi. Defaults to \"funding,oi\"."
          },
          "exchange": {
            "default": "binance",
            "type": "string",
            "enum": [
              "binance",
              "okx",
              "bybit",
              "bitget",
              "htx",
              "bitfinex",
              "bitmex",
              "hyperliquid"
            ],
            "description": "Exchange identifier. Hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC). Example: binance. Defaults to \"binance\"."
          }
        },
        "required": [
          "pair"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "queryParams"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}