API Reference
OHLCV Candles
Combined bonding + graduated candles
Returns OHLCV candle data for a token at a given interval.
Candles are combined across the bonding curve pool (when present) and the main graduated pool, and then normalized:
- bucket-snapped and sorted
- deduplicated per bucket (merging OHLCV when buckets overlap)
- continuity enforced (each candle open matches the previous candle close)
Endpoint#
GET /token/ohlcv/:tokenAddress/:timeframe
Supported timeframes include: 1s, 15s, 30s, 1m, 5m, 15m, 1h, 4h, 1d.
Query params#
| Param | Type | Description |
|---|---|---|
| time_to | number | Optional unix seconds cursor (inclusive). Use to backfill older candles. |
Request (curl)#
curl -H "x-api-key: YOUR_KEY" \
"https://us-east.dritan.dev/token/ohlcv/So11111111111111111111111111111111111111112/1m"
Request (TypeScript, SDK)#
import { DritanClient } from "dritan-sdk";
const client = new DritanClient({ apiKey: "YOUR_KEY" });
const res = await client.getTokenOhlcv("So11111111111111111111111111111111111111112", "1m");
console.log(res.closed.length, res.active?.close);
If users ask by ticker/name (for example $WIF) instead of mint, resolve first:
const search = await client.searchTokens("WIF", { limit: 1 });
const mint = String(
search.data?.[0]?.mint ??
search.data?.[0]?.tokenAddress ??
search.results?.[0]?.mint ??
search.results?.[0]?.tokenAddress ??
""
);
const candles = await client.getTokenOhlcv(mint, "1m");
console.log(mint, candles.closed.length);
Response#
{
"mint": "So11111111111111111111111111111111111111112",
"timeframe": "1m",
"bucketSizeSec": 60,
"bondingPoolId": "BondingPoolIdOrNull",
"graduatedPoolId": "GraduatedPoolIdOrNull",
"closed": [
{ "time": 1710000000, "open": 0.01, "high": 0.02, "low": 0.009, "close": 0.015, "volume": 123.45 }
],
"active": null
}