GMGN token detail
One token on GMGN: symbol, name, decimals, logo and banner, price and price 1m/5m/1h/6h/24h ago, 1h and 24h volume, 24h buys, sells and swaps, holders, liquidity, circulating, total and max supply, creation, open and migration time, launchpad, main pool (exchange, quote token, liquidity, reserves), socials, creator, holder statistics (top-10 share, dev and creator holdings, bluechip owners, bots, fresh wallets, bundlers, snipers, insiders) and recent price candles. With include=security: security (mint and freeze authority, honeypot, can sell, buy/sell tax, burn, liquidity lock, flags, launchpad progress); with include=trades: recent_trades (time, buy or sell, wallet and its tags, token and quote amounts, USD value and price).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
chain | sol | eth | bsc | base | tron | blast | Blockchain (default sol). Example: sol |
addressrequired | string | Token contract address. Example: EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm |
candles | none | 1m | 5m | 15m | 1h | 4h | 1d | Candle size for the price history (default 1h; none to skip). |
candle_limit | integer | Number of candles (1-500, default 48). |
include | string | Extra parts, comma-separated: security, trades. |
trades_limit | integer | With include=trades: number of trades (1-100, default 20). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/gmgn/v1/token?address=EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/gmgn/v1/token",
params={"address": "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/gmgn/v1/token");
url.searchParams.set("address", "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).