{
  "id": "surf.market.ranking",
  "object": "tool",
  "name": "Token Rankings",
  "summary": "Returns a token leaderboard sorted by market cap, 24h change, or volume.",
  "description": "Returns a token leaderboard sorted by market cap, 24h change, or volume. Each entry includes price, market cap, FDV, supply, ATH/ATL, and 24h range. Supports category filtering (MEME, AI, L1, L2, DEFI, GAMING, etc.). Available sort_by values: market_cap, change_24h, volume_24h. Note: change_24h ranks by 24h price change within the top 250 coins by market cap; Surf's own document calls that top_gainers / top_losers, but sort_by does not accept those values. For circulating supply, FDV, ATH/ATL, use /project/detail?fields=token_info.\n\nRaw surf#market/ranking endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.asksurf.ai/data-api/market/ranking).",
  "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_market_ranking",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "sort_by": {
            "default": "market_cap",
            "type": "string",
            "enum": [
              "market_cap",
              "change_24h",
              "volume_24h"
            ],
            "description": "Field to sort by. market_cap sorts by total market capitalisation, change_24h sorts by 24-hour price change percentage (fetches top 250 by market cap then sorts client-side), volume_24h sorts by 24-hour trading volume. Example: market_cap. Defaults to \"market_cap\"."
          },
          "order": {
            "default": "desc",
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort order: desc (default, highest first) or asc (lowest first). Example: desc. Defaults to \"desc\"."
          },
          "category": {
            "type": "string",
            "enum": [
              "MEME",
              "AI",
              "AI_AGENTS",
              "L1",
              "L2",
              "DEFI",
              "GAMING",
              "STABLECOIN",
              "RWA",
              "DEPIN",
              "SOL_ECO",
              "BASE_ECO",
              "LST"
            ],
            "description": "Optional token category filter. When provided, results are limited to coins in that category. Supported values: MEME, AI, AI_AGENTS, L1, L2, DEFI, GAMING, STABLECOIN, RWA, DEPIN, SOL_ECO, BASE_ECO, LST. Example: MEME."
          },
          "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"
}