Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Explore market dynamics of assets and exchanges, including trading volumes, market depth, token metrics, and both on-chain and off-chain transaction data.
Market Explorer [Total Value Locked]
Market Explorer [Full Coverage]
This endpoint receives information on the Total Value Locked (TVL) of all DeFi protocols covered by Kaiko.
https://us.market-api.kaiko.io/v2/data/tvl/protocol
No
The desired protocol code.
If not specified, the endpoint will return the list of all protocol codes.
aave
start_date
No
Starting date in YYYYMMDD (inclusive).
20230125
end_date
No
Ending date in YYYYMMDD (exclusive).
20230126
start_time
No
Starting time in ISO 8601 (inclusive) Hours will be ignored.
2023-01-25T00:00:00.00
end_time
No
Ending time in ISO 8601 (exclusive) Hours will be ignored.
2023-01-26T00:00:00.00
page_size
No
See
Minimum: 1
Maximum: 1000
Default: 1000
100
sort
No
If asc, sort time-series in ascending. If desc, sort time-series in descending.
Default: desc
asc
timestamp
Timestamp at which the interval begins.
1763856000
protocol_name
Protocol name.
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/tvl?start_date=20251001&protocol=aave'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/tvl"
# Start of mandatory parameter configuration
mandatory_params = {
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
'start_date':'20251001',
'page_size':100,
'sort':'desc',
'protocol':'aave'
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"query":
{
"protocol": "aave",
"start_date": "seconds:1759276800",
"end_date": "seconds:1764028800",
"sort": "desc",
"page_size": "1"
},
"time": "2025-11-25T10:20:15.37953193Z",
"timestamp": 1764066015,
"data":
[
{
"timestamp": 1763856000,
"protocol_name": "Aave",
"protocol_code": "aave",
"tvl": 50404639283.57133
},
/** Results **/
],
"continuation_token": "xxx",
"next_url": "https://eu.market-api.kaiko.io/v2/data/tvl?continuation_token=xxx"
}
Aave
protocol_code
Protocol code.
aave
tvl
Total value locked (TVL) in USD.
5.04046e+10
Kaiko's Supply and Market Cap Data covers circulating supply metrics for crypto assets through normalized API endpoints.
Market Explorer [Supply and Market Cap]
Market Explorer [Full Coverage]
This endpoint aggregates from the Supply endpoint to provide an aggregated view of supply and market capitalization.
Data can be aggregated between 5-minute and 30-day intervals; the aggregation considers each 5-minute interval from the raw supply data that falls between the start_time and end_time configured.
Read our supply and market cap methodology here.
https://us.market-api.kaiko.io/v2/data/supply.v2/aggregated/{asset}Kaiko Market Explorer [Full Coverage]
Kaiko Market Explorer [Supply and Market Cap]
This endpoint receives the supply of an asset on a single blockchain, including circulating supply and market capitalization where available.
To retrieve supply across all chains for an asset, use the Aggregated Supply endpoint with the blockchain query parameter, or call this endpoint once per chain.
https://us.market-api.kaiko.io/v2/data/supply.v2/blockchain-level/{blockchain}/{asset}This endpoint aggregates from the endpoint to provide an aggregated view of supply and market capitalization of the top assets at a specified time.
Data can be aggregated between 5-minute and 30-day intervals; the aggregation considers each 5-minute interval from the .
Read our supply and market cap methodology .
2023-01-26T00:00:00.000Z
interval
No
The interval parameter is suffixed with m, h or d to specify minutes, hours, or days, respectively
Any arbitrary value between five minutes and 30 days can be used.
Default: 1h.
4h
page_size
No
See
Minimum: 1
Maximum: 100
Default: 100
100
blockchain
No
Normalized blockchain identifier. Common values: ethereum, solana, polygon, arbitrum, canton.
ethereum
circulating_supply
Circulating supply
1.99373e+07
market_cap
Market capitalisation
2.2094e+12
total_supply
Total supply
1.99373e+07
asset
Yes
The desired asset code
See
btc
start_time
No
Starting time in ISO 8601 (inclusive)
2023-01-25T00:00:00.00
end_time
No
timestamp
Timestamp at which the interval begins
1760918400
asset
Asset
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/supply.v2/aggregated/btc?start_time=2025-10-20T00:00:00.000Z&end_time=2025-10-21T00:00:00.000Z&page_size=100&interval=1d'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/supply.v2/aggregated/btc"
# Start of mandatory parameter configuration
mandatory_params = {
'start_time':'2025-10-20T00:00:00.000Z',
'end_time':'2025-10-21T00:00:00.000Z',
'page_size':100,
'interval':'1d'
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"query":
{
"start_time": "2025-10-20T00:00:00.000Z",
"end_time": "2025-10-21T00:00:00.000Z",
"page_size": 100,
"asset": "btc",
"interval": "1d",
"sort": "asc",
"request_time": "2025-11-12T14:18:27.226Z",
"start_timestamp": 1760918400000,
"end_timestamp": 1761004800000
},
"time": "2025-11-12T14:18:27.253Z",
"timestamp": 1762957107253,
"data":
[
{
"timestamp": 1760918400,
"asset": "btc",
"circulating_supply": 19937318.75,
"market_cap": 2209402368348.39,
"total_supply": 19937318.75
}
/** Results **/
],
"result": "success",
"continuation_token": "xxx",
"next_url": "https://us.market-api.kaiko.io/v2/data/supply.v2/aggregated/btc?continuation_token=xxx",
"access":
{
"access_range":
{
"start_timestamp": 1073001600000,
"end_timestamp": "None"
},
"data_range":
{
"start_timestamp": "None",
"end_timestamp": "None"
}
}
}Ending time in ISO 8601 (exclusive)
btc
blockchain
Blockchain name
ethereum
total_supply
Total supply on this chain
28535000000.00
circulating_supply
Circulating supply on this chain. null for Canton instruments.
28535000000.00
market_cap
Market capitalization on this chain. null for Canton instruments.
28535000000.00
blockchain
Yes
Normalized blockchain identifier. Common values: ethereum, solana, polygon, arbitrum, canton.
ethereum
asset
Yes
The desired asset code. See .
usdc
start_time
No
Starting time in ISO 8601 (inclusive).
2026-04-14T00:00:00.000Z
end_time
No
Ending time in ISO 8601 (exclusive).
2026-04-16T00:00:00.000Z
sort
No
Sort direction by timestamp (asc / desc). Default: desc.
desc
page_size
No
See Pagination. Minimum: 1 Maximum: 1000 Default: 100.
100
timestamp
Timestamp at which the interval begins
1744848000
asset
Asset
curl --request GET \
--url 'https://us.market-api.kaiko.io/v2/data/supply.v2/blockchain-level/canton/cbtc?start_time=2026-05-13T00:00:00Z&end_time=2026-05-13T23:59:59Z&page_size=10&sort=desc' \
--header 'Accept: application/json' \
--header 'X-Api-Key: KAIKO_API_KEY'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/supply.v2/blockchain-level/canton/cbtc"
# Start of mandatory parameter configuration
mandatory_params = {
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
'start_time':'2026-05-13T00:00:00Z',
'end_time':'2026-05-13T23:59:59Z',
'page_size':10,
'sort':'desc'
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"query": {
"start_time": "2026-05-13T00:00:00.000Z",
"end_time": "2026-05-13T23:59:59.000Z",
"page_size": 10,
"asset": "cbtc",
"blockchain": "canton",
"sort": "desc",
"request_time": "2026-05-13T07:57:55.131Z",
"start_timestamp": 1778630400000,
"end_timestamp": 1778716799000
},
"time": "2026-05-13T07:57:55.136Z",
"timestamp": 1778659075136,
"data": [
{
"timestamp": 1778655600,
"asset": "cbtc",
"blockchain": "canton",
"total_supply": 29.0089104357,
"circulating_supply": null,
"market_cap": null
}
/** Results **/
],
"result": "success",
"access": {
"access_range": {
"start_timestamp": 1578006000000,
"end_timestamp": 1893625200000
},
"data_range": {
"start_timestamp": 1578006000000,
"end_timestamp": 1893625200000
}
}
}usdc
datetime
No
Time in ISO 8601. Default: Current time.
2023-01-25T00:00:00.00
interval
No
The interval parameter is suffixed with m, h or d to specify minutes, hours, or days, respectively.
Any arbitrary value between five minutes and 30 days can be used.
Default: 1d.
4h
count
No
Number of assets in the result.
Ex: 10 to retrieve the top 10 assets.
Default: 100.
10
datetime
Timestamp in seconds.
1760918400
asset
Asset.
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/supply.v2/top?datetime=2026-01-01T00:00:00.000Z&count=10&interval=1d'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/supply.v2/top"
# Start of mandatory parameter configuration
mandatory_params = {
'datetime':'2026-01-01T00:00:00.000Z',
'count':10,
'interval':'1d'
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}")https://us.market-api.kaiko.io/v2/data/supply.v2/top{
"query":
{
"datetime": "2026-01-01T00:00:00.000Z",
"count": 10,
"interval": "1d"
},
"time": "2026-02-10T13:10:35.136Z",
"timestamp": 1770729035136,
"data":
[
{
"datetime": 1767225600,
"asset": "btc",
"rank": 1,
"total_supply": 19969814.0625,
"circulating_supply": 19969814.0625,
"market_cap": 1754840038141.7961
},
{
"datetime": 1767225600,
"asset": "eth",
"rank": 2,
"total_supply": 120694917.35776222,
"circulating_supply": 120694917.35776222,
"market_cap": 359309601750.3176
},
{
"datetime": 1767225600,
"asset": "usdt",
"rank": 3,
"total_supply": 191200669545.90054,
"circulating_supply": 186408947507.7797,
"market_cap": 186164285382.73282
},
/** Results **/
],
"result": "success"
}Kaiko Market Explorer [Full Coverage]
Kaiko Market Explorer [Supply and Market Cap]
Returns time-series staking metrics for a specified blockchain protocol. The endpoint covers protocol-level data including validator counts, and yield metrics.
https://us.market-api.kaiko.io/v2/data/staking.v1/protocols/{protocol}protocol
Yes
btc
rank
The ranking of the asset in terms of market cap.
1
total_supply
Total supply.
1.99373e+07
circulating_supply
Circulating supply.
1.99373e+07
market_cap
Market capitalisation.
2.2094e+12
apr
Daily APR
4.758636
validators
Number of validators
777
methodology
The methodology used to compute the APR
epoch_aggregate_v1
The desired protocol code. If not specified, the endpoint will return the list of all protocol codes and methodologies.
solana
methodology
No
The desired metodology code.
epoch_aggregate_v1
start_time
No
Starting time in ISO 8601 (inclusive)
2023-01-25T00:00:00.00
end_time
No
Ending time in ISO 8601 (exclusive)
2023-01-25T00:00:00.00
start_date
No
Starting date in YYYYMMDD (inclusive).
20250101
end_sate
No
Ending date in YYYYMMDD (exclusive).
20250102
page_size
No
See Pagination
Minimum: 1
Maximum: 1000
Default: 1000
100
sort
No
If asc, sort time-series in ascending. If desc, sort time-series in descending.
Default: desc
asc
date
Date at which the interval begins.
2026-04-21
protocol
Protocol code.
solana
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/staking.v1/protocols/solana?start_date=20261001'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/staking.v1/protocols/solana"
# Start of mandatory parameter configuration
mandatory_params = {
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
'start_date':'20251001',
'page_size':100,
'sort':'desc',
'methodology':'epoch_aggregate_v1'
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"query":
{
"start_date": "20260101",
"end_date": "20260422",
"start_time": "2026-01-01T00:00:00Z",
"end_time": "2026-04-22T00:00:00Z",
"sort": "descending",
"page_size": "10",
"methodology": "epoch_aggregate_v1"
},
"time": "2026-04-22T14:46:38.274392363Z",
"timestamp": 1776869198,
"data":
[
{
"date": "2026-04-21",
"protocol": "solana",
"apr": 4.758636113435191,
"validators": 777,
"methodology": "epoch_aggregate_v1"
},
/** Results **/
],
"continuation_token": "xxx",
"next_url": "https://eu.market-api.kaiko.io/v2/data/staking.v1/protocols/solana?continuation_token=xxx"
}
Market Explorer [Supply and Market Cap]
Market Explorer [Full Coverage]
This endpoint receives information on the supply of each asset, including circulating supply and market capitalization.
Supply data is provided as:
An aggregated supply value derived from all blockchains on which the asset is deployed.
A blockchain-specific supply value for each chain
Data is provided at 5-minute intervals.
Read our supply and market cap methodology .
Yes
Starting time in ISO 8601 (inclusive).
2023-01-25T00:00:00.000Z
end_time
Yes
Ending time in ISO 8601 (exclusive).
2023-01-26T00:00:00.000Z
sources
No
boolean. If true, returns the breakdown by blockchain of the supply.
Default: false
true
page_size
No
See
Minimum: 1
Maximum: 100
Default: 10
100
circulating_supply
Total circulating supply
1.99478e+07
market_cap
Market capitalisation
2.09489e+12
sources
The per-blockchain breakdown of the supply
chain
The blockchain name
Bitcoin
circulating_supply
Circulating supply
19947806.25
excluded_supply
Exlcluded supply for the specific chain
0
total_supply
The total supply for the specific chain
19947806.25
https://us.market-api.kaiko.io/v2/data/supply.v2/assets/{asset}asset
Yes
The desired asset code.
See
agix
timestamp
Timestamp at which the interval begins
2023-01-25T00:00:00.000Z
asset
Asset
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/supply.v2/assets/btc?start_time=2025-11-12T14:00:00.000Z&page_size=100&sources=true&sort=desc'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/supply.v2/assets/btc"
# Start of mandatory parameter configuration
mandatory_params = {
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
'start_time':'2025-11-12T14:00:00.000Z',
'page_size':100,
'sort':'desc',
'sources':'true'
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"query":
{
"start_time": "2025-11-12T14:00:00.000Z",
"end_time": "2025-11-12T14:00:48.317Z",
"page_size": 100,
"asset": "btc",
"sort": "desc",
"request_time": "2025-11-12T14:00:48.317Z",
"start_timestamp": 1735689600000,
"end_timestamp": 1762956048317
},
"time": "2025-11-12T14:00:48.326Z",
"timestamp": 1762956048326,
"data":
[
{
"timestamp": 1762956005,
"asset": "btc",
"circulating_supply": 19947809.375,
"market_cap": 2093053874177.4607,
"sources":
[
{
"chain": "Bitcoin",
"circulating_supply": "19947809.375",
"excluded_supply": "0",
"total_supply": "19947809.375"
}
]
}
/** Results **/
],
"result": "success",
"continuation_token": "xxx",
"next_url": "https://us.market-api.kaiko.io/v2/data/supply.v2/assets/btc?continuation_token=xxx",
"access":
{
"access_range":
{
"start_timestamp": 1073001600000,
"end_timestamp": "None"
},
"data_range":
{
"start_timestamp": "None",
"end_timestamp": "None"
}
}
}
start_time
btc
Market Explorer [Assets + Exchanges]
Market Explorer [Full Coverage]
This endpoint receives information on the trades involving a particular asset. Information includes volumes, trade counts, liquidity, and supply. All information is broken down by exchange. Trade data is aggregated across all instruments that include the specified token as a base or quote asset, whereas liquidity data is aggregated for the base asset only.
https://us.market-api.kaiko.io/v2/data/analytics.v2/asset_metricsasset
Information from this endpoint can be accessed through Google BigQuery. To get started, read our .
Kaiko Fair Market Explorer [Assets + Exchanges]
Kaiko Fair Market Explorer [Full Coverage]
This endpoint helps inform exchange analysis with data such as total volume in USD, trades, the number of listed assets, and volume proportions by asset. The data aggregates all instruments available on the requested exchange. Only base assets are taken into consideration.
https://us.market-api.kaiko.io/v2/data/analytics.v2/exchange_metricsexchange
This endpoint receives information on the trades involving a particular stablecoin. Information includes volumes, trade counts, liquidity, supply and lending rates. Trade and liquidity data are aggregated across all instruments that include the specified token as a base or quote asset.
Trading activity
Total volume in USD traded in the interval. 0 when no trades are reported.
139803179.89191553
total_trade_count
Trading activity
Total trade count in the interval. 0 when no trades are reported.
121748
nb_listed_assets
Trading activity
Number of listed assets in the interval. 0 when no trades are reported.
235
nb_listed_pairs
Trading activity
Number of listed pairs in the interval. 0 when no trades are reported.
379
asset_volumes
Trading activity
Trading information details by asset.
[{"asset_code": "btc",
"asset_trade_count": 22772,
"asset_total_volume_usd": 61612344.01769975,
"asset_price_usd": 37994.62623807689,
"asset_contribution": 0.4407077440250888,
"pairs_volumes": []]}, ...]
asset_code
Trading activity
Asset code.
btc
asset_trade_count
Trading activity
Trade count in the interval by asset. 0 when no trades are reported.
159115
asset_total_volume_usd
Trading activity
Volume in USD traded in the interval by asset. 0 when no trades are reported.
61612344.01769975
asset_price_usd
Trading activity
Asset cross-price in USD used to compute volume in USD.
37994.62623807689
asset_contribution
Trading activity
Asset volume percentage over total volume.
0.4407077440250888
pairs_volumes
Trading activity
Trading information details by pair.
[{"pair_code": "btc-usd",
"pair_trade_count": 19193,
"pair_volume_usd": 57484171.99063697,
"pair_contribution": 0.9329976469345679}, ...]
pair_code
Trading activity
Pair code.
btc-usd
pair_trade_count
Trading activity
Trade count in the interval by pair. 0 when no trades are reported.
1686
pair_volume_usd
Trading activity
Volume in USD traded in the interval by pair. 0 when no trades are reported.
57484171.99063697
pair_contribution
Trading activity
Pair volume percentage over asset volume.
0.9329976469345679
Yes
The desired exchange code.
See
cbse
start_time
Yes
Starting time in ISO 8601 (inclusive). First time at which we want to have metrics.
2023-11-29T14:00:00.0000000Z
end_time
Yes
Ending time in ISO 8601 (exclusive). Last time at which we want to have exchange metrics.
2023-11-29T15:00:00.0000000Z
interval
Yes
The interval parameter is suffixed with h or d to specify hours or days, respectively.
Any arbitrary value between one second and one day can be used, as long as it sums up to a maximum of 1 day. The suffixes are h (hour) and d (day).
Default: 1h.
1h
sources
No
If true, returns trading information detailed by pair.
Default: false
page_size
No
See Pagination
Minimum: 1
Maximum: 100
Default: 10
100
sort
No
If asc, sort time-series in ascending. If desc, sort time-series in descending.
Default: desc
asc
timestamp
Trading activity
Timestamp at which the interval begins.
2023-11-29T14:00:00.000Z
total_volume_usd
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/analytics.v2/exchange_metrics?exchange=cbse&sort=desc&sources=true&start_time=2023-11-29T14:00:00.0000000Z&end_time=2023-11-29T15:00:00.0000000Z&interval=1h&page_size=100'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/analytics.v2/exchange_metrics"
# Start of mandatory parameter configuration
mandatory_params = {
"exchange": "cbse",
"start_time": "2024-08-27T13:13:53.441Z",
"end_time" : "2024-08-27T18:27:53.441Z",
"interval" : "1h",
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
"sources": "false",
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"data": [
{
"timestamp": "2023-11-29T14:00:00.000Z",
"total_volume_usd": 139803179.89191553,
"total_trade_count": 121748,
"nb_listed_assets": 235,
"nb_listed_pairs": 379,
"assets_volumes": [
{
"asset_code": "btc",
"asset_trade_count": 22772,
"asset_total_volume_usd": 61612344.01769975,
"asset_price_usd": 37994.62623807689,
"asset_contribution": 0.4407077440250888,
"pairs_volumes": [
{
"pair_code": "btc-usd",
"pair_trade_count": 19193,
"pair_volume_usd": 57484171.99063697,
"pair_contribution": 0.9329976469345679
},
{
"pair_code": "btc-eur",
"pair_trade_count": 1686,
"pair_volume_usd": 1722929.4947314486,
"pair_contribution": 0.027964030945430225
},
{
"pair_code": "btc-usdt",
"pair_trade_count": 807,
"pair_volume_usd": 1590807.5262940996,
"pair_contribution": 0.02581962351305931
},
{
"pair_code": "btc-gbp",
"pair_trade_count": 1086,
"pair_volume_usd": 814435.0060372388,
"pair_contribution": 0.013218698606942646
}
]
},
/* ... */
]
},
/* ... */
]
}price
Trading activity
Average price in usd. null when no trades are reported.
0.1699233217119519
total_volume_usd
Trading activity
Total volume in usd traded in the interval.
0 when no trades are reported.
30508181.43789653
total_volume_asset
Trading activity
Total volume in number of assets traded in the interval.
0 when no trades are reported.
179540872.49784896
total_trade_count
Trading activity
The total amount of trades reported during the interval.
0 when no trades are reported.
159684
total_off_chain_volume_usd
Trading activity
Total off-chain volume in usd traded in the interval.
0 when no trades are reported.
30038710.382665947
total_off_chain_volume_asset
Trading activity
Total off-chain volume in number of assets traded in the interval.
0 when no trades are reported.
176778031.87949985
total_off_chain_trade_count
Trading activity
The total amount of trades reported off-chain during the interval.
0 when no trades are reported.
159115
trades_data
Trading activity
List of volume in usd, volume in number of assets and total amount of trades by centralized exchange.
[{"exchange": "binc",
"volume_usd": 27539301.29722444,
"volume_asset": 162068991,
"trade_count": 125188}, ...]
total_on_chain_volume_usd
Trading activity
Total on-chain volume in usd traded in the interval. 0 when no trades are reported.
1036710779.1918713
total_on_chain_volume_asset
Trading activity
Total on-chain volume in number of assets traded in the interval.
0 when no trades are reported.
1036710779.1918713
total_on_chain_trade_count
Trading activity
The total amount of trades reported on-chain during the interval.
0 when no trades are reported.
20513
trades_data
Trading activity
List of volume in usd, volume in number of assets and total amount of trades by decentralized exchange.
[{'exchange': 'blc2',
'volume_usd': 673716.6525764248,
'volume_asset': 674153.2032810001,
'trade_count': 129}, ...]
market_depth
Liquidity information
Dictionary from 0.1% to 10% market depth. Base asset aggregation only.
blockchain
Token information
Blockchain name.
ethereum
token_address
Token information
Token address.
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
number_of_holders
Token information
Total amount of holders.
1622286
main_holders
Token information
List of addesses holding at least 1% of the total supply and the amounts of tokens.
[{'address': '0x0a59649758aa4d66e25f08dd01271e891fe52199',
'amount': 3262712000,
'percentage': 7.91745}, ...]
total_supply
Token information
Blockchain total supply.
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Yes
The desired asset code.
See
agix
start_time
Yes
Starting time in ISO 8601 (inclusive).
2023-01-25T00:00:00.000Z
end_time
Yes
Ending time in ISO 8601 (exclusive).
2023-01-26T00:00:00.000Z
interval
Yes
The interval parameter is suffixed with h or d to specify hours or days, respectively.
Any arbitrary value between one second and one day can be used, as long as it sums up to a maximum of 1 day. The suffixes are h (hour) and d (day).
Default: 1h.
1h
sources
No
boolean. If true, returns trading information and market depths detailed by exchanges as well as main holders.
Default: false
page_size
No
See Pagination
Minimum: 1
Maximum: 100
Default: 10
100
timestamp
Trading activity
Timestamp at which the interval begins.
2023-01-25T00:00:00.000Z
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/analytics.v2/asset_metrics?interval=1d&asset=agix&start_time=2023-01-25T00:00:00.000Z&end_time=2023-01-26T00:00:00.000Z&page_size=100&sources=true'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/analytics.v2/asset_metrics"
# Start of mandatory parameter configuration
mandatory_params = {
"asset": "agix",
"start_time": "2024-08-27T13:13:53.441Z",
"end_time" : "2024-09-27T13:27:53.441Z",
"interval" : "1d",
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
"sources": "false",
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}"){
"data": [
{
"timestamp": "2023-01-25T00:00:00.000Z",
"price": 0.1699233217119519,
"total_volume_usd": 30508181.43789653,
"total_volume_asset": 179540872.49784896,
"total_trade_count": 159684,
"off_chain_liquidity_data": {
"total_off_chain_volume_usd": 30038710.382665947,
"total_off_chain_volume_asset": 176778031.87949985,
"total_off_chain_trade_count": 159115,
"trade_data": [
{
"exchange": "binc",
"volume_usd": 27539301.29722444,
"volume_asset": 162068991,
"trade_count": 125188
},
/* ... */
],
"buy_market_depths": [
{
"exchange": "binc",
"volume_assets": {
/* ... */
},
"volume_usds": {
/* ... */
}
},
/* ... */
],
"sell_market_depths": [
{
"exchange": "binc",
"volume_assets": {
/* ... */
},
"volume_usds": {
/* ... */
}
},
/* ... */
],
"total_buy_market_depth": {
"volume_assets": {
/* ... */
},
"volume_usds": {
/* ... */
}
},
"total_sell_market_depth": {
"volume_assets": {
/* ... */
},
"volume_usds": {
/* ... */
}
}
},
"on_chain_liquidity_data": {
"total_on_chain_volume_usd": 2762840.6183491,
"total_on_chain_volume_asset": 2762840.6183491,
"total_on_chain_trade_count": 569,
"trades_data": [
{
"exchange": "usp2",
"volume_usd": 327680.4492221988,
"volume_asset": 1928401.8575017697,
"trade_count": 448
},
/* ... */
],
"token_information": [
{
"blockchain": "ethereum",
"token_address": "0x5B7533812759B45C2B44C19e320ba2cD2681b542",
"nb_of_holders": 38231,
"main_holders": [
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"amount": 250774980,
"percentage": 22.61839
},
{
"address": "0x13e1367a455c45aa736d7ff2c5656ba2bd05ad46",
"amount": 112149660,
"percentage": 10.11522
},
/* ... */
],
"total_supply": 1108721700
}
]
}
}
]
}
For any field in the "token information" category, we only cover ERC-20 tokens. Only 50 tokens have been backfilled, but we can add more on demand.
usdc
start_time
No
Starting time in ISO 8601 (inclusive).
2023-01-25T00:00:00.000Z
end_time
No
Ending time in ISO 8601 (exclusive).
2023-01-26T00:00:00.000Z
page_size
No
See
Minimum: 1
Maximum: 30
Default: 10
30
timestamp
Trading activity
Timestamp at which the interval begins.
2026-06-18T00:00:00Z
curl --compressed -H 'Accept: application/json' -H 'X-Api-Key: <client-api-key>' \
'https://us.market-api.kaiko.io/v2/data/analytics.v2/stablecoin_metrics?asset=usdc&sort=desc'import http.client
import json
# Enter your Kaiko API Key
api_key = "KAIKO_API_KEY"
api_host = "us.market-api.kaiko.io"
api_base_endpoint = "/v2/data/analytics.v2/stablecoin_metrics"
# Start of mandatory parameter configuration
mandatory_params = {
"asset": "usdc",
}
# End of mandatory parameter configuration
# Start of optional parameter configuration
optional_params = {
#"start_time": "2024-08-27T13:13:53.441Z",
#"end_time" : "2024-09-27T13:27:53.441Z",
#"interval" : "1d",
"sort":"desc",
}
# End of optional parameter configuration
conn = http.client.HTTPSConnection(api_host)
headers = {
"X-Api-Key": api_key,
"Accept": "application/json"
}
all_params = {**mandatory_params, **optional_params}
url_params = []
for param, value in all_params.items():
url_params.append(f"{param}={value}")
url_params = '&'.join(url_params)
endpoint_with_params = f"{api_base_endpoint}?{url_params}"
# Pagination for next pages
all_data = []
next_url = endpoint_with_params
while next_url:
conn.request("GET", next_url, headers=headers)
response = conn.getresponse()
data = json.loads(response.read().decode("utf-8"))
all_data.extend(data.get("data", []))
print(f"Fetched {len(data.get('data', []))} datapoints. Total: {len(all_data)}")
next_url = data.get("next_url", "").replace("https://us.market-api.kaiko.io", "")
if not next_url:
break
conn.close()
print(f" datapoints fetched: {(all_data)}")https://us.market-api.kaiko.io/v2/data/analytics.v2/stablecoin_metricsasset
Yes
The desired stablecoin asset code.
See
{
"result": "success",
"time": "2026-06-18T08:06:26Z",
"timestamp": 1781769986999,
"query":
{
"asset": "usdc",
"end_time": "0001-01-01T00:00:00Z",
"interval": "1d",
"page_size": "10",
"request_time": "2026-06-18T08:06:26.05808401Z",
"sort": "desc",
"start_time": "0001-01-01T00:00:00Z"
},
"data":
[
{
"timestamp": "2026-06-18T00:00:00Z",
"interval": "1d",
"asset": "usdc",
"price": 0.9997000899730081,
"total_volume_usd": 796218091.3924453,
"total_trade_count": 2000097,
"cex_volume_usd": 694548754.6376011,
"cex_trade_count": 1910473,
"dex_volume_usd": 101669336.75484413,
"dex_trade_count": 89624,
"supply_circulating": 70051396209.43329,
"market_cap": 70030387093.3053,
"supply_change": -317149147.036026,
"avg_weighted_defi_lending_yield": 0.030345222539145098,
"avg_weighted_defi_borrowing_rate": 0.03869062376513863,
"total_defi_deposited": 2321449893.228165,
"total_defi_borrowed": 2030740561.2581594,
"aggregated_buy_market_depth_asset": {
"bid_volume_0_1": 410009275.917108,
"bid_volume_0_2": 446428495.09170324,
"bid_volume_0_5": 470849445.02862155,
"bid_volume_1": 510576781.129591,
"bid_volume_2": 549239689.7563232,
"bid_volume_5": 549239689.7563232,
"bid_volume_10": 629913837.648892
},
"aggregated_buy_market_depth_usd": {
"bid_volume_0_1": 409964211.9019009,
"bid_volume_0_2": 446379428.24938184,
"bid_volume_0_5": 470797694.08590573,
"bid_volume_1": 510520663.765471,
"bid_volume_2": 549179322.9617518,
"bid_volume_5": 599292340.4341673,
"bid_volume_10": 629844603.9792498
},
"aggregated_sell_market_depth_asset": {
"ask_volume_0_1": 311924899.9123604,
"ask_volume_0_2": 327273471.225558,
"ask_volume_0_5": 354299107.9406383,
"ask_volume_1": 386901697.77497196,
"ask_volume_2": 407012117.6172724,
"ask_volume_5": 447660372.5945285,
"ask_volume_10": 470660113.3308416
},
"aggregated_sell_market_depth_usd": {
"ask_volume_0_1": 311890616.3259667,
"ask_volume_0_2": 327237500.6815961,
"ask_volume_0_5": 354260167.01582044,
"ask_volume_1": 386859173.5077997,
"ask_volume_2": 406967383.0189715,
"ask_volume_5": 447611170.35686433,
"ask_volume_10": 470608383.197524
}
},
/* ALL RESULTS HERE */
],
"continuation_token": "xxx",
"next_url": "https://us.market-api.kaiko.io/v2/data/analytics.v2/stablecoin_metrics?continuation_token=xxx",
"links":
{
"next": "/v2/data/analytics.v2/stablecoin_metrics?asset=usdc&end_time=2026-06-09T00%3A00%3A00Z&sort=desc"
},
"access":
{
"access_range":
{
"start_timestamp": 1073001600000,
"end_timestamp": 1861830000000
},
"data_range":
{
"start_timestamp": "None",
"end_timestamp": 1861830000000
}
}
}interval
Informations
The aggregation interval.
1d
asset
Informations
The specified asset.
usdc
price
Trading activity
Average price in usd. null when no trades are reported.
0.9997000899730081
total_volume_usd
Trading activity
Total volume in usd traded in the interval.
0 when no trades are reported.
796218091.3924453
total_trade_count
Trading activity
The total amount of trades reported during the interval.
0 when no trades are reported.
2000097
cex_volume_usd
Trading activity
Total off-chain volume in usd traded in the interval.
0 when no trades are reported.
694548754.6376011
cex_trade_count
Trading activity
The total amount of trades reported off-chain during the interval.
0 when no trades are reported.
1910473
dex_volume_usd
Trading activity
Total on-chain volume in usd traded in the interval. 0 when no trades are reported.
101669336.75484413
dex_trade_count
Trading activity
The total amount of trades reported on-chain during the interval.
0 when no trades are reported.
89624
supply_circulating
Supply
Blockchain total supply.
70051396209.43329
market_cap
Supply
The market cap of the stablecoin across all chains.
70030387093.3053
supply_change
Supply
The change in supply since the last interval.
-317149147.036026
avg_weighted_defi_lending_yield
DeFi lending
Average of all lending yields across DeFi lending protocols, weighted by deposited liquidity.
0.030345222539145098
avg_weighted_defi_borrowing_rate
DeFi lending
Average of all borrowing rate across DeFi lending protocols, weighted by deposited liquidity.
0.03869062376513863
total_defi_deposited
DeFi lending
Total deposited liquidity across DeFi lending protocols.
2321449893.228165
total_defi_borrowed
DeFi lending
Total borrowed liquidity across DeFi lending protocols.
2030740561.2581594
aggregated_buy_market_depth_asset
Liquidity information
Dictionary from 0.1% to 10% market depth.
See example response below.
aggregated_buy_market_depth_usd
Liquidity information
Dictionary from 0.1% to 10% market depth.
See example response below.
aggregated_sell_market_depth_asset
Liquidity information
Dictionary from 0.1% to 10% market depth.
See example response below.
aggregated_sell_market_depth_usd
Liquidity information
Dictionary from 0.1% to 10% market depth.
See example response below.