Units and weights
What each operation costs in request units, the rule behind heavy calls, and how to read X-Request-Weight.
Every call costs units (its weight), charged against your tier's per-minute and monthly allowance. Light calls cost 1. Long history, heatmaps and footprints cost more because they cost more to compute. The answer tells you what you paid: the X-Request-Weight header and meta.weight.
- A call refused for a bad parameter or an unknown market costs 1 unit; a server error costs nothing.
- A cached answer still costs its weight: the price is per call.
#Every operation
| Operation | Units |
|---|---|
GET /v1/basis | 1 for a window whose oldest bar is within 30 days and at most 1,000 bars; 10 for older history |
GET /v1/calendar/events | 1 |
GET /v1/calendar/events/{id} | 1 |
GET /v1/calendar/series | 1 |
GET /v1/calendar/series/{id}/history | 5 |
GET /v1/candles | 1 for a window whose oldest bar is within 30 days and at most 1,000 bars; 10 for older history |
GET /v1/charts/{kind}.png | liquidation-levels 10; the heatmaps 15 (7d window), 20 (30d) |
GET /v1/etf/flows | 1; 5 over 366 days |
GET /v1/etf/summary | 1 |
GET /v1/flow/agg-delta | 1; 2 over 1,000 bars; 10 over 30 days |
GET /v1/flow/cvd | 1; 2 over 1,000 bars; 10 over 30 days |
GET /v1/flow/funding-agg | 3; 10 over 30 days |
GET /v1/flow/lsr-agg | 3; 10 over 30 days |
GET /v1/flow/oi-agg | 3; 10 over 30 days |
GET /v1/flow/oi-build | 2; 10 over 30 days |
GET /v1/footprint/bars | 10 up to 120 bars, 20 above (up to 240) |
GET /v1/footprint/stacks | 10; 20 over 120 bars or all=1 |
GET /v1/funding | 1 for a window whose oldest bar is within 30 days and at most 1,000 bars; 10 for older history |
GET /v1/indices/{index} | 1; 2 over 1,000 bars |
GET /v1/lsr | 1 for a window whose oldest bar is within 30 days and at most 1,000 bars; 10 for older history |
GET /v1/markets | computed per request (the X-Request-Weight header of the answer) |
GET /v1/me | 1 |
GET /v1/news | 1 |
GET /v1/news/sources | 1 |
GET /v1/oi | 1 for a window whose oldest bar is within 30 days and at most 1,000 bars; 10 for older history |
GET /v1/orderbook/heatmap | 10 up to 300 columns, 20 above (up to 1,500) |
GET /v1/screener | 2 |
GET /v1/strata/calibration | computed per request (the X-Request-Weight header of the answer) |
GET /v1/strata/heatmap | 10 (7d window), 20 (30d) |
GET /v1/strata/hl | 2 |
GET /v1/strata/levels | computed per request (the X-Request-Weight header of the answer) |
GET /v1/strata/liq-exact | 5 |
GET /v1/strata/netpos | 5 (7d window), 10 (30d) |
GET /v1/strata/realized | 10 (7d window), 20 (30d) |
GET /v1/strata/symbols | 1 |
GET /v1/trades/large | 1 for a window up to 1 day, 10 for longer |
GET /v1/twap | 1 |
GET /v1/usage | 1 |
GET /v1/venues | computed per request (the X-Request-Weight header of the answer) |
GET /v1/webhooks | 1 |
POST /v1/webhooks | 1 |
GET /v1/webhooks/{id} | 1 |
DELETE /v1/webhooks/{id} | 1 |
POST /v1/webhooks/{id}/enable | 1 |
POST /v1/webhooks/{id}/test | 1 |
To spend fewer units: ask for the window you need, page with limit, and prefer the stream for live updates instead of polling.