curl --request GET \
--url https://api.lpagent.io/open-api/v1/pools/discover \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lpagent.io/open-api/v1/pools/discover"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.lpagent.io/open-api/v1/pools/discover', 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.lpagent.io/open-api/v1/pools/discover",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.lpagent.io/open-api/v1/pools/discover"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.lpagent.io/open-api/v1/pools/discover")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lpagent.io/open-api/v1/pools/discover")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"pool": "5rCfABCxyz123",
"tvl": 125000.5,
"fee": 0.003,
"protocol": "meteora",
"chain": "SOL",
"token0": "So11111111111111111111111111111111111111112",
"token1": "<string>",
"vol_5m": 123,
"vol_1h": 123,
"vol_6h": 123,
"vol_24h": 800000,
"base_price": 150.25,
"quote_price": 1,
"mcap": 50000000,
"usd_price": 123,
"fdv": 123,
"organic_score": 75,
"top_holder": 123,
"mint_freeze": true,
"price_5m_change": 123,
"price_1h_change": 123,
"price_6h_change": 123,
"price_24h_change": 123,
"bin_step": 10,
"liquidity_token0": 123,
"liquidity_token1": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"first_pool_created_at": "2023-11-07T05:31:56Z",
"token0_symbol": "SOL",
"token0_name": "Solana",
"token0_decimals": 9,
"token1_symbol": "USDC",
"token1_name": "<string>",
"token1_decimals": 123,
"token0_stats": {
"volume": {
"stats1h": {
"volume": 123,
"volume_change": 123
},
"stats6h": {
"volume": 123,
"volume_change": 123
},
"stats24h": {
"volume": 123,
"volume_change": 123
}
},
"holders": 123
},
"token1_stats": {}
}
],
"pagination": {
"currentPage": 123,
"pageSize": 123,
"totalCount": 123,
"totalPages": 123,
"hasNextPage": true,
"hasPreviousPage": true
}
}Discover pools
Retrieve a list of pools with filtering, sorting, and pagination
curl --request GET \
--url https://api.lpagent.io/open-api/v1/pools/discover \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lpagent.io/open-api/v1/pools/discover"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.lpagent.io/open-api/v1/pools/discover', 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.lpagent.io/open-api/v1/pools/discover",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.lpagent.io/open-api/v1/pools/discover"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.lpagent.io/open-api/v1/pools/discover")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lpagent.io/open-api/v1/pools/discover")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"pool": "5rCfABCxyz123",
"tvl": 125000.5,
"fee": 0.003,
"protocol": "meteora",
"chain": "SOL",
"token0": "So11111111111111111111111111111111111111112",
"token1": "<string>",
"vol_5m": 123,
"vol_1h": 123,
"vol_6h": 123,
"vol_24h": 800000,
"base_price": 150.25,
"quote_price": 1,
"mcap": 50000000,
"usd_price": 123,
"fdv": 123,
"organic_score": 75,
"top_holder": 123,
"mint_freeze": true,
"price_5m_change": 123,
"price_1h_change": 123,
"price_6h_change": 123,
"price_24h_change": 123,
"bin_step": 10,
"liquidity_token0": 123,
"liquidity_token1": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"first_pool_created_at": "2023-11-07T05:31:56Z",
"token0_symbol": "SOL",
"token0_name": "Solana",
"token0_decimals": 9,
"token1_symbol": "USDC",
"token1_name": "<string>",
"token1_decimals": 123,
"token0_stats": {
"volume": {
"stats1h": {
"volume": 123,
"volume_change": 123
},
"stats6h": {
"volume": 123,
"volume_change": 123
},
"stats24h": {
"volume": 123,
"volume_change": 123
}
},
"holders": 123
},
"token1_stats": {}
}
],
"pagination": {
"currentPage": 123,
"pageSize": 123,
"totalCount": 123,
"totalPages": 123,
"hasNextPage": true,
"hasPreviousPage": true
}
}Authorizations
API key for authentication
Query Parameters
Blockchain network to query. SOL returns Meteora (DLMM / DAMM v2) data; ROBINHOOD returns Uniswap V3 and V4 data on Robinhood Chain (EVM, chain id 4663). Unrecognised values fall back to SOL.
SOL, ROBINHOOD Field to sort pools by
mcap, created_at, vol_24h, tvl, fee_tvl_ratio Sort order direction
asc, desc, default Page number for pagination
x >= 1Number of items per page
1 <= x <= 100Time interval for fee/TVL ratio calculation
5m, 1h, 6h, 24h Filter by quote token address
Minimum market cap filter
Maximum market cap filter
Minimum bin step filter
Maximum bin step filter
Minimum organic score filter
Maximum organic score filter
Minimum base fee filter
Maximum base fee filter
Minimum pool age in hours
Maximum pool age in hours
Minimum liquidity filter
Maximum liquidity filter
Minimum 24h fees filter
Maximum 24h fees filter
Minimum 24h volume filter
Maximum 24h volume filter
Minimum 1h volume filter
Maximum 1h volume filter
Pool protocol filter; all keeps every protocol on the chain. On SOL, meteora for DLMM and meteora_damm_v2 for DAMM V2. On ROBINHOOD, uniswap_v3 or uniswap_v4.
Search by pool name or token address
Was this page helpful?