Universal Search
curl --request GET \
--url https://demo-api.mobula.io/api/2/fast-searchimport requests
url = "https://demo-api.mobula.io/api/2/fast-search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/fast-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://demo-api.mobula.io/api/2/fast-search",
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://demo-api.mobula.io/api/2/fast-search"
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://demo-api.mobula.io/api/2/fast-search")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/fast-search")
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{
"data": [
{
"address": "<string>",
"chainId": "<string>",
"symbol": "<string>",
"name": "<string>",
"priceTokenString": "<string>",
"approximateReserveTokenRaw": "<string>",
"logo": "<string>",
"bondedAt": "<string>",
"createdAt": "<string>",
"latestTradeDate": "<string>",
"description": "<string>",
"socials": {
"twitter": "<string>",
"website": "<string>",
"telegram": "<string>",
"others": {},
"uri": "<string>"
},
"security": {
"buyTax": "<string>",
"sellTax": "<string>",
"transferPausable": true,
"top10Holders": "<string>",
"isBlacklisted": true,
"noMintAuthority": true,
"isFreezable": true,
"balanceMutable": true,
"lowLiquidity": "<string>",
"burnRate": "<string>",
"liquidityBurnPercentage": 123,
"transferTax": "<string>",
"isHoneypot": true,
"isNotOpenSource": true,
"renounced": true,
"locked": "<string>",
"isWhitelisted": true,
"isMintable": true,
"modifyableTax": true,
"selfDestruct": true
},
"liveStatus": "<string>",
"liveThumbnail": "<string>",
"livestreamTitle": "<string>",
"liveReplyCount": 123,
"decimals": 0,
"id": null,
"priceUSD": 0,
"priceToken": 0,
"approximateReserveUSD": 0,
"approximateReserveToken": 0,
"totalSupply": 0,
"circulatingSupply": 0,
"marketCapUSD": 0,
"marketCapDilutedUSD": 0,
"originLogoUrl": "<string>",
"rank": null,
"cexs": [],
"exchange": {
"name": "<string>",
"logo": "<string>"
},
"factory": "<string>",
"source": "<string>",
"sourceFactory": "<string>",
"sourceMetadata": {
"name": "<string>",
"logo": "<string>"
},
"sourceFactoryMetadata": {
"name": "<string>",
"logo": "<string>"
},
"liquidityUSD": 123,
"liquidityMaxUSD": 123,
"bonded": true,
"bondingPercentage": 123,
"migrating": true,
"bondingCurveAddress": "<string>",
"preBondingFactory": "<string>",
"poolAddress": "<string>",
"blockchain": "<string>",
"type": "<string>",
"tokenType": "2020",
"deployer": "<string>",
"athUSD": 123,
"atlUSD": 123,
"athDate": "<string>",
"atlDate": "<string>",
"priceChange1minPercentage": 0,
"priceChange5minPercentage": 0,
"priceChange1hPercentage": 0,
"priceChange4hPercentage": 0,
"priceChange6hPercentage": 0,
"priceChange12hPercentage": 0,
"priceChange24hPercentage": 0,
"poolPriceChange1minPercentage": 0,
"poolPriceChange5minPercentage": 0,
"poolPriceChange1hPercentage": 0,
"poolPriceChange4hPercentage": 0,
"poolPriceChange6hPercentage": 0,
"poolPriceChange12hPercentage": 0,
"poolPriceChange24hPercentage": 0,
"liquidityBurnPercentage": 123,
"volume1minUSD": 0,
"volume5minUSD": 0,
"volume15minUSD": 0,
"volume1hUSD": 0,
"volume4hUSD": 0,
"volume6hUSD": 0,
"volume12hUSD": 0,
"volume24hUSD": 0,
"volumeBuy1minUSD": 0,
"volumeBuy5minUSD": 0,
"volumeBuy15minUSD": 0,
"volumeBuy1hUSD": 0,
"volumeBuy4hUSD": 0,
"volumeBuy6hUSD": 0,
"volumeBuy12hUSD": 0,
"volumeBuy24hUSD": 0,
"volumeSell1minUSD": 0,
"volumeSell5minUSD": 0,
"volumeSell15minUSD": 0,
"volumeSell1hUSD": 0,
"volumeSell4hUSD": 0,
"volumeSell6hUSD": 0,
"volumeSell12hUSD": 0,
"volumeSell24hUSD": 0,
"trades1min": 0,
"trades5min": 0,
"trades15min": 0,
"trades1h": 0,
"trades4h": 0,
"trades6h": 0,
"trades12h": 0,
"trades24h": 0,
"buys1min": 0,
"buys5min": 0,
"buys15min": 0,
"buys1h": 0,
"buys4h": 0,
"buys6h": 0,
"buys12h": 0,
"buys24h": 0,
"sells1min": 0,
"sells5min": 0,
"sells15min": 0,
"sells1h": 0,
"sells4h": 0,
"sells6h": 0,
"sells12h": 0,
"sells24h": 0,
"buyers1min": 0,
"buyers5min": 0,
"buyers15min": 0,
"buyers1h": 0,
"buyers4h": 0,
"buyers6h": 0,
"buyers12h": 0,
"buyers24h": 0,
"sellers1min": 0,
"sellers5min": 0,
"sellers15min": 0,
"sellers1h": 0,
"sellers4h": 0,
"sellers6h": 0,
"sellers12h": 0,
"sellers24h": 0,
"traders1min": 0,
"traders5min": 0,
"traders15min": 0,
"traders1h": 0,
"traders4h": 0,
"traders6h": 0,
"traders12h": 0,
"traders24h": 0,
"feesPaid1minUSD": 0,
"feesPaid5minUSD": 0,
"feesPaid15minUSD": 0,
"feesPaid1hUSD": 0,
"feesPaid4hUSD": 0,
"feesPaid6hUSD": 0,
"feesPaid12hUSD": 0,
"feesPaid24hUSD": 0,
"totalFeesPaidUSD": 0,
"totalFeesPaidNativeRaw": "0",
"organicTrades1min": 0,
"organicTrades5min": 0,
"organicTrades15min": 0,
"organicTrades1h": 0,
"organicTrades4h": 0,
"organicTrades6h": 0,
"organicTrades12h": 0,
"organicTrades24h": 0,
"organicTraders1min": 0,
"organicTraders5min": 0,
"organicTraders15min": 0,
"organicTraders1h": 0,
"organicTraders4h": 0,
"organicTraders6h": 0,
"organicTraders12h": 0,
"organicTraders24h": 0,
"organicVolume1minUSD": 0,
"organicVolume5minUSD": 0,
"organicVolume15minUSD": 0,
"organicVolume1hUSD": 0,
"organicVolume4hUSD": 0,
"organicVolume6hUSD": 0,
"organicVolume12hUSD": 0,
"organicVolume24hUSD": 0,
"organicVolumeBuy1minUSD": 0,
"organicVolumeBuy5minUSD": 0,
"organicVolumeBuy15minUSD": 0,
"organicVolumeBuy1hUSD": 0,
"organicVolumeBuy4hUSD": 0,
"organicVolumeBuy6hUSD": 0,
"organicVolumeBuy12hUSD": 0,
"organicVolumeBuy24hUSD": 0,
"organicVolumeSell1minUSD": 0,
"organicVolumeSell5minUSD": 0,
"organicVolumeSell15minUSD": 0,
"organicVolumeSell1hUSD": 0,
"organicVolumeSell4hUSD": 0,
"organicVolumeSell6hUSD": 0,
"organicVolumeSell12hUSD": 0,
"organicVolumeSell24hUSD": 0,
"organicBuys1min": 0,
"organicBuys5min": 0,
"organicBuys15min": 0,
"organicBuys1h": 0,
"organicBuys4h": 0,
"organicBuys6h": 0,
"organicBuys12h": 0,
"organicBuys24h": 0,
"organicSells1min": 0,
"organicSells5min": 0,
"organicSells15min": 0,
"organicSells1h": 0,
"organicSells4h": 0,
"organicSells6h": 0,
"organicSells12h": 0,
"organicSells24h": 0,
"organicBuyers1min": 0,
"organicBuyers5min": 0,
"organicBuyers15min": 0,
"organicBuyers1h": 0,
"organicBuyers4h": 0,
"organicBuyers6h": 0,
"organicBuyers12h": 0,
"organicBuyers24h": 0,
"organicSellers1min": 0,
"organicSellers5min": 0,
"organicSellers15min": 0,
"organicSellers1h": 0,
"organicSellers4h": 0,
"organicSellers6h": 0,
"organicSellers12h": 0,
"organicSellers24h": 0,
"holdersCount": 123,
"twitterReusesCount": 0,
"twitterRenameCount": 0,
"twitterRenameHistory": [],
"deployerMigrationsCount": 0,
"deployerTokensCount": 0,
"securityScore": null,
"securityScoreUpdatedAt": null,
"dexscreenerListed": false,
"dexscreenerHeader": null,
"dexscreenerAdPaid": false,
"dexscreenerAdPaidDate": null,
"dexScreenerEnhanced": null,
"dexscreenerPendingAt": null,
"dexscreenerSocialPaid": false,
"dexscreenerSocialPaidDate": null,
"dexscreenerBoosted": false,
"dexscreenerBoostedDate": null,
"dexscreenerBoostedAmount": 0,
"surgeScore": null,
"isMayhemMode": null,
"isCashbackCoin": null,
"isAgentMode": null,
"isOGCoin": null,
"top10HoldingsPercentage": 123,
"top50HoldingsPercentage": 123,
"top100HoldingsPercentage": 123,
"top200HoldingsPercentage": 123,
"devHoldingsPercentage": 123,
"insidersHoldingsPercentage": 123,
"bundlersHoldingsPercentage": 123,
"snipersHoldingsPercentage": 123,
"proTradersHoldingsPercentage": 123,
"freshTradersHoldingsPercentage": 123,
"smartTradersHoldingsPercentage": 123,
"insidersCount": 123,
"bundlersCount": 123,
"snipersCount": 123,
"freshTradersCount": 123,
"proTradersCount": 123,
"smartTradersCount": 123,
"freshTradersBuys": 123,
"proTradersBuys": 123,
"smartTradersBuys": 123
}
]
}Metacore
Universal Search
GET
/
2
/
fast-search
Universal Search
curl --request GET \
--url https://demo-api.mobula.io/api/2/fast-searchimport requests
url = "https://demo-api.mobula.io/api/2/fast-search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://demo-api.mobula.io/api/2/fast-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://demo-api.mobula.io/api/2/fast-search",
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://demo-api.mobula.io/api/2/fast-search"
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://demo-api.mobula.io/api/2/fast-search")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo-api.mobula.io/api/2/fast-search")
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{
"data": [
{
"address": "<string>",
"chainId": "<string>",
"symbol": "<string>",
"name": "<string>",
"priceTokenString": "<string>",
"approximateReserveTokenRaw": "<string>",
"logo": "<string>",
"bondedAt": "<string>",
"createdAt": "<string>",
"latestTradeDate": "<string>",
"description": "<string>",
"socials": {
"twitter": "<string>",
"website": "<string>",
"telegram": "<string>",
"others": {},
"uri": "<string>"
},
"security": {
"buyTax": "<string>",
"sellTax": "<string>",
"transferPausable": true,
"top10Holders": "<string>",
"isBlacklisted": true,
"noMintAuthority": true,
"isFreezable": true,
"balanceMutable": true,
"lowLiquidity": "<string>",
"burnRate": "<string>",
"liquidityBurnPercentage": 123,
"transferTax": "<string>",
"isHoneypot": true,
"isNotOpenSource": true,
"renounced": true,
"locked": "<string>",
"isWhitelisted": true,
"isMintable": true,
"modifyableTax": true,
"selfDestruct": true
},
"liveStatus": "<string>",
"liveThumbnail": "<string>",
"livestreamTitle": "<string>",
"liveReplyCount": 123,
"decimals": 0,
"id": null,
"priceUSD": 0,
"priceToken": 0,
"approximateReserveUSD": 0,
"approximateReserveToken": 0,
"totalSupply": 0,
"circulatingSupply": 0,
"marketCapUSD": 0,
"marketCapDilutedUSD": 0,
"originLogoUrl": "<string>",
"rank": null,
"cexs": [],
"exchange": {
"name": "<string>",
"logo": "<string>"
},
"factory": "<string>",
"source": "<string>",
"sourceFactory": "<string>",
"sourceMetadata": {
"name": "<string>",
"logo": "<string>"
},
"sourceFactoryMetadata": {
"name": "<string>",
"logo": "<string>"
},
"liquidityUSD": 123,
"liquidityMaxUSD": 123,
"bonded": true,
"bondingPercentage": 123,
"migrating": true,
"bondingCurveAddress": "<string>",
"preBondingFactory": "<string>",
"poolAddress": "<string>",
"blockchain": "<string>",
"type": "<string>",
"tokenType": "2020",
"deployer": "<string>",
"athUSD": 123,
"atlUSD": 123,
"athDate": "<string>",
"atlDate": "<string>",
"priceChange1minPercentage": 0,
"priceChange5minPercentage": 0,
"priceChange1hPercentage": 0,
"priceChange4hPercentage": 0,
"priceChange6hPercentage": 0,
"priceChange12hPercentage": 0,
"priceChange24hPercentage": 0,
"poolPriceChange1minPercentage": 0,
"poolPriceChange5minPercentage": 0,
"poolPriceChange1hPercentage": 0,
"poolPriceChange4hPercentage": 0,
"poolPriceChange6hPercentage": 0,
"poolPriceChange12hPercentage": 0,
"poolPriceChange24hPercentage": 0,
"liquidityBurnPercentage": 123,
"volume1minUSD": 0,
"volume5minUSD": 0,
"volume15minUSD": 0,
"volume1hUSD": 0,
"volume4hUSD": 0,
"volume6hUSD": 0,
"volume12hUSD": 0,
"volume24hUSD": 0,
"volumeBuy1minUSD": 0,
"volumeBuy5minUSD": 0,
"volumeBuy15minUSD": 0,
"volumeBuy1hUSD": 0,
"volumeBuy4hUSD": 0,
"volumeBuy6hUSD": 0,
"volumeBuy12hUSD": 0,
"volumeBuy24hUSD": 0,
"volumeSell1minUSD": 0,
"volumeSell5minUSD": 0,
"volumeSell15minUSD": 0,
"volumeSell1hUSD": 0,
"volumeSell4hUSD": 0,
"volumeSell6hUSD": 0,
"volumeSell12hUSD": 0,
"volumeSell24hUSD": 0,
"trades1min": 0,
"trades5min": 0,
"trades15min": 0,
"trades1h": 0,
"trades4h": 0,
"trades6h": 0,
"trades12h": 0,
"trades24h": 0,
"buys1min": 0,
"buys5min": 0,
"buys15min": 0,
"buys1h": 0,
"buys4h": 0,
"buys6h": 0,
"buys12h": 0,
"buys24h": 0,
"sells1min": 0,
"sells5min": 0,
"sells15min": 0,
"sells1h": 0,
"sells4h": 0,
"sells6h": 0,
"sells12h": 0,
"sells24h": 0,
"buyers1min": 0,
"buyers5min": 0,
"buyers15min": 0,
"buyers1h": 0,
"buyers4h": 0,
"buyers6h": 0,
"buyers12h": 0,
"buyers24h": 0,
"sellers1min": 0,
"sellers5min": 0,
"sellers15min": 0,
"sellers1h": 0,
"sellers4h": 0,
"sellers6h": 0,
"sellers12h": 0,
"sellers24h": 0,
"traders1min": 0,
"traders5min": 0,
"traders15min": 0,
"traders1h": 0,
"traders4h": 0,
"traders6h": 0,
"traders12h": 0,
"traders24h": 0,
"feesPaid1minUSD": 0,
"feesPaid5minUSD": 0,
"feesPaid15minUSD": 0,
"feesPaid1hUSD": 0,
"feesPaid4hUSD": 0,
"feesPaid6hUSD": 0,
"feesPaid12hUSD": 0,
"feesPaid24hUSD": 0,
"totalFeesPaidUSD": 0,
"totalFeesPaidNativeRaw": "0",
"organicTrades1min": 0,
"organicTrades5min": 0,
"organicTrades15min": 0,
"organicTrades1h": 0,
"organicTrades4h": 0,
"organicTrades6h": 0,
"organicTrades12h": 0,
"organicTrades24h": 0,
"organicTraders1min": 0,
"organicTraders5min": 0,
"organicTraders15min": 0,
"organicTraders1h": 0,
"organicTraders4h": 0,
"organicTraders6h": 0,
"organicTraders12h": 0,
"organicTraders24h": 0,
"organicVolume1minUSD": 0,
"organicVolume5minUSD": 0,
"organicVolume15minUSD": 0,
"organicVolume1hUSD": 0,
"organicVolume4hUSD": 0,
"organicVolume6hUSD": 0,
"organicVolume12hUSD": 0,
"organicVolume24hUSD": 0,
"organicVolumeBuy1minUSD": 0,
"organicVolumeBuy5minUSD": 0,
"organicVolumeBuy15minUSD": 0,
"organicVolumeBuy1hUSD": 0,
"organicVolumeBuy4hUSD": 0,
"organicVolumeBuy6hUSD": 0,
"organicVolumeBuy12hUSD": 0,
"organicVolumeBuy24hUSD": 0,
"organicVolumeSell1minUSD": 0,
"organicVolumeSell5minUSD": 0,
"organicVolumeSell15minUSD": 0,
"organicVolumeSell1hUSD": 0,
"organicVolumeSell4hUSD": 0,
"organicVolumeSell6hUSD": 0,
"organicVolumeSell12hUSD": 0,
"organicVolumeSell24hUSD": 0,
"organicBuys1min": 0,
"organicBuys5min": 0,
"organicBuys15min": 0,
"organicBuys1h": 0,
"organicBuys4h": 0,
"organicBuys6h": 0,
"organicBuys12h": 0,
"organicBuys24h": 0,
"organicSells1min": 0,
"organicSells5min": 0,
"organicSells15min": 0,
"organicSells1h": 0,
"organicSells4h": 0,
"organicSells6h": 0,
"organicSells12h": 0,
"organicSells24h": 0,
"organicBuyers1min": 0,
"organicBuyers5min": 0,
"organicBuyers15min": 0,
"organicBuyers1h": 0,
"organicBuyers4h": 0,
"organicBuyers6h": 0,
"organicBuyers12h": 0,
"organicBuyers24h": 0,
"organicSellers1min": 0,
"organicSellers5min": 0,
"organicSellers15min": 0,
"organicSellers1h": 0,
"organicSellers4h": 0,
"organicSellers6h": 0,
"organicSellers12h": 0,
"organicSellers24h": 0,
"holdersCount": 123,
"twitterReusesCount": 0,
"twitterRenameCount": 0,
"twitterRenameHistory": [],
"deployerMigrationsCount": 0,
"deployerTokensCount": 0,
"securityScore": null,
"securityScoreUpdatedAt": null,
"dexscreenerListed": false,
"dexscreenerHeader": null,
"dexscreenerAdPaid": false,
"dexscreenerAdPaidDate": null,
"dexScreenerEnhanced": null,
"dexscreenerPendingAt": null,
"dexscreenerSocialPaid": false,
"dexscreenerSocialPaidDate": null,
"dexscreenerBoosted": false,
"dexscreenerBoostedDate": null,
"dexscreenerBoostedAmount": 0,
"surgeScore": null,
"isMayhemMode": null,
"isCashbackCoin": null,
"isAgentMode": null,
"isOGCoin": null,
"top10HoldingsPercentage": 123,
"top50HoldingsPercentage": 123,
"top100HoldingsPercentage": 123,
"top200HoldingsPercentage": 123,
"devHoldingsPercentage": 123,
"insidersHoldingsPercentage": 123,
"bundlersHoldingsPercentage": 123,
"snipersHoldingsPercentage": 123,
"proTradersHoldingsPercentage": 123,
"freshTradersHoldingsPercentage": 123,
"smartTradersHoldingsPercentage": 123,
"insidersCount": 123,
"bundlersCount": 123,
"snipersCount": 123,
"freshTradersCount": 123,
"proTradersCount": 123,
"smartTradersCount": 123,
"freshTradersBuys": 123,
"proTradersBuys": 123,
"smartTradersBuys": 123
}
]
}Filters
Universal Search accepts an optionalfilters query parameter. The parameter is parsed as JSON, so you can either send a JSON object or a JSON string (for example, filters={"blockchains":"1,solana"} or its URL-encoded form). Keys and values are case-insensitive and surrounding whitespace is ignored.
blockchains
- Accepts either a comma-separated string or a JSON array.
- Supports both numeric chain identifiers (for example
1,8453,42161) and string identifiers (for examplesolana,evm:1,tron:sol). - You can freely mix numeric and string identifiers in the same request; the backend normalizes them before querying.
- Passing multiple IDs limits the search results to tokens that exist on any of the provided chains.
curl 'https://api.mobula.io/api/2/fast-search?input=eth&filters=%7B%22blockchains%22:%228453,1,42161,10,solana%22%7D&limit=5'
eth while restricting the results to Base (8453), Ethereum (1), Arbitrum (42161), Optimism (10), and Solana.
Search Modes
Prefix Search (default)
By default, the search performs a prefix match on token names and symbols. For example, searchingW will return tokens like “WETH”, “WBTC”, “Wrapped SOL”, etc.
For tokens whose on-chain name or symbol is not latin-script (e.g. Chinese meme tokens), the search also matches their stored translations: searching Niu finds 牛来 (translated “Niu Lai”), and searching 龙 finds tokens whose Chinese translation starts with 龙.
Address Prefix Search
Ifinput starts with an EVM address prefix such as 0x0e09, Universal Search also matches token contract addresses, pool addresses, and deployer addresses that start with that prefix.
curl 'https://api.mobula.io/api/2/fast-search?input=0x0e09&limit=5'
Exact Match (advanced)
Wrap your search term in double quotes to perform an exact match on the symbol. This is useful when you want to find a specific token without getting results that merely start with your query. Example:"W" will only return tokens with the exact symbol “W” (like Wormhole), not “WETH” or “WBTC”. Exact match is literal-only: translated names are not considered in this mode.
Use exact match when searching for short symbols (1-3 characters) to avoid noisy results.
sortBy (default: searchScore):
volume24hmarketCapcreatedAtvolume1hfeesPaid5minfeesPaid1hfeesPaid24hvolume5minholdersCountorganicVolume1htotalFeesPaidUsdsearchScoreliquidity
searchScore is a composite ranking metric calculated as
fees_paid_24h × quote_token_reserve_usd (using the largest pool by liquidity). This metric prioritizes tokens with both high trading fees and deep liquidity, making it ideal for discovering actively traded tokens with strong market depth.limit parameter (1 to 20, default: 5).
Performance scales with the number of results requested. Expect ~50ms for 5 results and up to ~250ms for 20 results.
Alpha Feature: When searching by address, the search also returns all tokens deployed by that address (deployer match).
Cookbook: multi-chain filtering
- Identify the chain identifiers you want to include. You can use numeric IDs (
1,56,8453) or string-based IDs (solana,evm:1,evm:8453). Both styles are supported in the same request. - Build the JSON payload for
filters. Set theblockchainsproperty to a comma-separated string of the identifiers (e.g."blockchains":"8453,1,solana"). You may also send an explicit JSON array such as"blockchains":["8453","1","solana"]. - URL-encode the JSON when embedding it inside a query string. Most HTTP libraries will do this automatically if you pass an object.
- Call
/api/2/fast-search?input=<term>&filters=<encoded-json>. The API returns only the top matches that exist on any of the requested chains, making it straightforward to focus on supported networks without enabling all chains globally.
limit and sortBy parameters to surface the most liquid matches on the networks that matter to you.
🔀 Need AND / OR / NOT filters?
The POST variant accepts a JSON body with the same payload shape as a single pulse v2
view — top-level chainId / poolTypes / sortBy / limit, plus a Prisma-like filters tree with AND / OR / NOT and the full leaf-operator set (gte, lte, in, contains, startsWith, …). Useful for per-chain conditional constraints that can’t be expressed as flat GET filters.Query Parameters
Search query string
Type of results to return
Available options:
tokens, assets, pairs JSON string with filter options: blockchains, poolTypes, excludeBonded, bondedOnly
Sort field for search results
Available options:
volume24h, marketCap, createdAt, volume1h, feesPaid5min, feesPaid1h, feesPaid24h, volume5min, holdersCount, organicVolume1h, totalFeesPaidUsd, searchScore, liquidity Exclude bonded tokens from results
Maximum number of results (1-20, default: 5)
Asset category names to filter on, backed by /api/1/metadata/categories
Response
200 - application/json
Universal Search response
Show child attributes
Show child attributes