Docs menuCoins

API reference

Coins

Public reads: coin lists, search, one coin, its trades, holders, chart and chat.

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.

Coin
{
  "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
}
FieldWhat it is
addressThe coin's address (its mint).
coinCreationTimeWhen it went live, in milliseconds.
coinMarketCapMarket cap in USD: price x 1,000,000,000 x the SOL price. 0 until a price is known.
usernameThe launcher's username, or the first 7 characters of the launcher's wallet.
creatorThe wallet that launched the coin on Zpad. (On chain, the creator is the Zpad launch wallet.)
holdersWallets in the newest holder count. The curve and the pool are not counted.
commentsChat messages on the coin.
featuredTrue for the coin with the most SOL traded in the last 24 hours.
solPriceThe price of one token in SOL.
bondingCurveThe coin's pump.fun bonding curve account.
bondingCurveCompleteTrue once the coin graduated.
bondingCurveProgress0 to 100. 100 once graduated.
raydiumPoolAddressThe coin's PumpSwap pool once graduated, else null. (The name is kept for older clients.)
migratedToRaydiumAtWhen it graduated, else null.
largestTradeSolAmount, largestTradeUsdAmountThe largest single trade, in lamports and USD.
volumeSol, volumeUsdAll trading, in lamports and USD.
change24hThe price change over 24 hours, in percent. Null until known.
marketCapAthUsdThe highest market cap seen, in USD. Null until known.
nsfwTrue when the team marked the coin NSFW.
signatureThe create transaction.
metadataIpfsUrlThe coin's metadata file.
raydiumVaultAddressA, raydiumVaultAddressB, migrationInPsolAlways null, null and false. Kept for older clients.

List coins

GET/api/v1/coinsNo sign in

A 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

NameTypeWhat it is
pagenumberPage, from 0. Default 0.
filterstringdiscover (on the curve, largest market cap first; the default), new (on the curve, newest first) or migrated (graduated, largest market cap first).
bondingCurveFrom, bondingCurveTonumberCurve progress range, in percent.
marketCapFrom, marketCapTonumberMarket cap range, in USD.
coinAgeFrom, coinAgeTonumberAge range, in minutes.
coinHoldersFrom, coinHoldersTonumberHolder count range.
toShowstringComma separated words (5 at most). Only coins with one of them in the name or ticker.
doNotShowstringComma separated words (5 at most). Hides coins with any of them in the name or ticker.
hideNsfwbooleantrue by default. Send false to include NSFW coins.

Response

Numbers in ranges may carry thousands commas. If the list cannot be read, it answers an empty list.

200
{
  "success": true,
  "message": "Coins fetched successfully",
  "data": {
    "coins": [Coin, ...],
    "totalCount": number,
    "page": number
  }
}

Errors

StatusMessageWhen
400Unknown filter.filter is not one of the three.

Example

Terminal
curl -s "/api/v1/coins?page=0&filter=new"

Search coins

GET/api/v1/coins/searchNo sign in

Finds 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

NameTypeWhat it is
searchTermstringWhat to look for. Up to 64 characters. Empty gives an empty list.
pagenumberPage, from 0. Default 0.

Response

200
{
  "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

StatusMessageWhen
429Too many searches. Wait a moment and try again.More than 60 searches a minute. This answer has no envelope: { error, code }.

Example

Terminal
curl -s "/api/v1/coins/search?searchTerm=<ticker>&page=0"
GET/api/v1/coin/featuredNo sign in

The 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

200
{
  "success": true,
  "message": "Featured coin fetched successfully",
  "data": Coin | null
}

Example

Terminal
curl -s "/api/v1/coin/featured"

One coin

GET/api/v1/coin/{address}No sign in

One 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

NameTypeWhat it is
addressstringThe coin's address (its mint).

Response

200
{
  "success": true,
  "message": "Coin fetched successfully",
  "data": Coin
}

Errors

StatusMessageWhen
404No such coin here.The coin was not launched on Zpad, or is not live.
500This could not be read just now. Try again in a moment.The database could not be read.

Example

Terminal
curl -s "/api/v1/coin/<coin address>"

Trades

GET/api/v1/coin/{address}/tradesNo sign in

A 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

NameTypeWhat it is
addressstringThe coin's address (its mint).

Query

NameTypeWhat it is
pagenumberPage, from 0. Default 0.
limitnumber1 to 200. Default 200.

Response

time is in milliseconds, amount in whole tokens, solAmount in SOL. A coin that is not here answers an empty list.

200
{
  "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

Terminal
curl -s "/api/v1/coin/<coin address>/trades?page=0&limit=50"

Holders

GET/api/v1/coin/{address}/holdersNo sign in

The 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

NameTypeWhat it is
addressstringThe coin's address (its mint).

Response

total is in raw units: divide by 1,000,000 for tokens. updatedAt is in seconds, 0 when no count exists yet.

200
{
  "success": true,
  "message": "Coin holders fetched successfully",
  "data": {
    "data": [
      { "total": "<raw units>", "user": "<wallet address>" }
    ],
    "updatedAt": number
  }
}

Example

Terminal
curl -s "/api/v1/coin/<coin address>/holders"

Candles

GET/api/v1/coin/{address}/candlestickNo sign in

Price 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

NameTypeWhat it is
addressstringThe coin's address (its mint).

Query

NameTypeWhat it is
resolutionstring1S, 5S, 1, 3, 60, 360, 1D or 5D: 1 second, 5 seconds, 1 minute, 3 minutes, 1 hour, 6 hours, 1 day, 5 days. Default 5S.
limitnumber1 to 2000 candles. Default 300.
toTimestampnumberThe last candle's time, in seconds. Default: now.

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.

200
{
  "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

StatusMessageWhen
400Unknown resolution.resolution is not one of the eight.

Example

Terminal
curl -s "/api/v1/coin/<coin address>/candlestick?resolution=60&limit=100"

Chat messages

GET/api/v1/coin/{address}/commentsNo sign in

A 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

NameTypeWhat it is
addressstringThe coin's address (its mint).

Query

NameTypeWhat it is
pagenumberPage, from 0. Default 0.
limitnumber1 to 200. Default 100.

Response

A person without a username shows as "Guest #" and a number.

200
{
  "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

Terminal
curl -s "/api/v1/coin/<coin address>/comments?page=0&limit=100"
Cookies On Our Website. We use cookies to keep you signed in and remember your settings.