dydt.aiTerminalTerminalDevelopers
DocsAPI referenceChangelog
Open terminalGet API key

GET STARTED

OverviewQuickstartCore concepts

REFERENCE

HTTP endpointsWebSocket streams

ACCOUNT

API keysPricing and billing

GUIDES

AI agentsBuild your own agentChart embedChangelog

SPECS

OpenAPI JSON ↗AsyncAPI JSON ↗
Developers/Reference

HTTP endpoints

Pick an endpoint, fill its parameters, and send a live request. Copy the same call as cURL, JavaScript, or Python.

Endpoint reference

Paste an API key to try any route here. Copy the code sample to call it from your server.

Create key →
Kept in this tab only. Free keys include REST.

Token Research

Charts & Pools

Trades

Discovery

Smart Money

Wallet Analysis

Token Research

Token Search

Find tokens by name, symbol, or mint address.

GET/tokens/search

Symbols are not unique. Search by mint address, or use match=exact, when you need one specific token.

Query parameters
Advanced optional parameters 1
Paste an API key.
curl --get 'https://data.dydt.ai/v1/tokens/search' \
  --data-urlencode 'q=bonk' \
  --data-urlencode 'match=smart' \
  --data-urlencode 'sort=relevance' \
  --data-urlencode 'order=desc' \
  --data-urlencode 'limit=10' \
  --header "Authorization: Bearer $DYDT_API_KEY"
const url = new URL("https://data.dydt.ai/v1/tokens/search");
url.search = new URLSearchParams({
  "q": "bonk",
  "match": "smart",
  "sort": "relevance",
  "order": "desc",
  "limit": "10",
}).toString();

const response = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.DYDT_API_KEY}` },
});
const body = await response.json();
if (body.code !== 0) throw new Error(`${body.error}: ${body.message}`);
console.log(body.data, body.pagination);
import os
import requests

response = requests.get(
    "https://data.dydt.ai/v1/tokens/search",
    params={
        "q": "bonk",
        "match": "smart",
        "sort": "relevance",
        "order": "desc",
        "limit": "10",
    },
    headers={"Authorization": f"Bearer {os.environ['DYDT_API_KEY']}"},
    timeout=15,
)
body = response.json()
if body["code"] != 0:
    raise RuntimeError(f"{body['error']}: {body['message']}")
print(body["data"], body.get("pagination"))
RESPONSE JSONNot sent yet

Send the request to see the live response here. ⌘ Enter sends from any field.

Response

data is an array; each item has these fields.

Symbols are not unique. Search by mint address, or use match=exact, when you need one specific token.

  • token_addressstring

    Token mint address.

  • pool_addressstring

    Main pool for the token.

  • symbolstringnullable

    Token symbol.

  • namestringnullable

    Token name.

  • image_urlstringnullable

    Token image URL on the dydt CDN.

  • market_cap_quotenumber

    Market cap in the quote asset.

  • market_cap_usdnumber

    Market cap in USD.

  • ath_market_cap_quotenumber

    Highest market cap seen, in the quote asset.

  • ath_market_cap_usdnumber

    Highest market cap seen, in USD.

  • liquidity_quotenumber

    Pool liquidity in the quote asset.

  • liquidity_usdnumber

    Pool liquidity in USD.

  • volume_quotenumber

    Volume over the requested window, or all time without one.

  • volume_usdnumber

    Volume in USD over the same period.

  • trader_countinteger

    Distinct wallets that have traded the token (approximate).

  • buy_countinteger

    Buys over the same period as volume.

  • sell_countinteger

    Sells over the same period as volume.

  • socialsmap

    Platform name to URL, for example twitter, telegram, website. Only known links are present.

  • dexstringnullable

    Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora.

  • pool_typestringnullable

    Pool model. One of bonding_curve, amm, cpmm, clmm.

  • bonding_curve_progress_pctnumbernullable

    Bonding curve completion, 0 to 100; null for pools without a curve.

  • migratedboolean

    True once the token has left its bonding curve.

  • created_atinteger

    Pool creation time.