Every executed transaction on an exchange, including the price, volume, and trade direction.
Trade Data[Open, High, Low, Close, Volume] candlestick data in granularities ranging from 1 minute to 1 day.
OHLCV[Volume Weighted Average Price] in granularities ranging from 1 minute to 1 day.
VWAPAll bids and asks are placed within 10% of the best bid and best ask, respectively. Snapshots are taken twice per minute.
SnapshotsIncremental updates of all added, changed, and removed bids and asks on an order book.
Tick OBThe cumulative quantity of bids and asks at different % ranges from the mid price.
Aggregated DepthThe difference between the best ask and the best bid, derived from order book snapshots.
SpreadFutures, perpetual futures, and options metrics from the leading derivatives exchanges, in historical or real time format.
DerivativesImplied Volatility Smiles and Surfaces updated every hour, adapted to risk management of options trading.
DerivativesCustomizable single and multi-asset price feeds designed for NAV and portfolio valuation.
Custom ValuationSynthetic fiat conversions into USD, EUR, GBP, JPY, and more for all crypto assets.
Cross RatesDaily Value at Risk (VaR) estimator for single and multi-asset portfolios
Value at RiskTrade Data is a general term for tick-level data, or all executed transactions occurring on an exchange. Our trade datasets consist of all tick-by-tick trade data, normalized and timestamped. We began trade data collection in 2011 and add new exchanges on a continual basis. Today, we provide historical and live trade data for 100+ centralized and decentralized exchanges (both spot and derivatives markets). For DEXs, we provide full history since the exchange launched.
Request Trade DataThe data format below is available in CSV files and through REST. Trade data is also available through Kaiko Stream in a different format, described in the tick-level order book section of our Data Dictionary.
Variable | Description |
---|---|
ID | Unique trade ID (unique to the exchange). Trade ID's come directly from the exchange. If an exchange does not provide a trade ID, we will generate it ourselves. |
Exchange | Internal Kaiko symbol used for the exchange. |
Symbol | Currency pair |
Date | Epoch timestamp in milliseconds. You can learn more about timestamps, including how to convert them to human readable form here. |
Price | Displayed in the quote currency |
Amount | Quantity of asset bought or sold, displayed in base currency |
Sell | True or False, referring to the trade direction (detailed description of variable here). A trade marked as 'true' means that a price taker placed a market sell order. |
OHLCV is an aggregated form of market data standing for Open, High, Low, Close and Volume. OHLCV data includes 5 data points: the Open and Close represent the first and the last price level during a time interval. High and Low represent the highest and lowest reached price during that interval. Volume is the total amount traded during that period. This data is most frequently represented in a candlestick chart, which allows traders to perform technical analysis on intraday values. We provide OHLCV data in granularities ranging from 1 minute to 1 day.
Our OHLCV datasets can also be combined with VWAP and Trade Count data. Trade count is the number of trades that occurred over the interval.
The below schema is for our combined dataset, which includes Count-OHLCV-VWAP. For clients who just purchase OHLCV data, the dataset will only contain the timestamp and OHLCV data points.
Variable | Description |
---|---|
Timestamp | Epoch timestamp in milliseconds. You can learn more about timestamps, including how to convert them to human readable form, here. The timestamp for all aggregates corresponds with the beginning of the time interval. |
Count | Number of trades occurring over the time interval of the data set. For example, '231' for minute granularity would mean that 231 raw trades occurred over the minute. |
Open | Opening price in quote currency (for BTCUSD, USD is the quote curency) |
High | Highest price reached during the timeframe, in quote currency |
Low | Lowest price reached during the timeframe, in quote currency |
Close | Closing price of the timeframe in quote currency |
Volume | Volume traded in the timeframe in base currency |
VWAP | Volume Weighted Average Price in quote currency |
VWAP, or Volume Weighted Average Price, is the average price of an asset over a time interval, weighted by volume. VWAP is an aggregated form of trade data. The formula for calculating VWAP is: ∑Price * Volume / ∑Volume. We provide VWAP in granularities ranging from 1 minute to 1 day.
Request DataBrowse CoverageVariable | Description |
---|---|
Timestamp | Epoch timestamp in milliseconds. You can learn more about timestamps, including how to convert them to human readable form, here. The timestamp for all aggregates corresponds with the beginning of the time interval. |
VWAP | Volume Weighted Average Price in quote currency |
An order book is a list containing all outstanding buy or sell orders for an asset, organized by price level. An order to buy is called a ‘bid’ and an order to sell is called an ‘ask’. The exchange’s matching engine pairs up bids and asks with market buy/sell orders, resulting in a trade. Kaiko provides level 2 order book snapshots, aggregated by price level. We take two order book snapshots per minute for all instruments and exchanges that we cover. Our order book snapshots include best bid and best ask +- 10%, at the time the snapshot was taken.
Data format used in CSV files and through REST.
Variable | Description |
---|---|
Date | Epoch timestamp in milliseconds. You can learn more about timestamps, including how to convert them to human readable form, here. |
Type | a = ask, b = bid. An ask is an order placed to sell, a bid to buy. |
Price | Displayed in the quote currency |
Amount | Quantity of asset to buy or sell, displayed in the base currency |
Our tick-level order books are the most granular and comprehensive order book data in the industry. Upon connection, clients receive an order book snapshot and then incremental tick-level updates ("delta") as they happen in real-time. This includes every added, changed or removed price level and amount, the corresponding timestamps and sequence ID. All order book data is normalized into a single schema across top-tier exchanges, enabling our clients to easily compare order book feeds for thousands of instruments. The list of supported exchanges can be found on the API doc.
The tick-level order book product is available through Kaiko Stream with rolling 15 days of history and CSV files, which are created on a daily basis
Tick-level order books are available through Kaiko Stream in an endpoint called "Market Update." Through this endpoint, you can also receive trade data and Top of Book data. The below schema is the same no matter the data type, which is differentiated by the "Commodity" and "Update" fields.
Variable | Description |
---|---|
Commodity | The type of data. There are three options: SMUC_Full_Order_Book, SMUC_Top_of_Book, and SMUC_Trade SMUC_Full_Order_Book denotes an updated tick-level order book event. SMUC_Top_of_Book denotes any update to the best bid/best ask. SMUC_Trade denotes a trade. |
Amount | The quantity of the base asset |
Class | The internal Kaiko classification denoting whether an instrument is a spot, future, perpetual future, or option. |
Code | The currency pair, for example BTC-USD |
Exchange | The exchange code, for example "cbse" (Coinbase) |
Sequence ID | The unique sequence ID created by Kaiko used to order all events. This can be used to re-build an internally maintained order book. |
Price | The price level at which the bid or ask is to be placed. |
tsExchange | Exchange-provided timestamp of the event. |
tsCollection | Timestamp at which the event entered Kaiko's infrastructure. Millisecond precision. |
tsEvent | The emission timestamp created by Kaiko. Millisecond precision. |
Update | The type of event. There are 6 options: TRADE_SELL, TRADE_BUY, UPDATED_BID, UPDATED_ASK, BEST_BID, BEST_ASK |
Top of Book data comprises the best bid and best ask for a traded instrument. This data is derived from Kaiko's tick-level order book data and is updated at that frequency. Clients can access top of book data for any combination of currency pair and exchange. The first version of Top of Book is available through Kaiko Stream with 5 weeks of rolling history. In early 2022 we will launch historical CSV files.
Top of Book is available through Kaiko Stream in an endpoint called "Market Update." Through this endpoint, you can also receive trade data and full order book data. The below schema is the same no matter the data type, which is differentiated by the "Commodity" and "Update" fields.
Variable | Description |
---|---|
Commodity | The type of data. There are three options: SMUC_Full_Order_Book, SMUC_Top_of_Book, and SMUC_Trade SMUC_Full_Order_Book denotes an updated tick-level order book event. SMUC_Top_of_Book denotes any update to the best bid/best ask. SMUC_Trade denotes a trade. |
Amount | The quantity of the base asset |
Class | The internal Kaiko classification denoting whether an instrument is a spot, future, perpetual future, or option. |
Code | The currency pair, for example BTC-USD |
Exchange | The exchange code, for example "cbse" (Coinbase) |
Sequence ID | The unique sequence ID given by the exchange used to order all events. This can be used to re-build an internally maintained order book. |
Price | The price level at which the bid or ask is to be placed. |
tsExchange | Exchange provided timestamp of the event. |
tsCollection | Timestamp at which the event entered Kaiko's infrastructure. |
tsEvent | The emission timestamp created by Kaiko. |
Update | The type of event. There are 6 options: TRADE_SELL, TRADE_BUY, UPDATED_BID, UPDATED_ASK, BEST_BID, BEST_ASK |
The spread is the difference between the best bid and the best ask on an instrument's order book and can be used as an indicator of liquidity. Kaiko's spread data is derived directly from our order book snapshots, which are taken twice per minute. We can provide real-time spreads and up to 1 month of historical spreads through our API, but can create custom CSV file generations if more history is required. We can also provide averages of spread data at intervals ranging from 1 minute to 1 day.
Visualization of Kaiko's bid-ask spread data. We chart the average hourly spread for BTC-USD trading pairs on 6 exchanges.
Aggregated market depth is the cumulative sum of all bids and asks on an order book snapshot at different intervals from the mid price. Aggregated market depth is derived directly from our raw order book snapshots which are taken twice per minute. The “deeper” an order book, the larger the quantity of bids and asks on either side of the mid price. Generally, deeper order books indicate that a market is more liquid and can support bigger market orders.
Market depth is available through our API, both real-time and with up to 1 month of history. Custom CSV file generations are also available for longer historical timeframes. We can provide aggregated depth for both the bid side and the ask side at the following ranges from the mid price: 0.1%, 0.2%, 0.3%, 0.4%, 0.5%, 0.6%, 0.7%, 0.8%, 0.9%, 1%, 1.5%, 2%, 4%, 6%, 8% and 10%. We can also provide average market depth at intervals ranging from 1 minute to 1 day. For more information on market depth, view our article here.
Visualization of Kaiko's market depth data. We chart the average hourly market depth for the BTC-USD pair on Coinbase.
Variable | Description |
---|---|
Bid_volume_x | The volume of bids placed within 0 and x% of the midprice. For example, bid_volume0_1 includes the sum of bids placed within 0 and .1% of the midprice. Bid_volume_10 would include the cumulative sum of all bids placed within 10% of the midprice. |
Ask_volume_x | The volume of asks placed within 0 and x% of the midprice. For example, ask_volume0_1 includes the sum of bids placed within 0 and .1% of the midprice. Ask_volume_10 would include the cumulative sum of all bids placed within 10% of the midprice. |
Price sllippage is the difference between the expected price of a trade and the price at which the trade is fully executed. Slippage can result from two events: A change in the bid/ask spread in between the time a trade is placed and the trade is filled or insufficient order book depth to support large market orders. Simulating slippage before executing a trade is important in cryptocurrency markets and should be incorporated into strategy backtesting.
Order book data is required to simulate slippage, which is why Kaiko developed a “slippage calculator” which is used on order book snapshots to calculate slippage for custom order sizes. Kaiko's slippage calculator is available through our API and can be used for any order size. For example, we can simulate slippage for a $50,000 market buy order by running this order through our raw order book snapshots. A percentage is returned which represents the difference between the expected price at the time of the simulated trade and the average price level required to fully fill the $50k order.
We can provide slippage for up to 1 month of history through our API for any order size, but can create custom CSV file generations with further history if needed. We also provide slippage at averages ranging from 1 minute to 1 day. For a full explanation of Kaiko's slippage data, view our article here.
Visualization of Kaiko's slippage data. We chart the hourly average slippage on the bid side of an order book for a $100k market sell order.
Variable | Description |
---|---|
Bid_slippage | The percentage price slippage for a market sell order placed at the time that the order book snapshot was taken. The percentage is calculated by running the order size you specify through every bid on the order book until the order has been filled. For example, if you specify $100,000 as the order size you want to simulate, the calculation will fill this simulated sell order with all bids on the order book, and return a percentage in decimal form that represents the difference in price from either the midprice or best bid. The difference in price is calculated from the the midprice (or price level at the best bid) at the time the order book snapshot was taken and the last price level required to fully fill the simulated order. |
Ask_slippage | The percentage price slippage for a market buy order placed at the time that the order book snapshot was taken. The percentage is calculated by running the order size you specify through every ask on the order book until the order has been filled. For example, if you specify $100,000 as the order size you want to simulate, the calculation will fill this simulated buy order with all asks on the order book, and return a percentage in decimal form that represents the difference in price from either the midprice or best bid. The difference in price is calculated from the the midprice (or price level at the best bid) at the time the order book snapshot was taken and the last price level required to fully fill the simulated order. |
Derivatives-specific data unique to futures, options, and perpetual futures contracts. This includes everything from funding rates to implied volatility to open interest, depending on the contract type and the data provided by each individual exchange. We currently provide real-time and historical derivatives data, updated once per minute, available through our REST API. Data collection began in August 2020.
We currently provide data collected from futures, options and perpetual futures contracts from the following exchanges: BitMEX, Deribit, OKEx, Kraken Futures, FTX, Binance Futures and Bybit. More exchanges (such as HuobiDM, CME, and Bitflyer) will be added soon. For all derivatives contracts, we provide our standard historical and live market data offering, including trades, order books, and aggregates.
Variable | Description |
---|---|
24_volume | The total 24h traded volume (in base currency) |
Ask | The current best ask price. `null` when no asks are placed |
Bid | The current best bid price. `null` when no bids are placed. |
Index_price | The price of the underlying index. |
Mark_price | The mark price of the contract. The mark price is calculated from the index price, often as a weighted average across multiple exchange's spot price, in order to avoid price manipulation. |
Open_interest | The total oustanding number of contracts. |
Expiry | The contract expiry date. |
Price | The latest recorded spot price. |
Our custom valuation tool enables any financial professional to build customizable single-asset and multi-asset price feeds for NAV calculations, portfolio valuation, asset allocation strategies, and indices. Our flexible design gives the ability to customize the data sources, frequency, time windowing, outlier management, and asset weighting that matches any pricing and valuation use case. Both live and historical data is available through our API endpoint or in CSV files, upon request.
Kaiko can also provide recommendations for building robust price feeds and you can contact us below to learn more.
Through our Custom Valuation API endpoint, we enable any of the below parameters to be specified in order to build a single-asset or multi-asset data feed. For clients who require historical CSV files, we will ask for the below information in order to generate the files.
Variable | Description |
---|---|
Start Time | First fixing date of the calculation |
End Time | Last fixing date of the calculation |
Interval | Frequency after the first fixing. Select an interval to receive price updates ranging from 1 minute (intraday) to 1 day (daily close at any time or average daily price). |
Semi-length Window | The time interval to compute the transaction. For example, a semi-length window of 15 minutes would only include data within +/- 15 minutes from the interval requested. |
Quote | Select which fiat currency you would like the rate to be denominated in. We offer standard USD rates in addition to EUR, GBP, and 20+ fiat currencies. |
Weights | For multi-asset price feeds, select which weight to assign each crypto asset used in the calculation depending on portfolio allocation. For single-asset feeds, simple input "1" as the weight. |
Exchange | Input a custom selection of trustworthy exchanges or opt to use data from all exchanges. |
Percentages | Select a custom percentile of data points to filter out at the trade level. Multiple percentiles can be calculated at once. |
Sources | An optional parameter that when included, provides a list of every instrument-level data aggregation used in the calculation. |
Asset prices are calculated using only real trading pairs for a crypto asset. For example, a Bitcoin asset price denominated in USD would be calculated using price feeds from BTC-USD pairs aggregated across all or a custom selection of exchanges that offer this pair. We also include the ability to receive the underlying instrument-level price feeds from each constituent exchange.
Asset prices are optimal for simple trading and valuation, and let traders track volume-weighted prices across real trading pairs. We enable clients to select any combination of exchanges as inputs for the calculation of our asset prices and we can also provide our own recommendations for exchanges. We provide historical and live asset prices through our API at intervals ranging from 1 minute to 1 day.
This data format occurs for when the optional API parameter "sources" is set to false. If you would like to receive the individual instrument-level price feed used to calculate each asset price, you can set "sources" to true, in which case the data format would also include an additional time series containing each individual constituent data point. You can view our API documentation for the full format.
Variable | Description |
---|---|
Timestamp | Timestamp at which the price interval begins. |
Price | Our reference rates are calculated by taking the volume weighted average price (VWAP) of all instrument-level VWAP's from a selection of exchanges. Clients can select which exchanges they would like as constituents in the calculation. |
Volume | Total volume traded on the constituent exchanges over the reference rate interval. |
Count | Total amount of trades reported during interval |
Not every crypto asset trades against USD so we developed a synthetic exchange rate methodology for determining a cross rate calculation. Our Cross Prices API endpoint returns the price of any crypto asset in USD, EUR, GBP, AUD, NZD, and 100+ of other fiat currencies, and also includes the ability to convert prices into crypto units, such as BTC or ETH.
The difference between this pricing methodology and Asset Prices is that Asset Prices will not give a USD price if that asset does not natively trade against USD. This can be inconvenient if you need to standardize price and volume calculations across all exchanges. The synthetic cross rate is calculated based on the path of the highest liquidity. Our liquidity gauge is currently the volume traded. Cross Prices are available in granularities ranging from 1 minute to 1 day.
Variable | Description |
---|---|
Timestamp | Timestamp at which the price interval begins. |
Price | Our reference rates are calculated by taking the volume weighted average price (VWAP) of all instrument-level VWAP's from a selection of exchanges. Clients can select which exchanges they would like as constituents in the calculation. |