{
  "id": "surf.exchange.coverage",
  "object": "tool",
  "name": "Exchange Market Coverage",
  "summary": "Returns covered spot markets on Bithumb, Upbit, HashKey, bitFlyer, Coinone, and Korbit with latest ticker metrics, candle availability, technical score, and data status.",
  "description": "Returns covered spot markets on Bithumb, Upbit, HashKey, bitFlyer, Coinone, and Korbit with latest ticker metrics, candle availability, technical score, and data status. Ticker fields: latest price, 24h open/high/low, previous close, signed 24h price and percent change, and 24h base/quote volume when the exchange provides them. Use the returned pair values with /exchange/candles for historical OHLCV. Coverage notes: bitFlyer coverage is currently strongest for weekly (1w) OHLCV. Korbit markets can have sparse intraday rows during no-trade periods; inspect data_status and data_actionability before using a market.\n\nRaw surf#exchange/coverage endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.asksurf.ai/data-api/exchange/coverage).",
  "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_coverage",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "exchange": {
            "type": "string",
            "enum": [
              "bithumb",
              "upbit",
              "hashkey",
              "bitflyer",
              "coinone",
              "korbit"
            ],
            "description": "Exchange identifier. When omitted, returns all supported exchanges. Example: bithumb."
          },
          "q": {
            "type": "string",
            "minLength": 1,
            "description": "Free-text search over pair, base currency, or quote currency. Example: BTC."
          },
          "quote": {
            "type": "string",
            "minLength": 1,
            "description": "Quote currency filter. Example: KRW."
          },
          "type": {
            "default": "spot",
            "type": "string",
            "enum": [
              "spot"
            ],
            "description": "Market type. Example: spot. Defaults to \"spot\"."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ],
            "description": "Market status filter. Example: active."
          },
          "data_status": {
            "type": "string",
            "enum": [
              "covered",
              "official_empty_all",
              "official_empty_ticker",
              "official_empty_5m",
              "official_empty_weekly",
              "stale_gt_7d",
              "stale_30m_to_7d",
              "recent_but_lt_min_ta_candles",
              "missing_4h",
              "missing_latest_ta"
            ],
            "description": "Market data coverage status filter. Example: covered."
          },
          "sort_by": {
            "default": "pair",
            "type": "string",
            "enum": [
              "pair",
              "price",
              "change_24h",
              "volume_24h",
              "technical_score",
              "latest_candle_at",
              "status"
            ],
            "description": "Sort field. Example: pair. Defaults to \"pair\"."
          },
          "order": {
            "default": "asc",
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort order. Example: asc. Defaults to \"asc\"."
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Results per page. Example: 20. Defaults to 20."
          },
          "offset": {
            "default": 0,
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Pagination offset. Example: 0. Defaults to 0."
          }
        },
        "additionalProperties": false
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}