ChartDeck

ChartDeck Developer API

The data behind ChartDeck, in your own code

Market data, order flow, liquidation models, the economic calendar and news, over REST, live streams and webhooks.

Free sandbox on every account. No card needed.

Exchanges

Data from 20 exchanges, one format

One API

Consistent from the first call

A bearer key, JSON in one shape, cursors for paging and the cost of each call in the answer. Learn one route and the rest read the same.

HTTP
GET /v1/strata/levels?coin=BTC&window=7d
Host: api.chartdeck.trade
Authorization: Bearer cdk_…

# 200 OK
Content-Type: application/json
X-Request-Weight: 1
RateLimit-Remaining: …
X-Quota-Remaining: …
  • GET/v1/basis
  • GET/v1/calendar/events
  • GET/v1/calendar/events/{id}
  • GET/v1/calendar/series
  • GET/v1/calendar/series/{id}/history
  • GET/v1/candles
  • GET/v1/charts/{kind}.png
  • GET/v1/etf/flows
  • GET/v1/etf/summary
  • GET/v1/flow/agg-delta
  • GET/v1/flow/cvd
  • GET/v1/flow/funding-agg
  • GET/v1/flow/lsr-agg
  • GET/v1/flow/oi-agg
  • GET/v1/flow/oi-build
  • GET/v1/footprint/bars
  • GET/v1/footprint/stacks
  • GET/v1/funding
  • GET/v1/indices/{index}
  • GET/v1/lsr
  • GET/v1/markets
  • GET/v1/me
  • GET/v1/news
  • GET/v1/news/sources
  • GET/v1/oi
  • GET/v1/orderbook/heatmap
  • GET/v1/screener
  • GET/v1/strata/calibration
  • GET/v1/strata/heatmap
  • GET/v1/strata/hl
  • GET/v1/strata/levels
  • GET/v1/strata/liq-exact
  • GET/v1/strata/netpos
  • GET/v1/strata/realized
  • GET/v1/strata/symbols
  • GET/v1/trades/large
  • GET/v1/twap
  • GET/v1/usage
  • GET/v1/venues
  • GET/v1/webhooks
  • POST/v1/webhooks
  • GET/v1/webhooks/{id}
  • DELETE/v1/webhooks/{id}
  • POST/v1/webhooks/{id}/enable
  • POST/v1/webhooks/{id}/test

Why ChartDeck data

The same feeds that draw our charts

Our recorders, models and calendar run the terminal every day. The API hands you the same numbers in one format, so your time goes into your product.

45

Endpoints

Markets, order flow, liquidation models, analytics, the calendar, news, chart pictures and webhooks, under one versioned /v1.

20

Exchanges

Perpetual and spot markets, 24,391 of them listed right now, with the same bar format on every venue.

Candle history by tier

  • Sandbox30 days
  • Starter1 year
  • Developer5 years
  • BusinessAll recorded

RESTWebSocketWebhooks

Pull, stream or get pushed

Ask for history over REST, hold live channels on one WebSocket, or receive signed events on your server.

Response format

Predictable answers

Every JSON answer is the data plus the same four facts about it.

data
What you asked for: a list of rows or one object, field names in snake_case.
meta.attribution
The sources of this answer, ready to show beside the data.
meta.next_cursor
Pass it back as cursor for the next page; null when there is none.
meta.weight
The request units this call cost, also in the X-Request-Weight header.
meta.terms
The API terms that apply to the data.

What you can build with

Everything the terminal knows

12 endpoints

Markets

Candles, open interest, funding, basis, long/short ratios, large trades, order-book heatmaps, footprint bars and spot ETF flows.

  • /basis
  • /candles
  • /etf/flows
  • /etf/summary
  • /footprint/bars
  • /funding
  • /lsr
  • /markets
  • /oi
  • /orderbook/heatmap
  • /trades/large
  • /venues
Read the docs
8 endpoints

Order flow and STRATA

Modelled liquidation levels and heatmaps, net long and short positions from open interest, recorded liquidations and the model scored against them.

  • /strata/calibration
  • /strata/heatmap
  • /strata/hl
  • /strata/levels
  • /strata/liq-exact
  • /strata/netpos
  • /strata/realized
  • /strata/symbols
Read the docs
10 endpoints

Analytics

Delta and CVD summed over every exchange, aggregated open interest and funding, OI build regimes, stacked imbalances, the screener, TWAP orders and market-cap indexes.

  • /flow/agg-delta
  • /flow/cvd
  • /flow/funding-agg
  • /flow/lsr-agg
  • /flow/oi-agg
  • /flow/oi-build
  • /footprint/stacks
  • /indices/{index}
  • /screener
  • /twap
Read the docs
4 endpoints

Economic calendar

Scheduled and released figures with forecasts, previous values, revisions and each series’ history.

  • /calendar/events
  • /calendar/events/{id}
  • /calendar/series
  • /calendar/series/{id}/history
Read the docs
2 endpoints

News

Market stories grouped by story, with the publishers that reported them and links to the originals.

  • /news
  • /news/sources
Read the docs

Live streams

One WebSocket for live bars, trades, large prints, liquidations, flow, liquidation levels and calendar releases. Events resume after a reconnect.

  • candles
  • trades
  • trades.large
  • liquidations
  • cvd
  • strata.levels
  • calendar
  • mcap
Read the docs
6 endpoints

Webhooks

Signed deliveries to your server for calendar releases and revisions, your ChartDeck alerts and usage warnings. On Developer and Business, and with Elite.

  • /webhooks
  • /webhooks/{id}
  • /webhooks/{id}/enable
  • /webhooks/{id}/test
Read the docs
1 endpoint

Charts for your bot

Ready-made STRATA charts as PNG pictures, the title, price axis and attribution drawn in: one request, then post it to your Discord server or any chat.

  • liquidation-levels
  • liquidation-heatmap
  • positions-heatmap
  • net-longs-heatmap
  • net-shorts-heatmap
  • long-short-delta-heatmap
Read the docs

SDKs

Official clients for Python and JavaScript

A method for every route, automatic paging, retries that respect the rate limit, a stream helper and webhook signature checks. No third-party dependencies.

Python chartdeck

Python
# pip install chartdeck
from chartdeck import Client

client = Client()  # reads CHARTDECK_API_KEY
r = client.strata.levels(coin="BTC")
print(r.data, r.attribution)
Python guide

JavaScript @chartdeck/api

JavaScript
// npm install @chartdeck/api
import { ChartDeck } from '@chartdeck/api';

const cd = new ChartDeck();  // reads CHARTDECK_API_KEY
for await (const f of cd.stream({ channels: ['liquidations:BTC'] }))
  console.log(f.ch, f.data);
JavaScript guide

Start free. Upgrade when you ship.

Buy a tier on its own or with any chart plan, monthly or yearly by card. The Elite plan includes Starter, with webhooks.

Questions developers ask

What is a request unit?

Every call costs units, its weight. A light call costs 1; long history, heatmaps and footprints cost more because they take more to compute. Each answer states what it cost, in meta.weight and the X-Request-Weight header. A call refused for a bad parameter costs 1 unit; a server error costs nothing.

Units and weights

What happens when my monthly units run out?

The allowance runs by calendar month in UTC. When it is used up, requests are refused until the next month starts or you move to a higher tier. There are no top-ups and no overage charges, so a bill never surprises you.

What is the sandbox?

Every signed-in account can make keys for free. Without a paid tier or the Elite plan they are sandbox keys: data routes answer from a recorded pack of real data, never live, with the same URLs, answers and errors as live. Sandbox data is for building and testing, not for trading or production. Buy a tier and the same keys switch to live data within a minute.

Get a sandbox key

Do I have to show where the data comes from?

Yes. Every answer lists its sources in meta.attribution; show them wherever you display the data, under a chart, in a footer or at the end of a bot message. Use the data in your own product, but do not resell or redistribute the raw data.

Attribution guide

Which terms apply?

Section 9 of the Terms of Service covers keys, tiers and billing, how you may use API data, and changes to the API. You accept it when you create your first key.

Read Section 9 of the Terms