Skip to content

GET /v1/pairs/:mint ​

Enumerate the set of mints we currently have at least one confirmed, tradeable pool for, paired with the given input mint.

Used by frontends (such as swap.venum.dev) to pre-filter token dropdowns so users never see "no route available" for pairs we cannot quote.

Free, no auth required. Anonymous callers are accepted (rate-limited as anonymous); pass an API key for higher tier limits and fresh data.

Request ​

http
GET /v1/pairs/:mint

Path parameters ​

FieldTypeDescription
mintstringBase58 mint address or known token symbol ("SOL")

Example ​

bash
# Anonymous (cached 5s, anonymous rate limit)
curl https://api.venum.dev/v1/pairs/SOL

# With API key (fresh, higher rate limit)
curl https://api.venum.dev/v1/pairs/SOL \
  -H 'x-api-key: YOUR_API_KEY'

Response ​

200 OK ​

json
{
  "inputMint": "So11111111111111111111111111111111111111112",
  "pairs": [
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "symbol": "USDC",
      "decimals": 6,
      "poolCount": 14
    },
    {
      "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
      "symbol": "USDT",
      "decimals": 6,
      "poolCount": 8
    }
  ],
  "count": 2
}

pairs is sorted by poolCount descending — deeper liquidity first.

Only mints in our tracked token list are returned. Pools backed by other mints are skipped (not relevant to swap UIs).

Errors ​

StatusDescription
400Invalid mint or unknown symbol
429Rate limit exceeded

Auth ​

Optional auth — anonymous callers are accepted but rate-limited as anonymous. Pass an API key for higher tier limits and to bypass the cache.

Rate Limit ​

Tier limits (per minute):

TierLimit
anonymous15
free30
starter150
growth300
pro500
internal∞

Notes ​

  • Anonymous responses are served from a 5 s cache layered on the live pool index, so successive anonymous calls for the same mint are effectively free. API-key callers bypass the cache and always see the live index.
  • A pool only counts as "tradeable" once Venum has observed at least one live state update for it. Pools loaded from disk cache without a live state update are excluded.