Skip to main content
Glama

dexSpotPairsLatest

Retrieve a paginated list of active decentralized exchange (DEX) spot pairs with updated market data, filtered by network, assets, liquidity, and trading volume, for detailed analysis.

Instructions

Returns a paginated list of all active dex spot pairs with latest market data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
auxNo
base_asset_contract_addressNo
base_asset_idNo
base_asset_symbolNo
base_asset_ucidNo
convert_idNo
dex_idNo
dex_slugNo
limitNo
liquidity_maxNo
liquidity_minNo
network_idNo
network_slugNo
no_of_transactions_24h_maxNo
no_of_transactions_24h_minNo
percent_change_24h_maxNo
percent_change_24h_minNo
quote_asset_contract_addressNo
quote_asset_idNo
quote_asset_symbolNo
quote_asset_ucidNo
reverse_orderNo
scroll_idNo
sortNo
sort_dirNo
volume_24h_maxNo
volume_24h_minNo

Implementation Reference

  • Handler function that executes the tool logic: calls handleEndpoint which makes an API request to the CoinMarketCap /v4/dex/spot-pairs/latest endpoint with the provided params and formats the response.
    async (params) => {
      return handleEndpoint(async () => {
        const data = await makeApiRequest(apiKey, '/v4/dex/spot-pairs/latest', params)
        return formatResponse(data)
      })
    }
  • Zod schema defining all optional input parameters for filtering and sorting DEX spot pairs data.
    {
      network_id: z.string().optional(),
      network_slug: z.string().optional(),
      dex_id: z.string().optional(),
      dex_slug: z.string().optional(),
      base_asset_id: z.string().optional(),
      base_asset_symbol: z.string().optional(),
      base_asset_contract_address: z.string().optional(),
      base_asset_ucid: z.string().optional(),
      quote_asset_id: z.string().optional(),
      quote_asset_symbol: z.string().optional(),
      quote_asset_contract_address: z.string().optional(),
      quote_asset_ucid: z.string().optional(),
      scroll_id: z.string().optional(),
      limit: z.string().optional(),
      liquidity_min: z.string().optional(),
      liquidity_max: z.string().optional(),
      volume_24h_min: z.string().optional(),
      volume_24h_max: z.string().optional(),
      no_of_transactions_24h_min: z.string().optional(),
      no_of_transactions_24h_max: z.string().optional(),
      percent_change_24h_min: z.string().optional(),
      percent_change_24h_max: z.string().optional(),
      sort: z.enum(['name', 'date_added', 'price', 'volume_24h', 'percent_change_1h', 'percent_change_24h', 'liquidity', 'fully_diluted_value', 'no_of_transactions_24h']).optional(),
      sort_dir: z.enum(['desc', 'asc']).optional(),
      aux: z.string().optional(),
      reverse_order: z.string().optional(),
      convert_id: z.string().optional()
    },
  • index.js:314-351 (registration)
    MCP server.tool call registering the 'dexSpotPairsLatest' tool with its description, input schema, and handler function.
    server.tool("dexSpotPairsLatest",
      "Returns a paginated list of all active dex spot pairs with latest market data.",
      {
        network_id: z.string().optional(),
        network_slug: z.string().optional(),
        dex_id: z.string().optional(),
        dex_slug: z.string().optional(),
        base_asset_id: z.string().optional(),
        base_asset_symbol: z.string().optional(),
        base_asset_contract_address: z.string().optional(),
        base_asset_ucid: z.string().optional(),
        quote_asset_id: z.string().optional(),
        quote_asset_symbol: z.string().optional(),
        quote_asset_contract_address: z.string().optional(),
        quote_asset_ucid: z.string().optional(),
        scroll_id: z.string().optional(),
        limit: z.string().optional(),
        liquidity_min: z.string().optional(),
        liquidity_max: z.string().optional(),
        volume_24h_min: z.string().optional(),
        volume_24h_max: z.string().optional(),
        no_of_transactions_24h_min: z.string().optional(),
        no_of_transactions_24h_max: z.string().optional(),
        percent_change_24h_min: z.string().optional(),
        percent_change_24h_max: z.string().optional(),
        sort: z.enum(['name', 'date_added', 'price', 'volume_24h', 'percent_change_1h', 'percent_change_24h', 'liquidity', 'fully_diluted_value', 'no_of_transactions_24h']).optional(),
        sort_dir: z.enum(['desc', 'asc']).optional(),
        aux: z.string().optional(),
        reverse_order: z.string().optional(),
        convert_id: z.string().optional()
      },
      async (params) => {
        return handleEndpoint(async () => {
          const data = await makeApiRequest(apiKey, '/v4/dex/spot-pairs/latest', params)
          return formatResponse(data)
        })
      }
    )
  • Primary helper function that constructs and performs the HTTP GET request to the CoinMarketCap API endpoint using the provided API key and parameters.
    async function makeApiRequest(apiKey, endpoint, params = {}) {
      const queryParams = new URLSearchParams()
      Object.entries(params).forEach(([key, value]) => {
        if (value !== undefined) {
          queryParams.append(key, value.toString())
        }
      })
    
      const url = `https://pro-api.coinmarketcap.com${endpoint}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`
    
      const response = await fetch(url, {
        method: 'GET',
        headers: {
          'Accept': 'application/json',
          'X-CMC_PRO_API_KEY': apiKey,
        }
      })
    
      if (!response.ok) {
        throw new Error(`Error fetching data from CoinMarketCap: ${response.statusText}`)
      }
    
      return await response.json()
    }
  • Wrapper helper that handles errors in API calls by catching exceptions and returning formatted error responses.
      try {
        return await apiCall()
      } catch (error) {
        return formatErrorResponse(error.message, error.status || 403)
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shinzo-labs/coinmarketcap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server