curl --request GET \
--url https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"chainId": 1,
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol": "uniswapV3",
"managerAddress": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
"feeTier": 500,
"feeTierPct": 0.05,
"orientation": "token1_per_token0",
"base": "token0",
"quote": "token1",
"chainName": "Ethereum",
"chainLogoUrl": "https://assets.defiorbit.xyz/chain-logos/ethereum.png",
"protocolName": "Uniswap",
"protocolLogoUrl": "https://assets.defiorbit.xyz/protocol-logos/uniswap.png",
"explorerUrl": "https://app.uniswap.org/explore/pools/ethereum/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"tickSpacing": 10,
"createdAt": 1620159183,
"token0": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"logoUrl": null,
"priceUsd": 1
},
"token1": {
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"symbol": "WETH",
"name": "Wrapped Ether",
"decimals": 18,
"logoUrl": null,
"priceUsd": 3200
},
"currentTick": 200000,
"indexedAt": 1761000000,
"historyEnd": 1760918400,
"price": {
"current": 0.0003125,
"change24hPct": 1.2,
"low7d": 0.00030303,
"high7d": 0.00032258
},
"range7d": {
"low": 0.00030303,
"high": 0.00032258,
"current": 0.0003125
},
"avgDailyVolumeUsd": {
"d7": 1200000,
"d14": 980000,
"d30": 870000
},
"liquidityUsd": 150000000,
"liquidityInRangeUsd": 42000000,
"positions": {
"total": 12000,
"active": 3400,
"inRange": 900,
"lpAddresses": 8000,
"lpAddressesInRange": 700
},
"fees7dUsd": 420000,
"aprPct": 18.4,
"swapsIndexed": true,
"history": [
{
"day": "2025-10-19",
"timestamp": 1760918400,
"activePositions": 3400,
"positionsInRange": 900,
"tvlUsd": 150000000,
"volumeUsd": 1200000,
"volume0": 600000,
"volume1": 187.5,
"feesUsd": 600,
"fees0": 300,
"fees1": 0.09,
"price": 0.0003125,
"volumeTvl": 0.008
}
],
"mints7d": {
"count": 40,
"volumeUsd": 1200000,
"lower": 0.00029412,
"upper": 0.00033333,
"lowerTick": 199000,
"upperTick": 201000
},
"updatedAt": 1761000000000
},
"request_id": "req_..."
}{
"error": {
"code": "INVALID_PARAMETER",
"message": "page must be a positive integer.",
"request_id": "req_..."
}
}{
"error": {
"code": "INVALID_API_KEY",
"message": "Missing API key.",
"request_id": "req_..."
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Insufficient API credits.",
"request_id": "req_..."
}
}{
"error": {
"code": "ACCOUNT_SUSPENDED",
"message": "This organization is suspended.",
"request_id": "req_..."
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Pool not found",
"request_id": "req_..."
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later.",
"request_id": "req_..."
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred.",
"request_id": "req_..."
}
}Get Pool
Pool-level detail for an indexed Uniswap V3 or Aerodrome Slipstream pool. protocol is uniswapV3 or aerodrome. Prices follow orientation: token1_per_token0 (the default, token1 per token0) or token0_per_token1. base and quote say which token is which side of 1 base = price quote. A 24h change under the inverted quote is 1 / (1 + r) - 1, not -r.
recentSwaps, history, and ticks are omitted unless include lists them. Each history day includes volumeTvl, volume divided by that day’s TVL. avgDailyVolumeUsd, feeTierPct, and range7d are always returned. avgDailyVolumeUsd is null when swapsIndexed is false. A window is null when no snapshot day falls in it; otherwise it is the mean of the days present, so a gap is not counted as zero volume.
Orca pools are not on this route.
Credits: 10 per successful call.
curl --request GET \
--url https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.defiorbit.xyz/v1/pools/{chain_id}/{pool_address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"chainId": 1,
"address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"protocol": "uniswapV3",
"managerAddress": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
"feeTier": 500,
"feeTierPct": 0.05,
"orientation": "token1_per_token0",
"base": "token0",
"quote": "token1",
"chainName": "Ethereum",
"chainLogoUrl": "https://assets.defiorbit.xyz/chain-logos/ethereum.png",
"protocolName": "Uniswap",
"protocolLogoUrl": "https://assets.defiorbit.xyz/protocol-logos/uniswap.png",
"explorerUrl": "https://app.uniswap.org/explore/pools/ethereum/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"tickSpacing": 10,
"createdAt": 1620159183,
"token0": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"logoUrl": null,
"priceUsd": 1
},
"token1": {
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"symbol": "WETH",
"name": "Wrapped Ether",
"decimals": 18,
"logoUrl": null,
"priceUsd": 3200
},
"currentTick": 200000,
"indexedAt": 1761000000,
"historyEnd": 1760918400,
"price": {
"current": 0.0003125,
"change24hPct": 1.2,
"low7d": 0.00030303,
"high7d": 0.00032258
},
"range7d": {
"low": 0.00030303,
"high": 0.00032258,
"current": 0.0003125
},
"avgDailyVolumeUsd": {
"d7": 1200000,
"d14": 980000,
"d30": 870000
},
"liquidityUsd": 150000000,
"liquidityInRangeUsd": 42000000,
"positions": {
"total": 12000,
"active": 3400,
"inRange": 900,
"lpAddresses": 8000,
"lpAddressesInRange": 700
},
"fees7dUsd": 420000,
"aprPct": 18.4,
"swapsIndexed": true,
"history": [
{
"day": "2025-10-19",
"timestamp": 1760918400,
"activePositions": 3400,
"positionsInRange": 900,
"tvlUsd": 150000000,
"volumeUsd": 1200000,
"volume0": 600000,
"volume1": 187.5,
"feesUsd": 600,
"fees0": 300,
"fees1": 0.09,
"price": 0.0003125,
"volumeTvl": 0.008
}
],
"mints7d": {
"count": 40,
"volumeUsd": 1200000,
"lower": 0.00029412,
"upper": 0.00033333,
"lowerTick": 199000,
"upperTick": 201000
},
"updatedAt": 1761000000000
},
"request_id": "req_..."
}{
"error": {
"code": "INVALID_PARAMETER",
"message": "page must be a positive integer.",
"request_id": "req_..."
}
}{
"error": {
"code": "INVALID_API_KEY",
"message": "Missing API key.",
"request_id": "req_..."
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Insufficient API credits.",
"request_id": "req_..."
}
}{
"error": {
"code": "ACCOUNT_SUSPENDED",
"message": "This organization is suspended.",
"request_id": "req_..."
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Pool not found",
"request_id": "req_..."
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later.",
"request_id": "req_..."
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred.",
"request_id": "req_..."
}
}Authorizations
Path Parameters
Chain ID with an indexed Uniswap V3 or Aerodrome position manager. Uniswap V3: 1, 10, 56, 130, 137, 143, 4663, 8453, 42161, 43114. Aerodrome: 8453.
1
Pool contract address, 0x plus 40 hex characters.
"0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640"
Query Parameters
Which way prices are quoted. Default: token1 per token0.
token1_per_token0, token0_per_token1 Comma-separated list of recentSwaps, history, and ticks. Omit to leave those arrays out.
"history"