Skip to main content
Every request consumes weight from your per-minute budget. Lighter queries cost less, heavier queries cost more.

Pricing tiers

BasicAdvancedEnterprise
Price199 USD/mo499 USD/moCustom
Weight / minute100750750
Burst capacity2001,5001,500
History depth90 days1 yearUnlimited
Multi-exchange aggregationNoYesYes
Liquidation heatmapNoYesYes
Custom data type (CDT)NoYesYes
Custom data type includes:
  • Bitcoin Dominance
  • Implied Volatility
  • Skew

Weight formula

base_points = time_range_seconds / interval_seconds
base_weight = ceil(base_points / 1000) × cost_multiplier
When querying multiple exchanges with aggregation, an exchange multiplier applies:
exchange_multiplier = 1 + (0.2 × number_of_exchanges)
Depth-sensitive heatmap types also apply a maxDepth multiplier:
depth_multiplier = 1
if maxDepth > included_depth:
  depth_multiplier = 1 + (0.2 × floor((maxDepth - 1) / included_depth))
total_weight = ceil(base_weight × exchange_multiplier × depth_multiplier)
The minimum weight for any data request is 1. Metadata and discovery endpoints have zero weight. For most data types, depth_multiplier stays at 1.0x. It only applies to:
Data TypeIncluded DepthDepth Surcharge
Orderbook Heatmap (BLOCK_BOOK_SNAPSHOT_AGG)3500+20% for each additional 3500-level band
Liquidation Heatmap (HYPERLIQUID_LIQUIDATION_AGG)1500+20% for each additional 1500-level band
If you omit maxDepth, or set it at or below the included depth, the depth multiplier stays at 1.0x.

Weight costs per data type

Data TypeCostMax Points per Request
Candles (TRADE_SIDE_AGNOSTIC_AGG)1x100,000
Candles per-side (TRADE_AGG)1x100,000
Open Interest (OPEN_INTEREST_AGG)1x100,000
Funding Rate (FUNDING_RATE_AGG)1x100,000
Bitcoin Dominance (TOKEN_SUPPLY_AGG)1x100,000
Implied Volatility (IMPLIED_VOLATILITY_OPTION_SUMMARY_AGG)1x100,000
Skew (SKEW_OPTION_SUMMARY_AGG)1x100,000
Liquidations (LIQUIDATION_AGG)1x100,000
Volume Profile (VOLUME_PROFILE_AGG)2x20,000
TPO / Market Profile (TPO_AGG)5x20,000
Liquidation Heatmap (HYPERLIQUID_LIQUIDATION_AGG)5x5,000
Orderbook Heatmap (BLOCK_BOOK_SNAPSHOT_AGG)10x4,000
Discovery (/v1/markets, /v1/usage, etc.)0

Multi-exchange cost examples

ExchangesMultiplierExample: 1x type, 1000 pointsExample: 10x type, 1000 points
21.4x2 weight14 weight
31.6x2 weight16 weight
52.0x2 weight20 weight

Depth cost examples

These examples assume a 1,000-point request before exchange aggregation:
Data TypemaxDepthDepth MultiplierTotal Weight
Orderbook Heatmap (BLOCK_BOOK_SNAPSHOT_AGG)3500 or less1.0x10 weight
Orderbook Heatmap (BLOCK_BOOK_SNAPSHOT_AGG)3501 to 70001.2x12 weight
Orderbook Heatmap (BLOCK_BOOK_SNAPSHOT_AGG)7001 to 105001.4x14 weight
Liquidation Heatmap (HYPERLIQUID_LIQUIDATION_AGG)1500 or less1.0x5 weight
Liquidation Heatmap (HYPERLIQUID_LIQUIDATION_AGG)1501 to 30001.2x6 weight
Liquidation Heatmap (HYPERLIQUID_LIQUIDATION_AGG)3001 to 45001.4x7 weight

Burst capacity

Your tier has a burst capacity (2x your per-minute budget) that absorbs short traffic spikes. The bucket refills continuously at your sustained rate. For example, an Advanced tier user can briefly use up to 1,500 weight before being throttled.

Response headers

Every response includes rate limit state:
HeaderDescription
X-RateLimit-LimitYour tier’s weight budget per minute
X-RateLimit-RemainingWeight remaining in the current window
X-RateLimit-UsedWeight consumed in the current window
X-RateLimit-ResetUnix timestamp when the bucket refills to full capacity (including burst)
Retry-AfterSeconds to wait before retrying (only on 429)

Check your usage

Use the rate limit endpoint to check your current quota without consuming any weight:
curl "https://api.kiyotaka.ai/v1/usage" \
  -H "X-Kiyotaka-Key: YOUR_API_KEY"
{
  "limit": 750,
  "remaining": 680,
  "used": 70,
  "reset": 1712345678,
  "window_seconds": 60
}