Skip to content

API Documentation

Base URL: https://web2.icptokens.net/api

All endpoints return JSON. Paginated endpoints support page and per_page parameters.

Tokens

GET/v2/tokens

List all tokens with aggregated metrics

GET/v2/tokens/{canisterId}/pools

All pools for a token across DEXes

GET/v2/tokens/{canisterId}/swaps

Recent swaps across all pools for a token

Pools

GET/v2/pools

All active pools sorted by 24h volume

Params: per_page, dex_id

GET/v2/pools/{id}

Single pool detail with TVL, volume, reserves

GET/v2/pools/{id}/swaps

Recent swaps for a pool (paginated)

Params: per_page, page

GET/v2/pools/{id}/ohlcv

OHLCV candlestick data for pool chart

Params: interval (1m/5m/15m/1h/4h/1d/1w), limit

DEX & Discovery

GET/v2/dex

DEX-level statistics: pool count, TVL, volume per DEX

GET/v2/new-listings

Recently discovered pools (new pools)

Params: limit

GET/v2/trending

Trending pools by volume/TVL ratio

Params: limit

GET/v2/gainers-losers

Top price gainers and losers (24h)

Params: limit

Wallet

GET/v2/wallet/{address}/balances

Token balances for a wallet address

GET/v2/wallet/{address}/transactions

Swap history for a wallet

Params: per_page, page

GET/v2/wallet/{address}/pnl

Profit & loss summary for a wallet

Promotions

GET/v2/promotions/active

Active token promotions

Params: placement

POST/v2/promotions/create

Submit a promotion request

Alerts

GET/v2/alerts

List price alerts for a session

Params: session_id

POST/v2/alerts

Create a price alert

DELETE/v2/alerts/{id}

Delete a price alert

Params: session_id

Code Examples

// Fetch all pools sorted by volume
const response = await fetch('https://web2.icptokens.net/api/v2/pools?per_page=10');
const { data, total } = await response.json();

data.forEach(pool => {
  console.log(`${pool.token0.symbol}/${pool.token1.symbol}`,
    'Vol:', pool.volume_24h_usd,
    'TVL:', pool.tvl_usd);
});

Rate Limits

Free Tier

100 requests/minute, no API key needed

API Key

1,000 requests/minute — contact us for access