Trade Data is a general term for tick-by-tick 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 85+ spot and derivatives exchanges, comprising more than 90,000 instruments.
|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.|
|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 second to 1 day.
|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 beginningof the time interval. |
|Open||Opening price of the time interval in quote currency (For BTC/USD, the price would be USD).|
|High||Highest price reached during time interval, in quote currency.|
|Low||Lowest price reached during time interval, in quote currency.|
|Close||Closing price of the time interval, in the quote currency. |
|Volume||Quantity of asset bought or sold, displayed in base 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 second to 1 day.
|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, for 20,000 currency pairs across 85+ exchanges.
We take two order book snapshots per minute for all instruments and exchanges that we cover. Our order book snapshots include all bids and asks placed within 10% of the midprice, at the time the snapshot was taken.
|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|
Launching soon, our tick-by-tick order book data sets will be the most granular and comprehensive order book data in the industry. We collect every incremental update or "delta" to the order book as they happen in real-time, and we store this data in historical files and redistribute through our livestream services. This includes every added, changed or removed bid and ask, the price level, amount, and the corresponding timestamp or sequence ID.
The first version of our tick-level order book product will be live.We will begin collection shortly and soon be able to provide historical tick-level order books at the L2 level. To join our wait list or to be a product tester, reach out to us below:
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 live 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 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 live 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.
|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.
|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 and Bybit. More exchanges (such as HuobiDM, Binance Futures, 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.
|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.|
Reference rates can be used for NAV calculations, portfolio valuation, index creation, and any use case requiring an aggregated price for a crypto asset. Our reference rates are provided at the asset level, and aggregate price data across multiple exchanges. For example, a Bitcoin Reference Rate 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 enable clients to select any combination of exchanges as inputs for the calculation of our reference rates. We can also provide recommendations for exchanges to be used in the calculation. We provide historical and live Reference Rates through our API at intervals ranging from 1 minute to 1 day. We offer an optional parameter to have the output data include exactly which exchanges we pulled data from to form the aggregation, along with the individual VWAP data points used to calculate the rate.
|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 an exchange rate methodology for determining a cross rate calculation. Our exchange rate API endpoint returns the price of any crypto asset in USD, EUR, GBP, AUD, NZD, and dozens of other fiat currencies. The difference between this endpoint and Reference Rates is that Reference Rates will not give a USD price if that asset does not natively trade against USD. This can be inconvenient if you need to standardize volume calculations across all exchanges or want to view standardized prices in a single currency.
The USD price is calculated based on the path of the highest liquidity. Our liquidity gauge is currently the volume traded. With our API endpoint, we include an optional parameter to display the data used as input for the calculation of the exchange rate price and the path which was followed. In cases where the most liquid path changed over time, this will be taken into account in the calculation of the price for each interval. You can read our documentation for this endpoint here.
We can set up a trial of our full data services or provide a custom price quote if you let us know about your data requirements.