List Pools
curl --request GET \
--url https://api.hadron.fi/poolsimport requests
url = "https://api.hadron.fi/pools"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hadron.fi/pools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hadron.fi/pools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hadron.fi/pools"
req, _ := http.NewRequest("GET", url, nil)
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.hadron.fi/pools")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hadron.fi/pools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"total": 3,
"pages": 1,
"current_page": 1,
"page_size": 20,
"data": [
{
"address": "7ZRLTJBvJSy9VDyZmDoGW4b7noorCYnLUisyAXh7hxMz",
"name": "SOL/USDC",
"token_x": {
"address": "So11111111111111111111111111111111111111112",
"symbol": "SOL",
"name": "SOL",
"decimals": 9,
"icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png"
},
"token_y": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"name": "USDC",
"decimals": 6,
"icon": ""
},
"token_x_amount": 5413038034,
"token_y_amount": 515256215,
"pool_config": {
"authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"quoting_authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"oracle_mode": 0,
"pool_state": "Initialized",
"base_spread_bps": 5.0
},
"tvl": 990.81,
"current_price": 87.85,
"volume": { "24h": 364.16 },
"fees": { "24h": 0.59 }
}
]
}
Pools
List Pools
Returns a paginated list of all Hadron pools with token metadata, TVL, volume, and fees.
GET
/
pools
List Pools
curl --request GET \
--url https://api.hadron.fi/poolsimport requests
url = "https://api.hadron.fi/pools"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hadron.fi/pools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hadron.fi/pools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hadron.fi/pools"
req, _ := http.NewRequest("GET", url, nil)
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.hadron.fi/pools")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hadron.fi/pools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"total": 3,
"pages": 1,
"current_page": 1,
"page_size": 20,
"data": [
{
"address": "7ZRLTJBvJSy9VDyZmDoGW4b7noorCYnLUisyAXh7hxMz",
"name": "SOL/USDC",
"token_x": {
"address": "So11111111111111111111111111111111111111112",
"symbol": "SOL",
"name": "SOL",
"decimals": 9,
"icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png"
},
"token_y": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"name": "USDC",
"decimals": 6,
"icon": ""
},
"token_x_amount": 5413038034,
"token_y_amount": 515256215,
"pool_config": {
"authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"quoting_authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"oracle_mode": 0,
"pool_state": "Initialized",
"base_spread_bps": 5.0
},
"tvl": 990.81,
"current_price": 87.85,
"volume": { "24h": 364.16 },
"fees": { "24h": 0.59 }
}
]
}
Query Parameters
All filters combine with logical AND and stack with
query search and
cluster. total and pages reflect the filtered result set. An unrecognized
pool_state value simply returns zero matches.integer
default:"1"
1-based page number.
integer
default:"20"
Number of pools per page. Maximum
100.string
Search by pool name, token symbol, mint address, or pool address (configPda).
string
Filter to pools whose
authority exactly matches this pubkey.string
Filter to pools whose
quoting_authority exactly matches this pubkey.string
Filter to pools that include this mint address on either side (
token_x or token_y).string
Filter to pools whose base token (
token_x) mint matches this address.string
Filter to pools whose quote token (
token_y) mint matches this address.string
Filter by pool state. Case-insensitive. One of
Uninitialized, Initialized, Paused, RejectSwaps, Closed.string
default:"volume_24h:desc"
Sort field and direction. Format:
field:direction.Fields: tvl, volume_24h, fees_24hDirections: asc, descstring
default:"mainnet-beta"
Solana cluster —
mainnet-beta or devnet.Response
integer
Total number of pools matching the query.
integer
Total number of pages.
integer
Current page number.
integer
Number of pools per page.
array
Array of pool objects.
Show Pool object
Show Pool object
string
Pool config PDA address.
string
Pool display name (e.g.
SOL/USDC).object
object
Quote token metadata (same shape as
token_x).integer
Raw vault X balance (base token).
integer
Raw vault Y balance (quote token).
object
number
Total value locked in USD.
number
Current midprice (human-readable, e.g.
87.85 for SOL/USDC).{
"total": 3,
"pages": 1,
"current_page": 1,
"page_size": 20,
"data": [
{
"address": "7ZRLTJBvJSy9VDyZmDoGW4b7noorCYnLUisyAXh7hxMz",
"name": "SOL/USDC",
"token_x": {
"address": "So11111111111111111111111111111111111111112",
"symbol": "SOL",
"name": "SOL",
"decimals": 9,
"icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png"
},
"token_y": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"name": "USDC",
"decimals": 6,
"icon": ""
},
"token_x_amount": 5413038034,
"token_y_amount": 515256215,
"pool_config": {
"authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"quoting_authority": "Bk2qYNMa4hUkbutBcb4JHhMqAbGEFZq4KjicpMCwC2wn",
"oracle_mode": 0,
"pool_state": "Initialized",
"base_spread_bps": 5.0
},
"tvl": 990.81,
"current_price": 87.85,
"volume": { "24h": 364.16 },
"fees": { "24h": 0.59 }
}
]
}