import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.searchTokens({ query: 'BONK', limit: 10 });
curl --request GET \
--url https://data.solanatracker.io/search \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/search"
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://data.solanatracker.io/search', 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://data.solanatracker.io/search",
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://data.solanatracker.io/search"
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://data.solanatracker.io/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/search")
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": [
{
"id": "1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump_1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"name": "Search Example",
"symbol": "SEARCH",
"mint": "1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"image": "https://image.solanatracker.io/proxy?url=https%3A%2F%2Fipfs.io%2Fipfs%2Fbafkreieea4t7xuw6x52tzw3j4sl5khztxlvq6fkmmik2v4hue6gf3h6z4u",
"decimals": 6,
"hasSocials": true,
"hasCoinCommunity": true,
"communityMessages": 12,
"poolAddress": "9mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"liquidityUsd": 11448.851629727089,
"marketCapUsd": 5598.428247103462,
"priceUsd": 0.000005598428247103462,
"lpBurn": 100,
"market": "pumpfun",
"quoteToken": "So11111111111111111111111111111111111111112",
"freezeAuthority": null,
"mintAuthority": null,
"deployer": "46AxLXbx5bG3jGcT881u61v7aRoAftmtA4JBtfVyiEmv",
"status": "default",
"createdAt": 1760273456641,
"lastUpdated": 1760273468644,
"holders": 2,
"launchpad": {
"name": "",
"url": "",
"logo": "",
"curvePercentage": 6.366677291506747,
"fee": 0.25
},
"buys": 2,
"sells": 1,
"totalTransactions": 3,
"volume": 304.8940710222087,
"volume_5m": 286,
"volume_15m": 286,
"volume_30m": 286,
"volume_1h": 286,
"volume_6h": 286,
"volume_12h": 286,
"volume_24h": 286,
"top10": 5.0494,
"dev": 5.0494,
"insiders": 0,
"snipers": 0.3166,
"bundlers": {
"count": 0,
"balance": 0,
"percentage": 0
},
"riskScore": 10,
"socials": {
"twitter": "https://x.com/i/communities/1977354097570304425"
},
"fees": {
"total": 0.002086,
"totalTrading": 0.001966,
"totalTips": 0.00012
},
"tokenDetails": {
"creator": "46AxLXbx5bG3jGcT881u61v7aRoAftmtA4JBtfVyiEmv",
"tx": "58DshkoV4EeiAi5d9szUuZu1Rj8HzbK9TbPLV4RjC1defyETUJb3wVXLY2h1SnZFgQdjXJC2o59Ty44BSDNerpHm",
"time": 1760273457
}
}
],
"total": 13144556,
"pages": 13144556,
"page": 1,
"nextCursor": "WzE3NjAyNzM0NTY2NDEsIjltSG9XZm02ejJyUHdvWXZESm5iWExCcW4xS3o1dUZwaHN1WEZiTkVwdW1wIl0=",
"hasMore": true
}Token Search
按符号、名称或地址搜索代币,并提供多种筛选与排序选项。
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.searchTokens({ query: 'BONK', limit: 10 });
curl --request GET \
--url https://data.solanatracker.io/search \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/search"
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://data.solanatracker.io/search', 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://data.solanatracker.io/search",
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://data.solanatracker.io/search"
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://data.solanatracker.io/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/search")
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": [
{
"id": "1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump_1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"name": "Search Example",
"symbol": "SEARCH",
"mint": "1mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"image": "https://image.solanatracker.io/proxy?url=https%3A%2F%2Fipfs.io%2Fipfs%2Fbafkreieea4t7xuw6x52tzw3j4sl5khztxlvq6fkmmik2v4hue6gf3h6z4u",
"decimals": 6,
"hasSocials": true,
"hasCoinCommunity": true,
"communityMessages": 12,
"poolAddress": "9mHoWfm6z2rPwoYvDJnbXLBqn1Kz5uFphsuXFbNEpump",
"liquidityUsd": 11448.851629727089,
"marketCapUsd": 5598.428247103462,
"priceUsd": 0.000005598428247103462,
"lpBurn": 100,
"market": "pumpfun",
"quoteToken": "So11111111111111111111111111111111111111112",
"freezeAuthority": null,
"mintAuthority": null,
"deployer": "46AxLXbx5bG3jGcT881u61v7aRoAftmtA4JBtfVyiEmv",
"status": "default",
"createdAt": 1760273456641,
"lastUpdated": 1760273468644,
"holders": 2,
"launchpad": {
"name": "",
"url": "",
"logo": "",
"curvePercentage": 6.366677291506747,
"fee": 0.25
},
"buys": 2,
"sells": 1,
"totalTransactions": 3,
"volume": 304.8940710222087,
"volume_5m": 286,
"volume_15m": 286,
"volume_30m": 286,
"volume_1h": 286,
"volume_6h": 286,
"volume_12h": 286,
"volume_24h": 286,
"top10": 5.0494,
"dev": 5.0494,
"insiders": 0,
"snipers": 0.3166,
"bundlers": {
"count": 0,
"balance": 0,
"percentage": 0
},
"riskScore": 10,
"socials": {
"twitter": "https://x.com/i/communities/1977354097570304425"
},
"fees": {
"total": 0.002086,
"totalTrading": 0.001966,
"totalTips": 0.00012
},
"tokenDetails": {
"creator": "46AxLXbx5bG3jGcT881u61v7aRoAftmtA4JBtfVyiEmv",
"tx": "58DshkoV4EeiAi5d9szUuZu1Rj8HzbK9TbPLV4RjC1defyETUJb3wVXLY2h1SnZFgQdjXJC2o59Ty44BSDNerpHm",
"time": 1760273457
}
}
],
"total": 13144556,
"pages": 13144556,
"page": 1,
"nextCursor": "WzE3NjAyNzM0NTY2NDEsIjltSG9XZm02ejJyUHdvWXZESm5iWExCcW4xS3o1dUZwaHN1WEZiTkVwdW1wIl0=",
"hasMore": true
}SDK Example
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.searchTokens({ query: 'BONK', limit: 10 });
授权
用于鉴权的 API Key
查询参数
搜索词:代币符号、名称或地址
返回与指定符号完全匹配的全部代币
基于偏移分页时的页码
Primary page size for organic search hits (max 500, or max 100 when format=full). pages is calculated from this limit. The response data array may include up to 5 additional curated/promoted rows on top of the organic page, so data.length can be as high as limit + 5.
x <= 500响应格式。设为 full 时返回完整代币对象(结构与 GET /tokens/:token 一致,包含 token、pools、events、risk、buy、sell、txns、holders 等)。format=full 时每页上限为 100。
full 基于游标的分页 cursor(深度翻页时更快)
排序字段
liquidityUsd, marketCapUsd, priceUsd, volume, volume_5m, volume_15m, volume_30m, volume_1h, volume_6h, volume_12h, volume_24h, top10, dev, insiders, snipers, holders, buys, sells, totalTransactions, fees.total, fees.totalTrading, fees.totalTips, createdAt, lpBurn, curvePercentage, communityMessages 排序方向
asc, desc 是否仅有图代币:true 表示必须有头像;false 表示必须无头像。
是否含社交链接:true 表示必须有;false 表示必须无。
按图片 URL 或 IPFS 哈希精确筛选。支持完整 URL 或 IPFS CID。若 URL 含 /ipfs/,仅使用其中的哈希/CID 匹配(例如 QmXyZ… 可匹配任意网关下该 CID)。
500按发射台(launchpad)平台名筛选;多个值用英文逗号分隔(如 pumpfun,boop)。单个值行为与原先一致。
100启用时返回该代币关联的全部流动性池
在响应中包含涨跌幅等价格变动数据
最早创建时间(Unix 毫秒时间戳)
最晚创建时间(Unix 毫秒时间戳)
最早毕业时间(Unix 毫秒时间戳)
最晚毕业时间(Unix 毫秒时间戳)
最低流动性(美元)
最高流动性(美元,上限 1000 亿)
最低市值(美元)
最高市值(美元,上限 5 万亿)
最低成交额(美元,默认周期内)
最高成交额(美元,默认周期内)
按成交量筛选时的时间范围
5m, 15m, 30m, 1h, 6h, 12h, 24h 最低买入笔数
最高买入笔数
最低卖出笔数
最高卖出笔数
最低总成交笔数
最高总成交笔数
最低持币地址数
最高持币地址数
前 10 大地址合计持仓占比下限(0–100)
0 <= x <= 100前 10 大地址合计持仓占比上限(0–100)
0 <= x <= 100开发者持仓占比下限(0–100)
0 <= x <= 100开发者持仓占比上限(0–100)
0 <= x <= 100内部人持仓占比下限(0–100)
0 <= x <= 100内部人持仓占比上限(0–100)
0 <= x <= 100狙击者持仓占比下限(0–100)
0 <= x <= 100狙击者持仓占比上限(0–100)
0 <= x <= 100捆绑(bundler)地址数量下限
x >= 0捆绑(bundler)地址数量上限
x >= 0捆绑者持仓占比下限(0–100)
0 <= x <= 100捆绑者持仓占比上限(0–100)
0 <= x <= 100风险评分下限
x >= 0风险评分上限
x >= 0LP 代币销毁比例(0–100)
0 <= x <= 100市场标识;多个市场用英文逗号分隔(如 raydium,orca,pumpfun)。单个值行为与原先一致。
冻结权限地址(无则传 null)
铸造权限地址(无则传 null)
部署者钱包地址
代币创建者钱包地址
代币状态
graduating, graduated, default 联合曲线进度下限 %(0–100)
0 <= x <= 100联合曲线进度上限 %(0–100)
0 <= x <= 100Twitter/X 主页 URL(精确匹配)
Telegram 频道或群组 URL(精确匹配)
Discord 邀请链接(精确匹配)
官网 URL(精确匹配)
Facebook 专页 URL(精确匹配)
Instagram 主页 URL(精确匹配)
YouTube 频道 URL(精确匹配)
Reddit 社区 URL(精确匹配)
TikTok 主页 URL(精确匹配)
GitHub 仓库 URL(精确匹配)
累计支付费用下限(SOL)
累计支付费用上限(SOL)
交易手续费累计下限(SOL)
交易手续费累计上限(SOL)
优先费/小费累计下限(SOL)
优先费/小费累计上限(SOL)
按 Coin Communities 活跃度筛选。true 表示至少有一条已监控的社区消息;false 表示无已监控消息。
Coin Communities 实时消息数下限(含边界)
Coin Communities 实时消息数上限(含边界)
此页面对您有帮助吗?