Skip to content

Chart

Pulse chart candles for a tracked token.

Free, no auth required. Anonymous responses are cached briefly. Free, Starter, Growth, and Pro API keys bypass the anonymous cache and get higher rate limits.

Access

  • Anonymous: yes
  • Free API key: same endpoint, uncached, higher rate limits
  • Paid plans: same endpoint, highest rate limits
  • Rate limit bucket: Pulse reads

GET /v1/chart/:mint

Returns OHLCV candles for a tracked token. The API selects the best currently indexed pool and fetches candles server-side from GeckoTerminal.

Parameters:

  • :mint — Token symbol (SOL, JUP) or mint address

Query parameters:

  • range — Optional chart range. Supported: 1d (default), 7d, 30d.
  • interval — Optional candle interval. Supported combinations:
    • 1d: 5m, 15m (default), 1h
    • 7d: 1h (default), 4h, 1d
    • 30d: 4h, 1d (default)

Response:

json
{
  "token": {
    "symbol": "SOL",
    "mint": "So11111111111111111111111111111111111111112",
    "name": "Solana"
  },
  "mint": "So11111111111111111111111111111111111111112",
  "range": "1d",
  "interval": "15m",
  "source": "geckoterminal",
  "priceCurrency": "usd",
  "priceToken": "So11111111111111111111111111111111111111112",
  "pool": {
    "address": "...",
    "dex": "orca-whirlpool",
    "symbolA": "SOL",
    "symbolB": "USDC"
  },
  "candles": [
    {
      "time": 1712000000,
      "open": 175.1,
      "high": 176.8,
      "low": 174.9,
      "close": 176.2,
      "volume": 45213.9
    }
  ],
  "updatedAt": 1712000000000
}

Candle units: OHLC values are the requested token's price in USD (priceCurrency: "usd", priceToken: <mint>), consistent with /v1/prices — a stablecoin charts flat near $1, not the price of the pool's other leg. volume is in USD.

Deterministic status contract: a tracked token always returns 200 with a status field — 404 is reserved for unknown tokens.

statusMeaning
okCandles returned
warmingChart data temporarily unavailable (upstream refresh in progress); candles: [], pool: null. A Retry-After header says when to poll again — data usually exists.
unavailableNo candle data exists for any of this token's indexed pools; candles: [], pool: null.

Don't treat an empty candles array as an error — drive your UI off status. A deliberate placeholder (e.g. a flat line) is a fine warming state; the anti-pattern is inferring one from the absence of data, where it's indistinguishable from a real flat market.

Caching: requests authenticated with ?apiKey= (and anonymous requests) are edge-cached for 60s per full URL; requests authenticated with the x-api-key header bypass the edge cache. Candle data is additionally refreshed on a short server-side window aligned to the smallest interval, so identical polls are cheap regardless of auth style.

Defaults are intentionally cheap. Broader ranges are opt-in via range.

Unsupported range + interval combinations return 400.