Prices API

Live and historical prices for every token on Charisma, recorded every 5 minutes since July 2025. Free, public and no key needed.

Building with AI? Copy one prompt that explains everything below, then tell your AI what you want to make.

Base URL

https://prices.charisma.rocks/api/v1

GET/prices

Every priced token: price in dollars and sBTC, change over 1 hour, 24 hours, 7 days and 30 days, and liquidity on Charisma. Sorted by liquidity.

tokens
Optional. Comma-separated contract ids to return only those tokens.
sparkline
Optional. 1 adds 7 days of closing prices (42 points) to each token, for small charts.

Example

curl "https://prices.charisma.rocks/api/v1/prices?tokens=.stx,SM3VDXK3WZZSA84XXFKAFAF15NNZX32CTSG82JFQ4.sbtc-token"
{
  "btcUsd": 81345.3,
  "updatedAt": "2026-10-16T18:40:34.494Z",
  "count": 2,
  "tokens": [
    {
      "contractId": ".stx",
      "symbol": "STX",
      "name": "Stacks Token",
      "image": "https://charisma.rocks/stx-logo.png",
      "decimals": 6,
      "usd": 0.395826,
      "sbtc": 0.000004866,
      "change": { "1h": -0.63, "24h": -2.12, "7d": 2.6, "30d": 69.6 },
      "liquidityUsd": 1578132,
      "roundTripLoss": 1.2,
      "thin": false,
      "updatedAt": "2026-10-16T18:40:34.494Z",
      "stale": false
    }
  ]
}

GET/prices/{contractId}

One token, with the same fields as above plus its 7-day sparkline. Answers 404 if we have never priced the token.

Example

curl "https://prices.charisma.rocks/api/v1/prices/SP2ZNGJ85ENDY6QRHQ5P2D4FXKGZWCKTB2T0Z55KS.charisma-token"
{ "contractId": "SP2ZNGJ85ENDY6QRHQ5P2D4FXKGZWCKTB2T0Z55KS.charisma-token", "symbol": "CHA", "usd": 0.1218, "change": { … }, "sparkline": [0.1201, 0.1195, …] }

GET/prices/{contractId}/history

Open, high, low and close for each period, oldest first. History starts on July 29, 2025. 5m candles are the raw 5-minute prices, so their open, high, low and close are equal.

interval
5m, 1h (default), 4h, 1d or 1w.
quote
usd (default) or sbtc. Multiply sbtc by 100,000,000 for sats.
from, to
Optional. ISO dates or unix seconds. Defaults to the last day (5m), 7 days (1h), 30 days (4h) or all of it (1d, 1w). One request covers at most 7 days of 5m, 90 days of 1h or 365 days of 4h candles.
limit
Optional. Most candles to return, newest kept, from 1 to 2000. Default 500.

Example

curl "https://prices.charisma.rocks/api/v1/prices/.stx/history?interval=1d&quote=usd&from=2026-01-01"
{
  "token": ".stx",
  "interval": "1d",
  "quote": "usd",
  "count": 289,
  "candles": [
    { "time": 1767225600, "open": 0.6785, "high": 0.6835, "low": 0.6577, "close": 0.6626, "points": 288 }
  ]
}

GET/health

Whether prices are fresh. Answers 200 while the last recording is under 15 minutes old and 503 after that, so uptime monitors can watch it.

Example

curl "https://prices.charisma.rocks/api/v1/health"
{ "ok": true, "lastRecordedAt": "2026-10-16T18:40:34.494Z", "ageSeconds": 27, "tokensPriced": 92 }

How it works

How prices are made
Every 5 minutes we buy about $1 of each token with sBTC through Charisma’s router and sell it straight back. The midpoint of those two prices cancels out fees. Dollar prices use Kraken’s BTC/USD. Blaze subnet tokens trade 1:1 with their base token, so they share its price.
Junk filtering
A price more than 3x away from its token’s hourly median, or 10x away from its daily median, is left out of candles and changes. The raw history is kept untouched.
Round-trip cost
roundTripLoss is the percent lost buying about $1 and selling it straight back, which shows how easy a token is to trade. 1–3% is healthy. Above 25% we set thin: true, because the price moves easily and is less reliable.
Stale prices
stale: true means a token hasn’t been priced in the last 15 minutes, usually because its pools have no route right now. We keep showing its last known price.
Freshness and limits
No key is needed, and any website can call it (CORS is open). Answers are cached and refresh as soon as new prices land, about every 5 minutes, so polling more than once a minute gains nothing. Past history never changes, so it’s cached for a day.
For AI assistants
Everything on this page is also one plain-text prompt at /llms.txt.