Read API
The app serves what its indexer knows over three read-only JSON endpoints, at the app's own address (for example https://app.your-domain/api/...). There's no key and no write access.
Amounts are in base units, as strings, because they can exceed what a JavaScript number holds exactly: lamports for SOL (1 SOL = 1,000,000,000), millionths for USDC, and the token's own decimals for tokens. Prices are numbers, in the quote token per whole token. Times are Unix seconds.
GET /api/launches
Every Unbound launch the indexer has seen, or one with ?mint=.
| Parameter | |
|---|---|
mint | Optional. A token's mint address. |
[
{
"mint": "3AkzSyqA1f16jtS7iqeN1ugA4LwMRNWDXk7kF5T51KuV",
"pool": "6TEGAtrjQwusMAHeiSVEg931binBKZHBi7sdVDDXWSbi",
"createdAt": 1792046903,
"completedAt": null,
"migrated": false,
"lastPrice": 3.0064e-8,
"volume24h": "8572443955",
"trades": 9
}
]
| Field | |
|---|---|
pool | The launch's DBC pool, so you can read it directly. |
createdAt | When trading opened. null until the indexer has read the launch's first transaction. |
completedAt | When the curve completed, or null. |
migrated | Moved to its Meteora pool. |
lastPrice | Price after the latest trade, or null before any trade. |
volume24h | Quote token traded in the last 24 hours, base units. |
trades | All trades so far. |
Only on-chain state the indexer derives is here. Names, supply, reserves and fees owed come from the chain itself, for example through the SDK's getLaunches.
GET /api/trades
A launch's trades, newest first, 50 at a time.
| Parameter | |
|---|---|
mint | Required. |
before | Optional. A trade id: returns the 50 trades before it (for paging back). |
[
{
"id": 13,
"signature": "5bcy…wCGz",
"side": "buy",
"trader": "Hacv…NU8p",
"quoteAmount": "50000000",
"baseAmount": "1644762000000",
"fee": "500000",
"price": 3.0064e-8,
"timestamp": 1792049870
}
]
quoteAmount is what the buyer paid including the fee, or what the seller received after it. fee is the whole trading fee. price is the price after the trade.
GET /api/candles
Price candles for a chart.
| Parameter | |
|---|---|
mint | Required. |
interval | 1m, 5m (default), 15m, 1h, 4h or 1d. |
[{ "time": 1792049700, "open": 3.0e-8, "high": 3.04e-8, "low": 3.0e-8, "close": 3.0064e-8, "volume": 0.05 }]
Oldest first, only for intervals that had trades. time is the start of the interval; volume is in whole quote tokens. A candle opens at the previous trade's price (the launch's start price for the first one).
Errors
| Status | When |
|---|---|
400 | A missing or invalid parameter; the body says which: { "error": "mint must be a token address" } |
404 | /api/candles for a launch the indexer hasn't picked up yet. |
503 | The indexer isn't running. |
The endpoints don't send CORS headers, so browsers only allow them from the app itself; call them from a server or a script.