Type: TPO_AGG | Weight: 5x | Max points: 20,000
Time Price Opportunity (Market Profile) data. Shows how price distributes over time blocks within a session. Includes structural features like Point of Control, Value Area, Initial Balance Range, poor highs/lows, and single prints.
TPO is a Kiyotaka exclusive — no other crypto data API offers Market Profile data.
Parameters
| Parameter | Type | Required | Description |
|---|
tpoBlockSizeMinutes | int32 | No | Size of each time block: 5, 30, 60, or 240 minutes. Default: 30. |
tpoSession | TPOSession | No | Session type. Default: unspecified (uses interval). |
TPO sessions
| Value | Description |
|---|
TPO_SESSION_DAILY | Daily session profile |
TPO_SESSION_WEEKLY | Weekly session profile |
TPO_SESSION_MONTHLY | Monthly session profile |
Response fields
| Field | Type | Description |
|---|
timestamp | Timestamp | Session start |
period_start | Timestamp | Profile period start |
period_end | Timestamp | Profile period end |
levels | TPOLevel[] | Array of price levels (see below) |
TPO responses currently use snake_case JSON field names. Additional derived fields such as block_size_minutes, poc_price, vah_price, val_price, profile_high, profile_low, opening_price, closing_price, ibr_high, ibr_low, total_tpo_count, value_area_percentage, poor_highs, poor_lows, total_volume, and single_prints may be omitted when the backend does not populate them.
Unlike most REST types, TPO currently returns its payload under Point.TpoAggregation instead of inlining fields directly under Point.
TPOLevel fields
Each entry in the levels array contains:
| Field | Type | Description |
|---|
price | double | Price level |
block_ids | int32[] | Time block indices where this price was visited |
buy_volume | double | Buy volume at this price |
sell_volume | double | Sell volume at this price |
Current /v1/points responses may omit derived levels fields such as tpo_count, volume, first_touch_block, and last_touch_block when they are not populated.
Capabilities
| Feature | Supported | Details |
|---|
| USD denomination | Yes | transform.normalize.quote=USD |
| Multi-exchange aggregation | Yes | transform.groupBy.type=GROUP_BY_TYPE_SUM with coin param |
| Session types | Yes | Daily, weekly, monthly profiles |
| Configurable block size | Yes | 5, 30, 60, or 240 minute blocks |
Examples
Daily profile with 30-minute blocks
Fetches 1 day of daily Market Profile for BTCUSDT on Binance Futures. Each session is divided into 30-minute time blocks (the default). Returns POC, Value Area, Initial Balance Range, and per-price-level TPO counts.
curl "https://api.kiyotaka.ai/v1/points?type=TPO_AGG&exchange=BINANCE_FUTURES&rawSymbol=BTCUSDT&interval=DAY&from=1774800000&period=86400&tpoSession=TPO_SESSION_DAILY&tpoBlockSizeMinutes=30" \
-H "X-Kiyotaka-Key: YOUR_API_KEY"
Weekly profile
Fetches 1 week of weekly Market Profile with 60-minute time blocks. Useful for identifying higher-timeframe value areas and structural features.
curl "https://api.kiyotaka.ai/v1/points?type=TPO_AGG&exchange=BINANCE_FUTURES&rawSymbol=BTCUSDT&interval=WEEK&from=1774800000&period=604800&tpoSession=TPO_SESSION_WEEKLY&tpoBlockSizeMinutes=60" \
-H "X-Kiyotaka-Key: YOUR_API_KEY"
High-resolution (5-minute blocks)
Same daily profile but with 5-minute time blocks instead of 30. Produces more granular TPO data with more time blocks per session — useful for intraday analysis.
curl "https://api.kiyotaka.ai/v1/points?type=TPO_AGG&exchange=BINANCE_FUTURES&rawSymbol=BTCUSDT&interval=DAY&from=1774800000&period=86400&tpoSession=TPO_SESSION_DAILY&tpoBlockSizeMinutes=5" \
-H "X-Kiyotaka-Key: YOUR_API_KEY"
Response
{
"series": [
{
"id": {
"type": "TPO_AGG",
"exchange": "BINANCE_FUTURES",
"rawSymbol": "BTCUSDT",
"normalizedSymbol": "BTC-USDT",
"category": "PERPETUAL",
"interval": "FIFTEEN_MINUTES",
"coin": "BTC"
},
"points": [
{
"Point": {
"TpoAggregation": {
"timestamp": { "s": 1774828800 },
"period_start": { "s": 1774828800 },
"period_end": { "s": 1774886400 },
"levels": [
{
"price": 65754,
"block_ids": [0],
"buy_volume": 10.413000000000006,
"sell_volume": 10.654999999999998
}
]
}
}
}
]
}
]
}