Cambrian V2 - Pool Volume API
GET /api/v1/evm/aero/v2/pool-volume
V2 - Pool Volume
Overview
Returns recent trading activity for a specific Aerodrome V2 pool, including total volume, swap counts, hourly volume distribution, per-token volume breakdown, and the largest recent swaps. USD-denominated fields are null when a pool-token price is unavailable.
Business Value
- Real-time Trading Analytics: Monitor pool activity and trading patterns in real-time for informed decision making
- Volume Trend Analysis: Track hourly volume patterns to identify peak trading times and market activity cycles
- Liquidity Pool Performance: Assess pool health through swap counts, average transaction sizes, and volume changes
- Large Transaction Monitoring: Identify significant trades and their impact on pool dynamics
- Cross-Token Volume Insights: Understand directional trading flows between token pairs within the pool
Endpoint Details
URL:
https://api.cambrian.org/evm/aero/v2/pool-volume
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| chain_id | integer | No | 8453 | EVM chain ID. Allowed values: 8453 |
| pool_address | string | Yes | - | Pool address with 0x prefix |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| poolId | String | Pool address with 0x prefix |
| timeframeAt | String | Timeframe label for the reported volume window (e.g. "24h") |
| volumeUsd | Nullable(Float64) | Total swap volume in USD over the timeframe; null when a pool-token price is unavailable |
| volumeToken0 | String | Total swap volume denominated in token0 units |
| volumeToken1 | String | Total swap volume denominated in token1 units |
| volumeChange | Nullable(Float64) | Percentage change in volume versus the prior equivalent period |
| swapCount | UInt64 | Number of swaps executed during the timeframe |
| averageSwapSize | Nullable(Float64) | Average swap size in USD; null when a pool-token price is unavailable |
| volumeByHour | Array(Map(String,Nullable(String))) | Hourly breakdown of swap activity, each entry containing swapCount, timestamp, and volumeUsd |
| volumeByToken | Map(String,Nullable(String)) | Directional volume breakdown between token0 and token1, including percentages and converted amounts |
| largestSwaps | Array(Map(String,Nullable(String))) | List of the largest recent swaps, each containing amountToken0, amountToken1, amountUsd, timestamp, txHash, and type |
| updatedAt | UInt32 | Unix timestamp of when the data was last updated |
| tvlPriceComplete | UInt8 | Flag indicating whether all prices needed for valuation are available (1) or not (0) |
Examples
1. Retrieve recent volume activity for an Aerodrome V2 pool
Fetches recent pool activity, including hourly volume distribution and the largest recent swaps, for a specific Aerodrome V2 pool.
curl -X GET "https://api.cambrian.org/evm/aero/v2/pool-volume?pool_address=0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "poolId",
"type": "String"
},
{
"name": "timeframeAt",
"type": "String"
},
{
"name": "volumeUsd",
"type": "Nullable(Float64)"
},
{
"name": "volumeToken0",
"type": "String"
},
{
"name": "volumeToken1",
"type": "String"
},
{
"name": "volumeChange",
"type": "Nullable(Float64)"
},
{
"name": "swapCount",
"type": "UInt64"
},
{
"name": "averageSwapSize",
"type": "Nullable(Float64)"
},
{
"name": "volumeByHour",
"type": "Array(Map(String,Nullable(String)))"
},
{
"name": "volumeByToken",
"type": "Map(String,Nullable(String))"
},
{
"name": "largestSwaps",
"type": "Array(Map(String,Nullable(String)))"
},
{
"name": "updatedAt",
"type": "UInt32"
},
{
"name": "tvlPriceComplete",
"type": "UInt8"
}
],
"data": [
[
"0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d",
"24h",
1106569.559754,
"1098226.305408",
"2647525.1171569736",
-9.001126,
2103,
526.186191,
[
{
"swapCount": "91",
"timestamp": "1785844800",
"volumeUsd": "53297.28152"
},
{
"swapCount": "108",
"timestamp": "1785848400",
"volumeUsd": "74018.733603"
},
{
"swapCount": "120",
"timestamp": "1785852000",
"volumeUsd": "84188.153718"
},
{
"swapCount": "96",
"timestamp": "1785855600",
"volumeUsd": "45376.629463"
},
{
"swapCount": "86",
"timestamp": "1785859200",
"volumeUsd": "49637.697251"
},
{
"swapCount": "77",
"timestamp": "1785862800",
"volumeUsd": "33752.630014"
},
{
"swapCount": "88",
"timestamp": "1785866400",
"volumeUsd": "25602.388183"
},
{
"swapCount": "117",
"timestamp": "1785870000",
"volumeUsd": "72146.605551"
},
{
"swapCount": "112",
"timestamp": "1785873600",
"volumeUsd": "58741.002662"
},
{
"swapCount": "52",
"timestamp": "1785877200",
"volumeUsd": "5231.220695"
}
],
{
"token0Percentage": "0.545155",
"token0ToToken1": "603252.179332",
"token1Percentage": "0.454845",
"token1ToToken0": "503317.380422"
},
[
{
"amountToken0": "10962.600648",
"amountToken1": "26011.94969148394",
"amountUsd": "10962.600648",
"timestamp": "1785908307",
"txHash": "0x1b7b96bd1eb439133b8366e52c53b4e19efe8c9328d23dfd46f22c989cfe0331",
"type": "token0ToToken1"
},
{
"amountToken0": "10157.903789",
"amountToken1": "24218.23997559632",
"amountUsd": "10157.903789",
"timestamp": "1785908289",
"txHash": "0x66fdb4b34850fee90e6691ca2f66514848ffb1e4bbcbdaf84db2410401515890",
"type": "token0ToToken1"
},
{
"amountToken0": "8574.462363",
"amountToken1": "20879.98949338514",
"amountUsd": "8768.939905",
"timestamp": "1785845841",
"txHash": "0x375beb7b08808dd5b431d7aa03b11f1b0dccea5827a79eb9d62808080a7ab52e",
"type": "token1ToToken0"
},
{
"amountToken0": "8493.802303",
"amountToken1": "20554.205433610492",
"amountUsd": "8632.12083",
"timestamp": "1785886735",
"txHash": "0x06c1183b09a2ba0232f5b9e4692269ff289e652ae7570f014f2037eb966563fc",
"type": "token1ToToken0"
},
{
"amountToken0": "8574.462363",
"amountToken1": "20554.205433610492",
"amountUsd": "8574.462363",
"timestamp": "1785872543",
"txHash": "0x648e7b99dedbd76ea4b4436b0dbede396e497d2cc71b786115657073fa9b8c2a",
"type": "token0ToToken1"
},
{
"amountToken0": "8493.802303",
"amountToken1": "20220.993864243097",
"amountUsd": "8493.802303",
"timestamp": "1785908295",
"txHash": "0xbddb78ea6636f3e76b7f4b043f859aa291d8f6da9e990f547f5b5eae93233344",
"type": "token0ToToken1"
},
{
"amountToken0": "6925.090793",
"amountToken1": "16957.17630494124",
"amountUsd": "7121.481551",
"timestamp": "1785851219",
"txHash": "0xff120a99aa73cd2e5048811a3d51e7720d9b392804e6f111888ef7d14494296a",
"type": "token1ToToken0"
},
{
"amountToken0": "6246.678857",
"amountToken1": "14907.97619626249",
"amountUsd": "6246.678857",
"timestamp": "1785908289",
"txHash": "0x6c67a2a6f40ea1ebd9d5822777f419960a859d4bae5a27add55a2563cfd051fe",
"type": "token0ToToken1"
},
{
"amountToken0": "5708.470588",
"amountToken1": "13547.10621033063",
"amountUsd": "5708.470588",
"timestamp": "1785912069",
"txHash": "0xd602d3bdc737b3b9191a660d6948336e0cd6ab85b2eaa6c35cfd24506712521f",
"type": "token0ToToken1"
},
{
"amountToken0": "5626.079852",
"amountToken1": "13469.27111617974",
"amountUsd": "5626.079852",
"timestamp": "1785908275",
"txHash": "0xdc6de225131413aee2a913818eab4011e339482d96373cdc401d89741574b777",
"type": "token0ToToken1"
}
],
1785928500,
1
]
],
"rows": 1
}
]
Result collections such as volumeByHour and largestSwaps are limited to 10 items each.
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2), paying $0.05 USDC per request using blockchain micropayments. No API key required.
Quick Start (TypeScript)
npm install @x402/fetch @x402/evm viem
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
"https://x402.cambrian.org/evm/aero/v2/pool-volume"
);
const data = await response.json();
Quick Start (Python)
pip install "x402[httpx]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client()
account = Account.from_key(os.getenv("EVM_PRIVATE_KEY"))
register_exact_evm_client(client, EthAccountSigner(account))
async with x402HttpxClient(client) as http:
response = await http.get("https://x402.cambrian.org/evm/aero/v2/pool-volume")
print(response.json())
asyncio.run(main())
Payment Flow
- Send a normal request to the endpoint (no API key needed)
- Server returns
402 Payment Requiredwith payment details - The x402 SDK automatically signs a payment authorization with your wallet
- The SDK resubmits the request with the signed payment
- Server verifies payment and returns the API response
The x402 SDK handles steps 2 through 5 automatically.
Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request
Related Endpoints
- /evm/aero/v2/fee-metrics - Shows fee metrics and daily historical data for the previous seven completed UTC days.
- /evm/aero/v2/pool - Get information for a specific Aerodrome V2 pool.
- /evm/aero/v2/pools - Returns liquidity pools with summary metrics for the previous 7 completed UTC days.
- /evm/aero/v2/provider-summary - Provides Aerodrome V2 liquidity-provider summary and portfolio metrics.
- /evm/aero/v3/pool - Returns current pool TVL, Swap Volume, Price volatility and related metrics.