API reference
Coins
Public reads: coin lists, search, one coin, its trades, holders, chart and chat.
- GET
/api/v1/coins - GET
/api/v1/coins/search - GET
/api/v1/coin/featured - GET
/api/v1/coin/{address} - GET
/api/v1/coin/{address}/trades - GET
/api/v1/coin/{address}/holders - GET
/api/v1/coin/{address}/candlestick - GET
/api/v1/coin/{address}/comments
The Coin object
Every coin answer uses this object. Only coins launched through Zpad and proven live on chain appear. Once $ZPAD launches, its object also carries "official": true.
{
"address": "<coin address>",
"coinSymbol": "<ticker>",
"coinName": "<name>",
"coinSrc": "<picture URL>",
"coinCreationTime": number,
"coinMarketCap": number,
"username": "<launcher username>",
"holders": number,
"comments": number,
"xUrl": "<X link>" | null,
"websiteUrl": "<website link>" | null,
"telegramUrl": "<Telegram link>" | null,
"featured": boolean,
"solPrice": "<SOL per token>",
"coinDescription": "<about text>" | null,
"bondingCurve": "<bonding curve address>",
"creator": "<launcher wallet>",
"bondingCurveComplete": boolean,
"bondingCurveProgress": number,
"raydiumPoolAddress": "<PumpSwap pool address>" | null,
"migratedToRaydiumAt": "<ISO time>" | null,
"raydiumVaultAddressA": null,
"raydiumVaultAddressB": null,
"migrationInPsol": false,
"largestTradeSolAmount": "<lamports>",
"largestTradeUsdAmount": "<USD>",
"nsfw": boolean,
"signature": "<create transaction signature>" | null,
"volumeSol": "<lamports>",
"volumeUsd": "<USD>",
"change24h": number | null,
"marketCapAthUsd": number | null,
"metadataIpfsUrl": "<metadata URL>" | null
}List coins
/api/v1/coinsNo sign inA page of 48 coins and the total count. The explorer uses new for New, discover for Graduating and migrated for Migrated.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Query
Response
Numbers in ranges may carry thousands commas. If the list cannot be read, it answers an empty list.
{
"success": true,
"message": "Coins fetched successfully",
"data": {
"coins": [Coin, ...],
"totalCount": number,
"page": number
}
}Errors
Example
curl -s "/api/v1/coins?page=0&filter=new"Search coins
/api/v1/coins/searchNo sign inFinds coins by name, ticker or address, 10 a page. An exact address or ticker comes first, then the largest market cap. A leading $, # or @ is dropped.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- 60 a minute per address (IP)
Query
Response
{
"success": true,
"message": "Search results fetched successfully",
"data": {
"data": [
{
"mint": "<coin address>",
"name": "<name>",
"symbol": "<ticker>",
"image_uri": "<picture URL>",
"coinMarketCap": number,
"solPrice": "<SOL per token>",
"isMigratedToken": boolean
}
],
"nextPage": number | null
}
}Errors
Example
curl -s "/api/v1/coins/search?searchTerm=<ticker>&page=0"Featured coin
/api/v1/coin/featuredNo sign inThe live coin, not marked NSFW, with the most SOL traded in the last 24 hours. Null when nothing traded.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Response
{
"success": true,
"message": "Featured coin fetched successfully",
"data": Coin | null
}Example
curl -s "/api/v1/coin/featured"One coin
/api/v1/coin/{address}No sign inOne coin by its address. 404 when it was not launched on Zpad.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 5 seconds at the edge
- Rate limit
- None of its own
Path
Response
{
"success": true,
"message": "Coin fetched successfully",
"data": Coin
}Errors
Example
curl -s "/api/v1/coin/<coin address>"Trades
/api/v1/coin/{address}/tradesNo sign inA coin's trades, newest first, on the curve and on PumpSwap.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 5 seconds at the edge
- Rate limit
- None of its own
Path
Query
Response
time is in milliseconds, amount in whole tokens, solAmount in SOL. A coin that is not here answers an empty list.
{
"success": true,
"message": "Coin trades fetched successfully",
"data": [
{
"publicKey": "<trader wallet>",
"isBuy": boolean,
"time": number,
"price": "<SOL per token>",
"amount": number,
"totalUsd": number,
"signature": "<transaction signature>",
"solAmount": number
}
]
}Example
curl -s "/api/v1/coin/<coin address>/trades?page=0&limit=50"Holders
/api/v1/coin/{address}/holdersNo sign inThe top 50 holders from the newest count (taken about every 10 minutes), largest first. The bonding curve and the PumpSwap pool are included.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Path
Response
total is in raw units: divide by 1,000,000 for tokens. updatedAt is in seconds, 0 when no count exists yet.
{
"success": true,
"message": "Coin holders fetched successfully",
"data": {
"data": [
{ "total": "<raw units>", "user": "<wallet address>" }
],
"updatedAt": number
}
}Example
curl -s "/api/v1/coin/<coin address>/holders"Candles
/api/v1/coin/{address}/candlestickNo sign inPrice candles built from the coin's trades, oldest first.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 5 seconds at the edge
- Rate limit
- None of its own
Path
Query
Response
time is the candle's start, in seconds. Only intervals with trades have a candle. A coin that is not here answers an empty list.
{
"success": true,
"message": "Coin candlestick data fetched successfully",
"data": [
{
"time": number,
"open": "<SOL per token>",
"high": "<SOL per token>",
"low": "<SOL per token>",
"close": "<SOL per token>",
"volume": "<USD>",
"trade_count": number
}
]
}Errors
Example
curl -s "/api/v1/coin/<coin address>/candlestick?resolution=60&limit=100"Chat messages
/api/v1/coin/{address}/commentsNo sign inA coin's chat, newest first. Messages hidden by the team never show.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 5 seconds at the edge
- Rate limit
- None of its own
Path
Query
Response
A person without a username shows as "Guest #" and a number.
{
"success": true,
"message": "Coin comments fetched successfully",
"data": [
{
"id": "<message id>",
"message": "<text>",
"createdAt": "<ISO time>",
"user": {
"username": "<username>",
"image": null,
"publicKey": "<wallet address>"
}
}
]
}Example
curl -s "/api/v1/coin/<coin address>/comments?page=0&limit=100"