---
title: Kiyotaka Data API
description: Programmatic access to crypto market data across multiple exchanges. Candles, open interest, funding rates, liquidations, heatmaps, volume profiles, and TPO.
---

# Kiyotaka Data API

The Kiyotaka Data API gives you programmatic access to crypto market data across multiple exchanges. All
data flows through a single endpoint, authenticated with an API key.

## Base URL

<EndpointBar method="GET" path="https://api.kiyotaka.ai"></EndpointBar>

## How it works

All data queries use the same endpoint:

<EndpointBar method="GET" path="/v1/points"></EndpointBar>

You specify what data you want through query parameters. The `type` parameter determines the kind
of data returned -- candles, open interest, funding rates, etc.

## Available data types

| Data Type | Type Parameter | Weight | Tier |
| --- | --- | --- | --- |
| Candles | `TRADE_SIDE_AGNOSTIC_AGG` | 1x | All |
| Candles (per-side) | `TRADE_AGG` | 1x | All |
| Open Interest | `OPEN_INTEREST_AGG` | 1x | All |
| Funding Rate | `FUNDING_RATE_AGG` | 1x | All |
| Bitcoin Dominance | `TOKEN_SUPPLY_AGG` | 1x | Advanced |
| Implied Volatility | `IMPLIED_VOLATILITY_OPTION_SUMMARY_AGG` | 1x | Advanced |
| Skew | `SKEW_OPTION_SUMMARY_AGG` | 1x | Advanced |
| Liquidations | `LIQUIDATION_AGG` | 1x | All |
| Volume Profile | `VOLUME_PROFILE_AGG` | 2x | All |
| TPO / Market Profile | `TPO_AGG` | 5x | All |
| Orderbook Heatmap | `BLOCK_BOOK_SNAPSHOT_AGG` | 10x | All |
| Liquidation Heatmap | `HYPERLIQUID_LIQUIDATION_AGG` | 5x | Advanced+ |

## Common parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | Yes | Data type to query. |
| `exchange` | string | Conditional | Exchange ID. Repeat for multi-exchange queries. Not required for `HYPERLIQUID_LIQUIDATION_AGG`, which aggregates across Hyperliquid by `coin`. |
| `rawSymbol` | string | Conditional | Exchange-specific symbol (e.g., `BTCUSDT`). Use this or `coin`. |
| `coin` | string | Conditional | Base asset (e.g., `BTC`). Use for aggregation across pairs. |
| `tokenName` | string | No | Token name used by market-independent token supply queries, for example `Bitcoin`. |
| `interval` | string | Yes | Aggregation interval. |
| `tenor` | string | No | Option summary tenor used by Implied Volatility and Skew queries. |
| `from` | int64 | Yes | Start time as Unix timestamp (seconds). |
| `period` | int64 | Yes | Duration in seconds from the `from` timestamp. |
| `sortDirection` | string | No | Sort direction. Default: ascending. |

<Callout kind="tip">

Some data types accept additional parameters like `blockSize`, `maxDepth`,
`tenor`, `tokenName`, and `tpoSession`. See each data type's page for
details.

</Callout>

## Response structure

Every data response follows the same shape:

<CodeBlock lang="JSON">
<pre>{
  <span class="s-p">"series"</span>: [
    {
      <span class="s-p">"id"</span>: {
        <span class="s-p">"type"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"exchange"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"rawSymbol"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"normalizedSymbol"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"category"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"interval"</span>: <span class="s-s">"..."</span>,
        <span class="s-p">"coin"</span>: <span class="s-s">"..."</span>
      },
      <span class="s-p">"points"</span>: [
        { <span class="s-p">"Point"</span>: { <span class="s-o">...</span> } }
      ]
    }
  ]
}</pre>
</CodeBlock>

- **`series`** -- array of data series. One series per unique combination of
exchange, symbol, side, etc.
- **`series.id`** -- metadata identifying the series. Fields vary by type and can
include exchange, `rawSymbol`, `normalizedSymbol`, category, side, and coin.
- **`series.points`** -- array of data points. Each point contains a
`Point` payload. Most REST types inline their fields directly under `Point`;
`TPO_AGG` currently returns them under `Point.TpoAggregation`.

### Timestamp format

All timestamps in the response use:

<CodeBlock lang="JSON">
<pre>{ <span class="s-p">"s"</span>: <span class="s-n">1774800000</span>, <span class="s-p">"ns"</span>: <span class="s-n">649000000</span> }</pre>
</CodeBlock>

`s` is a Unix timestamp in seconds (UTC). `ns` is optional nanoseconds and is omitted
when the value is `0`.